Lines 42-61
Link Here
|
42 |
altinput_dateformat = 'yyyy/mm/dd'; |
42 |
altinput_dateformat = 'yyyy/mm/dd'; |
43 |
delimiter = "-"; |
43 |
delimiter = "-"; |
44 |
} |
44 |
} |
45 |
|
|
|
46 |
function get_dateformat_str(dateformat) { |
47 |
var dateformat_str; |
48 |
if (dateformat == 'us') { |
49 |
dateformat_str = 'mm/dd/yyyy'; |
50 |
} else if (dateformat == 'metric') { |
51 |
dateformat_str = 'dd/mm/yyyy'; |
52 |
} else if (dateformat == 'iso') { |
53 |
dateformat_str = 'yyyy-mm-dd'; |
54 |
} else if (dateformat == 'dmydot') { |
55 |
dateformat_str = 'dd.mm.yyyy'; |
56 |
} |
57 |
return dateformat_str; |
58 |
} |
59 |
</script> |
45 |
</script> |
60 |
[% Asset.js("lib/flatpickr/flatpickr.min.js") | $raw %] |
46 |
[% Asset.js("lib/flatpickr/flatpickr.min.js") | $raw %] |
61 |
[% Asset.js("lib/maskito/maskito.core.js") | $raw %] |
47 |
[% Asset.js("lib/maskito/maskito.core.js") | $raw %] |
Lines 117-123
Link Here
|
117 |
new Maskito(instance.altInput, options); |
103 |
new Maskito(instance.altInput, options); |
118 |
}, |
104 |
}, |
119 |
onClose: function (selectedDates, dateText, instance) { |
105 |
onClose: function (selectedDates, dateText, instance) { |
120 |
validate_date(dateText, instance); |
|
|
121 |
var thisInput = instance.input; |
106 |
var thisInput = instance.input; |
122 |
if (thisInput.hasAttribute("data-start_for")) { |
107 |
if (thisInput.hasAttribute("data-start_for")) { |
123 |
var endPicker = document.querySelector("#" + thisInput.dataset.start_for)._flatpickr; |
108 |
var endPicker = document.querySelector("#" + thisInput.dataset.start_for)._flatpickr; |
Lines 128-166
Link Here
|
128 |
|
113 |
|
129 |
var MSG_PLEASE_ENTER_A_VALID_DATE = _("Please enter a valid date (should match %s)."); |
114 |
var MSG_PLEASE_ENTER_A_VALID_DATE = _("Please enter a valid date (should match %s)."); |
130 |
|
115 |
|
131 |
function is_valid_date(date) { |
|
|
132 |
// An empty string is considered as a valid date for convenient reasons. |
133 |
if (date === "") return 1; |
134 |
var dateformat = flatpickr_dateformat_string; |
135 |
switch (dateformat_pref) { |
136 |
case "us": |
137 |
flatpickr_dateformat_string = "m/d/Y"; |
138 |
break; |
139 |
case "metric": |
140 |
flatpickr_dateformat_string = "d/m/Y"; |
141 |
break; |
142 |
case "dmydot": |
143 |
flatpickr_dateformat_string = "d.m.Y"; |
144 |
break; |
145 |
default: |
146 |
flatpickr_dateformat_string = "Y-m-d"; |
147 |
} |
148 |
try { |
149 |
flatpickr.parseDate(date, dateformat); |
150 |
} catch (e) { |
151 |
return 0; |
152 |
} |
153 |
return 1; |
154 |
} |
155 |
|
156 |
function validate_date(dateText, inst) { |
157 |
if (!is_valid_date(dateText)) { |
158 |
var dateformat_str = get_dateformat_str(dateformat_pref); |
159 |
alert(MSG_PLEASE_ENTER_A_VALID_DATE.format(dateformat_str)); |
160 |
inst.clear(); |
161 |
} |
162 |
} |
163 |
|
164 |
$(document).ready(function () { |
116 |
$(document).ready(function () { |
165 |
$(".flatpickr").each(function () { |
117 |
$(".flatpickr").each(function () { |
166 |
let options = {}; |
118 |
let options = {}; |
167 |
- |
|
|