mirror of https://github.com/xwiki-labs/cryptpad
Fix date parser on Daylight Saving time day with 12h format #1011
This commit is contained in:
parent
210606758b
commit
0a1ac01a45
|
@ -19,6 +19,7 @@ define([
|
|||
'/calendar/export.js',
|
||||
'/calendar/recurrence.js',
|
||||
'/lib/datepicker/flatpickr.js',
|
||||
'/lib/calendar/date-picker.js',
|
||||
|
||||
'/common/inner/share.js',
|
||||
'/common/inner/access.js',
|
||||
|
@ -51,6 +52,7 @@ define([
|
|||
Export,
|
||||
Rec,
|
||||
Flatpickr,
|
||||
DatePicker,
|
||||
Share, Access, Properties
|
||||
)
|
||||
{
|
||||
|
@ -283,9 +285,9 @@ define([
|
|||
var obj = data.content[uid];
|
||||
obj.title = obj.title || "";
|
||||
obj.location = obj.location || "";
|
||||
if (obj.isAllDay && obj.startDay) { obj.start = +Flatpickr.parseDate((obj.startDay)); }
|
||||
if (obj.isAllDay && obj.startDay) { obj.start = +DatePicker.parseDate((obj.startDay)); }
|
||||
if (obj.isAllDay && obj.endDay) {
|
||||
var endDate = Flatpickr.parseDate(obj.endDay);
|
||||
var endDate = DatePicker.parseDate(obj.endDay);
|
||||
endDate.setHours(23);
|
||||
endDate.setMinutes(59);
|
||||
endDate.setSeconds(59);
|
||||
|
@ -1639,7 +1641,7 @@ APP.recurrenceRule = {
|
|||
minDate: date,
|
||||
//dateFormat: dateFormat,
|
||||
onChange: function () {
|
||||
//endPickr.set('minDate', startPickr.parseDate(s.value));
|
||||
//endPickr.set('minDate', DatePicker.parseDate(s.value));
|
||||
}
|
||||
});
|
||||
var endDate = new Date(+date);
|
||||
|
@ -1817,7 +1819,7 @@ APP.recurrenceRule = {
|
|||
if (until === "count") {
|
||||
rec.count = $(radioCount).find('input[type="number"]').val();
|
||||
} else if (until === "date") {
|
||||
var _date = Flatpickr.parseDate(pickr.value);
|
||||
var _date = DatePicker.parseDate(pickr.value);
|
||||
_date.setDate(_date.getDate()+1);
|
||||
rec.until = +_date - 1;
|
||||
}
|
||||
|
@ -2110,7 +2112,7 @@ APP.recurrenceRule = {
|
|||
var $button = $el.find('.tui-full-calendar-section-button-save');
|
||||
|
||||
var $startDate = $el.find('#tui-full-calendar-schedule-start-date');
|
||||
var startDate = Flatpickr.parseDate($startDate.val());
|
||||
var startDate = DatePicker.parseDate($startDate.val());
|
||||
|
||||
var divRec = getRecurrenceInput(startDate);
|
||||
$button.before(divRec);
|
||||
|
|
|
@ -8,8 +8,8 @@ define([
|
|||
'/common/common-constants.js',
|
||||
'/customize/messages.js',
|
||||
'/customize/pages.js',
|
||||
'/lib/datepicker/flatpickr.js',
|
||||
], function($, h, Hash, UI, UIElements, Util, Constants, Messages, Pages, Flatpickr) {
|
||||
'/lib/calendar/date-picker.js',
|
||||
], function($, h, Hash, UI, UIElements, Util, Constants, Messages, Pages, DatePicker) {
|
||||
|
||||
var handlers = {};
|
||||
|
||||
|
@ -544,7 +544,7 @@ define([
|
|||
var nowDateStr = new Date().toLocaleDateString();
|
||||
var startDate = new Date(start);
|
||||
if (msg.isAllDay && msg.startDay) {
|
||||
startDate = Flatpickr.parseDate(msg.startDay);
|
||||
startDate = DatePicker.parseDate(msg.startDay);
|
||||
}
|
||||
|
||||
// Missed events
|
||||
|
|
|
@ -8,10 +8,10 @@ define([
|
|||
'/customize/messages.js',
|
||||
'/components/nthen/index.js',
|
||||
'chainpad-listmap',
|
||||
'/lib/datepicker/flatpickr.js',
|
||||
'/lib/calendar/date-picker.js',
|
||||
'/components/chainpad-crypto/crypto.js',
|
||||
'/components/chainpad/chainpad.dist.js',
|
||||
], function (Util, Hash, Constants, Realtime, Cache, Rec, Messages, nThen, Listmap, FP, Crypto, ChainPad) {
|
||||
], function (Util, Hash, Constants, Realtime, Cache, Rec, Messages, nThen, Listmap, DatePicker, Crypto, ChainPad) {
|
||||
var Calendar = {};
|
||||
|
||||
var getStore = function (ctx, id) {
|
||||
|
@ -132,9 +132,9 @@ define([
|
|||
var last = ctx.store.data.lastVisit;
|
||||
|
||||
if (ev.isAllDay) {
|
||||
if (ev.startDay) { ev.start = +FP.parseDate(ev.startDay); }
|
||||
if (ev.startDay) { ev.start = +DatePicker.parseDate(ev.startDay); }
|
||||
if (ev.endDay) {
|
||||
var endDate = FP.parseDate(ev.endDay);
|
||||
var endDate = DatePicker.parseDate(ev.endDay);
|
||||
endDate.setHours(23);
|
||||
endDate.setMinutes(59);
|
||||
endDate.setSeconds(59);
|
||||
|
|
|
@ -23,6 +23,7 @@ define([
|
|||
'/common/text-cursor.js',
|
||||
'cm/lib/codemirror',
|
||||
'/components/chainpad/chainpad.dist.js',
|
||||
'/lib/calendar/date-picker.js',
|
||||
|
||||
'/common/inner/share.js',
|
||||
'/common/inner/access.js',
|
||||
|
@ -70,6 +71,7 @@ define([
|
|||
TextCursor,
|
||||
CMeditor,
|
||||
ChainPad,
|
||||
DatePicker,
|
||||
Share, Access, Properties,
|
||||
Flatpickr,
|
||||
Sortable
|
||||
|
@ -2046,7 +2048,7 @@ define([
|
|||
tag: tag,
|
||||
isEmpty: function () { return !$tag.val().trim(); },
|
||||
getValue: function () {
|
||||
var d = picker.parseDate(tag.value);
|
||||
var d = DatePicker.parseDate(tag.value);
|
||||
return +d;
|
||||
},
|
||||
setValue: function (val) {
|
||||
|
@ -4797,7 +4799,7 @@ define([
|
|||
if (datePicker.value === '') {
|
||||
return void refreshEndDate();
|
||||
}
|
||||
var d = picker.parseDate(datePicker.value);
|
||||
var d = DatePicker.parseDate(datePicker.value);
|
||||
content.answers.endDate = +d;
|
||||
framework.localChange();
|
||||
framework._.cpNfInner.chainpad.onSettle(function () {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
define([
|
||||
'jquery',
|
||||
'/lib/datepicker/flatpickr.js',
|
||||
'/lib/calendar/moment.min.js',
|
||||
|
||||
'css!/lib/datepicker/flatpickr.min.css',
|
||||
], function ($, Flatpickr) {
|
||||
], function ($, Flatpickr, Moment) {
|
||||
var createRangePicker = function (cfg) {
|
||||
var start = cfg.startpicker;
|
||||
var end = cfg.endpicker;
|
||||
|
@ -15,6 +16,10 @@ define([
|
|||
} catch (e) {}
|
||||
if (!is24h) { dateFormat = "Y-m-d h:i K"; }
|
||||
|
||||
var parseDate = (value) => {
|
||||
return Moment(value, 'YYYY-MM-DD HH:mm a').toDate();
|
||||
};
|
||||
|
||||
var e = $(end.input)[0];
|
||||
var endPickr = Flatpickr(e, {
|
||||
enableTime: true,
|
||||
|
@ -30,7 +35,7 @@ define([
|
|||
time_24hr: is24h,
|
||||
dateFormat: dateFormat,
|
||||
onChange: function () {
|
||||
endPickr.set('minDate', startPickr.parseDate(s.value));
|
||||
endPickr.set('minDate', parseDate(s.value));
|
||||
}
|
||||
});
|
||||
startPickr.setDate(start.date);
|
||||
|
@ -39,11 +44,11 @@ define([
|
|||
|
||||
var getStartDate = function () {
|
||||
setTimeout(function () { $(startPickr.calendarContainer).remove(); });
|
||||
return startPickr.parseDate(s.value);
|
||||
return parseDate(s.value);
|
||||
};
|
||||
var getEndDate = function () {
|
||||
setTimeout(function () { $(endPickr.calendarContainer).remove(); });
|
||||
var d = endPickr.parseDate(e.value);
|
||||
var d = parseDate(e.value);
|
||||
|
||||
if (endPickr.config.dateFormat === "Y-m-d") { // All day event
|
||||
// Tui-calendar will remove 1s (1000ms) to the date for an unknown reason...
|
||||
|
@ -59,6 +64,7 @@ define([
|
|||
};
|
||||
};
|
||||
return {
|
||||
parseDate: parseDate,
|
||||
createRangePicker: createRangePicker
|
||||
};
|
||||
});
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -15,4 +15,5 @@ This file is intended to be used as a log of what third-party source we have ven
|
|||
* [asciidoc.js 2.0.0](https://github.com/asciidoctor/codemirror-asciidoc/releases/tag/2.0.0) with slight changes to match the format of other codemirror modes
|
||||
* [Asciidoctor.js 2.2.6](https://github.com/asciidoctor/asciidoctor.js/releases/tag/v2.2.6) for AsciiDoc rendering
|
||||
* [Rangy 1.3.0](https://github.com/timdown/rangy/tree/1.3.0) for cursor management. NOTE: [A CVE](https://github.com/advisories/GHSA-65rp-mhqf-8gj3) exists for this version but CryptPad isn't affected
|
||||
* [Moment v2.29.4](http://momentjs.com/) for providing a date parser
|
||||
|
||||
|
|
Loading…
Reference in New Issue