diff options
author | Stan Hu <stanhu@gmail.com> | 2017-07-19 22:50:38 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-07-19 22:50:38 +0000 |
commit | 9d03637307212856e9f52a0c097aa8a6bff35ea1 (patch) | |
tree | 5000d2002821b20ca1d69aa23ee739435da20c81 /app | |
parent | d96b14f80a2fb285f2128aabeacc98fbe1f31dc8 (diff) | |
parent | 9a303fb7e889783c347778e67e2f6d15a330f418 (diff) | |
download | gitlab-ce-9d03637307212856e9f52a0c097aa8a6bff35ea1.tar.gz |
Merge branch 'fix-date-off-by-1' into 'master'
Fix date bug in JS that makes dates not work with strings
Closes #29916
See merge request !12147
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/due_date_select.js | 11 | ||||
-rw-r--r-- | app/assets/javascripts/lib/utils/datefix.js | 8 |
2 files changed, 15 insertions, 4 deletions
diff --git a/app/assets/javascripts/due_date_select.js b/app/assets/javascripts/due_date_select.js index a8fc5b41fb4..2856c8e2862 100644 --- a/app/assets/javascripts/due_date_select.js +++ b/app/assets/javascripts/due_date_select.js @@ -2,6 +2,8 @@ /* global dateFormat */ /* global Pikaday */ +import DateFix from './lib/utils/datefix'; + class DueDateSelect { constructor({ $dropdown, $loading } = {}) { const $dropdownParent = $dropdown.closest('.dropdown'); @@ -43,14 +45,13 @@ class DueDateSelect { initDatePicker() { const $dueDateInput = $(`input[name='${this.fieldName}']`); - + const dateFix = DateFix.dashedFix($dueDateInput.val()); const calendar = new Pikaday({ field: $dueDateInput.get(0), theme: 'gitlab-theme', format: 'yyyy-mm-dd', onSelect: (dateText) => { const formattedDate = dateFormat(new Date(dateText), 'yyyy-mm-dd'); - $dueDateInput.val(formattedDate); if (this.$dropdown.hasClass('js-issue-boards-due-date')) { @@ -62,7 +63,7 @@ class DueDateSelect { } }); - calendar.setDate(new Date($dueDateInput.val())); + calendar.setDate(dateFix); this.$datePicker.append(calendar.el); this.$datePicker.data('pikaday', calendar); } @@ -168,6 +169,7 @@ class DueDateSelectors { initMilestoneDatePicker() { $('.datepicker').each(function() { const $datePicker = $(this); + const dateFix = DateFix.dashedFix($datePicker.val()); const calendar = new Pikaday({ field: $datePicker.get(0), theme: 'gitlab-theme animate-picker', @@ -177,7 +179,8 @@ class DueDateSelectors { $datePicker.val(dateFormat(new Date(dateText), 'yyyy-mm-dd')); } }); - calendar.setDate(new Date($datePicker.val())); + + calendar.setDate(dateFix); $datePicker.data('pikaday', calendar); }); diff --git a/app/assets/javascripts/lib/utils/datefix.js b/app/assets/javascripts/lib/utils/datefix.js new file mode 100644 index 00000000000..990dc3f6d1a --- /dev/null +++ b/app/assets/javascripts/lib/utils/datefix.js @@ -0,0 +1,8 @@ +const DateFix = { + dashedFix(val) { + const [y, m, d] = val.split('-'); + return new Date(y, m - 1, d); + }, +}; + +export default DateFix; |