Skip to content
Snippets Groups Projects
Commit 69b592d3 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Re-set start datetime when end datetime gets set to an earlier value (and vice...

Re-set start datetime when end datetime gets set to an earlier value (and vice versa) in absence creation dialog
parent 28ec5cbc
No related branches found
No related tags found
1 merge request!446Resolve "Absence creation dialog doesn't handle min/max date times correctly"
Pipeline #194550 failed
...@@ -30,9 +30,10 @@ ...@@ -30,9 +30,10 @@
:label="$t('forms.labels.start')" :label="$t('forms.labels.start')"
:max-date="endDate" :max-date="endDate"
:max-time="maxStartTime" :max-time="maxStartTime"
:limit-selectable-range="false"
:rules="$rules().required.build()" :rules="$rules().required.build()"
:value="startDate" :value="startDate"
@input="$emit('start-date', $event)" @input="handleStartDate"
/> />
</div> </div>
</v-col> </v-col>
...@@ -42,9 +43,10 @@ ...@@ -42,9 +43,10 @@
:label="$t('forms.labels.end')" :label="$t('forms.labels.end')"
:min-date="startDate" :min-date="startDate"
:min-time="minEndTime" :min-time="minEndTime"
:limit-selectable-range="false"
:rules="$rules().required.build()" :rules="$rules().required.build()"
:value="endDate" :value="endDate"
@input="$emit('end-date', $event)" @input="handleEndDate"
/> />
</div> </div>
</v-col> </v-col>
...@@ -141,5 +143,23 @@ export default { ...@@ -141,5 +143,23 @@ export default {
return start.plus({ minutes: 5 }).toFormat("HH:mm"); 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);
},
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);
},
},
}; };
</script> </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