aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2026-02-10 08:08:24 +0100
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2026-02-10 08:08:24 +0100
commit30850f81e7b0e3f7f6a2a3c09ddb6064ee4cbac1 (patch)
tree4aa21382cb0c624bcb7d3edab7253b66ea7f4004 /resources
parent9860d9e4cf85317f096261fdd379512180a1574f (diff)
remove moment.js dependency from consultation creator, fixes #6049
Closes #6049 Merge request studip/studip!4718
Diffstat (limited to 'resources')
-rw-r--r--resources/vue/apps/ConsultationCreator.vue45
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 = [];