diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-02-10 08:08:24 +0100 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-02-10 08:08:24 +0100 |
| commit | 30850f81e7b0e3f7f6a2a3c09ddb6064ee4cbac1 (patch) | |
| tree | 4aa21382cb0c624bcb7d3edab7253b66ea7f4004 | |
| parent | 9860d9e4cf85317f096261fdd379512180a1574f (diff) | |
remove moment.js dependency from consultation creator, fixes #6049
Closes #6049
Merge request studip/studip!4718
| -rw-r--r-- | resources/vue/apps/ConsultationCreator.vue | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/resources/vue/apps/ConsultationCreator.vue b/resources/vue/apps/ConsultationCreator.vue index 0b1cfbb..ede8387 100644 --- a/resources/vue/apps/ConsultationCreator.vue +++ b/resources/vue/apps/ConsultationCreator.vue @@ -289,10 +289,15 @@ import StudipTooltipIcon from '@/vue/components/StudipTooltipIcon.vue'; import Datepicker from '@/vue/components/Datepicker.vue'; -import moment from 'moment'; import StudipSelect from '@/vue/components/StudipSelect.vue'; import Timepicker from '@/vue/components/Timepicker.vue'; +function addWeeks(weeks, date = new Date()) { + const result = new Date(date); + result.setDate(result.getDate() + weeks * 7); + return result; +} + export default { name: 'ConsultationCreator', components: {Datepicker, StudipSelect, StudipTooltipIcon, Timepicker}, @@ -331,7 +336,7 @@ export default { consecutive: false, dayOfWeek: (new Date()).getDay(), duration: 15, - endDate: moment().add(4, 'weeks').toDate(), + endDate: addWeeks(4), endTime: '09:00', errors: [], interval: 1, @@ -351,7 +356,7 @@ export default { size: 1, slotCount: null, - startDate: moment().add(1, 'weeks').toDate(), + startDate: addWeeks(1), startTime: '08:00', }; }, @@ -418,24 +423,24 @@ export default { event.preventDefault(); } }, - compareDates(date0, date1, operator = '=', precision = 'day') { - const mapping = { - '<': 'isBefore', - '<=': 'isSameOrBefore', - '=': 'isSame', - '>=': 'isSameOrAfter', - '>': 'isAfter', - }; - - if (mapping[operator] === undefined) { - throw new Error(`Unsupported operator '${operator}'`); + compareDates(date0, date1, operator = '=') { + const t0 = (new Date(date0)).setHours(0, 0, 0, 0); + const t1 = (new Date(date1)).setHours(0, 0, 0, 0); + + switch (operator) { + case '<': + return t0 < t1; + case '<=': + return t0 <= t1; + case '=': + return t0 === t1; + case '>=': + return t0 >= t1; + case '>': + return t0 > t1; + default: + throw new Error(`Unsupported operator '${operator}'`); } - - const compareDate0 = moment(date0); - const compareDate1 = moment(date1); - - const method = mapping[operator]; - return compareDate0[method](compareDate1, precision); }, validateInputs(event) { const errors = []; |
