From 84cfbe6b1966943e7df04afc3d29ba8a3597cf4c Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Wed, 29 Nov 2023 08:57:54 +0100 Subject: fix(dav): Allow single-day out of office Signed-off-by: Christoph Wurst --- apps/dav/lib/Controller/AvailabilitySettingsController.php | 2 +- apps/dav/src/components/AbsenceForm.vue | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'apps/dav') diff --git a/apps/dav/lib/Controller/AvailabilitySettingsController.php b/apps/dav/lib/Controller/AvailabilitySettingsController.php index daa39df470e..73e322896d8 100644 --- a/apps/dav/lib/Controller/AvailabilitySettingsController.php +++ b/apps/dav/lib/Controller/AvailabilitySettingsController.php @@ -66,7 +66,7 @@ class AvailabilitySettingsController extends Controller { $parsedFirstDay = new DateTimeImmutable($firstDay); $parsedLastDay = new DateTimeImmutable($lastDay); - if ($parsedFirstDay->getTimestamp() >= $parsedLastDay->getTimestamp()) { + if ($parsedFirstDay->getTimestamp() > $parsedLastDay->getTimestamp()) { throw new \Exception('First day is on or after last day'); } diff --git a/apps/dav/src/components/AbsenceForm.vue b/apps/dav/src/components/AbsenceForm.vue index 500004b755a..6fb1c4ce1fd 100644 --- a/apps/dav/src/components/AbsenceForm.vue +++ b/apps/dav/src/components/AbsenceForm.vue @@ -89,11 +89,17 @@ export default { * @return {boolean} */ valid() { + // Translate the two date objects to midnight for an accurate comparison + const firstDay = new Date(this.firstDay?.getTime()) + const lastDay = new Date(this.lastDay?.getTime()) + firstDay?.setHours(0, 0, 0, 0) + lastDay?.setHours(0, 0, 0, 0) + return !!this.firstDay && !!this.lastDay && !!this.status && !!this.message - && this.lastDay > this.firstDay + && lastDay >= firstDay }, }, methods: { -- cgit v1.2.3