cryptpad/www/lib/calendar/date-picker.js

58 lines
1.7 KiB
JavaScript
Raw Normal View History

2021-04-02 11:44:28 +00:00
define([
'jquery',
'/lib/datepicker/flatpickr.js',
'css!/lib/datepicker/flatpickr.min.css',
], function ($, Flatpickr) {
var createRangePicker = function (cfg) {
var start = cfg.startpicker;
var end = cfg.endpicker;
2021-04-09 10:01:59 +00:00
var is24h = false
var dateFormat = "Y-m-d H:i";
2021-04-09 10:01:59 +00:00
try {
is24h = !new Intl.DateTimeFormat(navigator.language, { hour: 'numeric' }).format(0).match(/AM/);
} catch (e) {}
if (!is24h) { dateFormat = "Y-m-d h:i K"; }
2021-04-09 10:01:59 +00:00
2021-04-02 11:44:28 +00:00
var e = $(end.input)[0];
var endPickr = Flatpickr(e, {
enableTime: true,
2021-04-09 10:01:59 +00:00
time_24hr: is24h,
dateFormat: dateFormat,
2021-04-02 11:44:28 +00:00
minDate: start.date
});
endPickr.setDate(end.date);
var s = $(start.input)[0];
var startPickr = Flatpickr(s, {
enableTime: true,
2021-04-09 10:01:59 +00:00
time_24hr: is24h,
dateFormat: dateFormat,
2021-04-02 11:44:28 +00:00
onChange: function () {
endPickr.set('minDate', startPickr.parseDate(s.value));
}
});
startPickr.setDate(start.date);
2021-04-07 11:51:50 +00:00
window.CP_startPickr = startPickr;
window.CP_endPickr = endPickr;
2021-04-02 11:44:28 +00:00
var getStartDate = function () {
setTimeout(function () { $(startPickr.calendarContainer).remove(); });
return startPickr.parseDate(s.value);
};
var getEndDate = function () {
setTimeout(function () { $(endPickr.calendarContainer).remove(); });
return endPickr.parseDate(e.value);
};
return {
getStartDate: getStartDate,
getEndDate: getEndDate,
};
};
return {
createRangePicker: createRangePicker
};
});