Skip to content
Snippets Groups Projects
Commit bd736269 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch...

Merge branch '341-absence-creation-dialog-doesn-t-handle-min-max-date-times-correctly' into 'master'

Resolve "Absence creation dialog doesn't handle min/max date times correctly"

Closes #341

See merge request !446
parents 302b7e12 0ae44ed5
No related branches found
No related tags found
1 merge request!446Resolve "Absence creation dialog doesn't handle min/max date times correctly"
Pipeline #194568 failed
<template>
<v-form @input="$emit('valid', $event)">
<v-form ref="form" @input="$emit('valid', $event)">
<v-container>
<v-row>
<div aria-required="true" class="full-width">
......@@ -30,9 +30,10 @@
:label="$t('forms.labels.start')"
:max-date="endDate"
:max-time="maxStartTime"
:limit-selectable-range="false"
:rules="$rules().required.build()"
:value="startDate"
@input="$emit('start-date', $event)"
@input="handleStartDate"
/>
</div>
</v-col>
......@@ -42,9 +43,10 @@
:label="$t('forms.labels.end')"
:min-date="startDate"
:min-time="minEndTime"
:limit-selectable-range="false"
:rules="$rules().required.build()"
:value="endDate"
@input="$emit('end-date', $event)"
@input="handleEndDate"
/>
</div>
</v-col>
......@@ -141,5 +143,33 @@ export default {
return start.plus({ minutes: 5 }).toFormat("HH:mm");
},
},
methods: {
handleStartDate(startDate) {
const parsedStart = DateTime.fromISO(startDate);
const parsedEnd = DateTime.fromISO(this.endDate);
if (parsedStart >= parsedEnd) {
this.$emit(
"end-date",
parsedStart.plus({ minutes: 5 }).toISO({ suppressSeconds: true }),
);
}
this.$emit("start-date", startDate);
this.$refs.form.resetValidation();
this.$refs.form.validate();
},
handleEndDate(endDate) {
const parsedStart = DateTime.fromISO(this.startDate);
const parsedEnd = DateTime.fromISO(endDate);
if (parsedEnd <= parsedStart) {
this.$emit(
"start-date",
parsedEnd.minus({ minutes: 5 }).toISO({ suppressSeconds: true }),
);
}
this.$emit("end-date", endDate);
this.$refs.form.resetValidation();
this.$refs.form.validate();
},
},
};
</script>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment