|
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 |
- |
|
|