Skip to content

Commit f94e895

Browse files
committed
feature #1412 Rebase and flatpickr (bechir, atierant)
This PR was merged into the main branch. Discussion ---------- Rebase and flatpickr Rebase `@bechir` work to comply with 6.2 branch Resolve #1183 Fix flatpickr as mandated by `@bechir` in #1183 (comment) Commits ------- e7525e6 style: #1183 Fix form field icon and flat picker l10n (atierant) 4dc4256 style: #1183 Conform new Bootstrap 4 design to the previous Bootstrap 3 one (atierant) 46ee773 feature #1183 Fix language selection in flatpicker.js (atierant) 4a1d48b feature #1183 Add flatpickr as a datepicker (atierant) 5633a63 Use button instead of span 4bac0ac Localize flatpickr globally 8879baf Fix & integrate flatpickr 779ed96 Fix typos & remove commented code 4c04860 Remove horizontal scroller in source code modal 9758c24 Upgraded to bootswatch 4.5.3
2 parents 821812d + e7525e6 commit f94e895

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+4678
-4518
lines changed

assets/admin.js

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,9 @@
11
import './styles/admin.scss';
2-
import 'eonasdan-bootstrap-datetimepicker';
32
import 'typeahead.js';
43
import Bloodhound from "bloodhound-js";
54
import 'bootstrap-tagsinput';
65

76
$(function() {
8-
// Datetime picker initialization.
9-
// See https://eonasdan.github.io/bootstrap-datetimepicker/
10-
$('[data-toggle="datetimepicker"]').datetimepicker({
11-
icons: {
12-
time: 'fa fa-clock-o',
13-
date: 'fa fa-calendar',
14-
up: 'fa fa-chevron-up',
15-
down: 'fa fa-chevron-down',
16-
previous: 'fa fa-chevron-left',
17-
next: 'fa fa-chevron-right',
18-
today: 'fa fa-check-circle-o',
19-
clear: 'fa fa-trash',
20-
close: 'fa fa-remove'
21-
}
22-
});
23-
247
// Bootstrap-tagsinput initialization
258
// https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/
269
var $input = $('input[data-toggle="tagsinput"]');
@@ -57,7 +40,7 @@ $(document).on('submit', 'form[data-confirmation]', function (event) {
5740
.on('click', '#btnYes', function () {
5841
$confirm.data('result', 'yes');
5942
$form.find('input[type="submit"]').attr('disabled', 'disabled');
60-
$form.submit();
43+
$form.trigger('submit');
6144
})
6245
.modal('show');
6346
}

assets/app.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import './styles/app.scss';
22

33
// loads the Bootstrap jQuery plugins
4-
import 'bootstrap-sass/assets/javascripts/bootstrap/transition.js';
5-
import 'bootstrap-sass/assets/javascripts/bootstrap/alert.js';
6-
import 'bootstrap-sass/assets/javascripts/bootstrap/collapse.js';
7-
import 'bootstrap-sass/assets/javascripts/bootstrap/dropdown.js';
8-
import 'bootstrap-sass/assets/javascripts/bootstrap/modal.js';
4+
import 'bootstrap/js/dist/alert';
5+
import 'bootstrap/js/dist/collapse';
6+
import 'bootstrap/js/dist/dropdown';
7+
import 'bootstrap/js/dist/modal';
98
import 'jquery'
109

1110
// loads the code syntax highlighting library
@@ -16,3 +15,5 @@ import './js/doclinks.js';
1615

1716
// start the Stimulus application
1817
import './bootstrap';
18+
19+
import './js/flatpicker';

assets/js/flatpicker.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import 'flatpickr';
2+
import 'flatpickr/dist/flatpickr.css';
3+
import l10n from "flatpickr/dist/l10n";
4+
5+
flatpickr.defaultConfig.animate = window.navigator.userAgent.indexOf('MSIE') === -1;
6+
let lang = document.documentElement.getAttribute('lang') || 'en';
7+
const Locale = l10n[`${lang}`] || l10n.default;
8+
flatpickr.localize(Locale);
9+
const configs = {
10+
standard: {
11+
enableTime: true,
12+
dateFormat: "Y-m-d H:i",
13+
allowInput: true,
14+
time_24hr: true,
15+
defaultHour: 24,
16+
parseDate: (datestr, format) => {
17+
return flatpickr.parseDate(datestr, format);
18+
},
19+
formatDate: (date, format, locale) => {
20+
return flatpickr.formatDate(date, format);
21+
}
22+
}
23+
};
24+
25+
const flatpickrs = document.querySelectorAll(".flatpickr");
26+
for (let i = 0; i < flatpickrs.length; i++) {
27+
let element = flatpickrs[i];
28+
let configValue = configs[element.getAttribute("data-flatpickr-class")] || {};
29+
// Overrides the default format with the one sent by data attribute
30+
configValue.dateFormat = element.getAttribute("data-date-format") || 'Y-m-d H:i';
31+
// ...and then initialize the flatpickr
32+
flatpickr(element, configValue);
33+
}

assets/styles/_variables.scss

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// setting the value of this variable to an empty data URL is the only working solution
2+
// to load the Bootswatch web fonts locally and avoid loading them from Google servers
3+
// see https://github.com/thomaspark/bootswatch/issues/55#issuecomment-298093182
4+
$web-font-path: 'data:text/css;base64,';
5+
6+
// Make sure the bootstrap-sass and lato fonts are resolved correctly
7+
//$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
8+
$lato-font-path: '~lato-font/fonts';
9+
10+
$font-default: 19px;
11+
12+
$font-heading: 2.5rem;
13+
$font-title: 2rem;
14+
$font-subtitle: 1.5rem;
15+
16+
$secondary-color: #ecf0f1;
17+
$gray-7500: #e9ecec;
18+
19+
$navbar-margin-bottom: 21px;
20+
21+
$table-cell-padding: 0.5rem;
22+
23+
$btn-padding-y-lg: 21px;
24+
$btn-padding-x-lg: 14px;
25+
$btn-padding-y: 15px;
26+
$btn-padding-x: 10px;
27+
$btn-padding-y-sm: 9px;
28+
$btn-padding-x-sm: 6px;
29+
30+
@import "~bootswatch/dist/flatly/variables";

assets/styles/admin.scss

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
@import "~bootswatch/flatly/variables";
2-
@import "~eonasdan-bootstrap-datetimepicker/src/sass/bootstrap-datetimepicker-build.scss";
1+
@import "variables";
2+
// @import "~eonasdan-bootstrap-datetimepicker/src/sass/bootstrap-datetimepicker-build.scss";
33
@import "bootstrap-tagsinput.scss";
44

55
/* Page: 'Backend post index'
@@ -24,3 +24,12 @@ body#admin_post_show .post-tags .label-default {
2424
body#admin_post_show .post-tags .label-default i {
2525
color: #95A6A7;
2626
}
27+
28+
.form-control {
29+
border-width: .125rem;
30+
31+
&:focus {
32+
color: $blue;
33+
box-shadow: none;
34+
}
35+
}

0 commit comments

Comments
 (0)