From f41475ac3bb540bd920db249ea6a0c2857d890f0 Mon Sep 17 00:00:00 2001 From: Ronni Baslund Date: Sun, 7 Jun 2026 08:53:31 +0200 Subject: [PATCH] feat(scheduling): ignoreAllDayEvents option --- apps/portal/pages/admin/scheduling.vue | 9 +- .../event-types/dto/event-type-dtos.ts | 6 + .../event-types/event-types.service.ts | 1 + .../src/scheduling/slots/slot.service.ts | 4 +- .../calendar-gateway.types.ts | 10 +- .../jmap-calendar.gateway.ts | 153 +++++++++++++++++- .../src/schemas/event-type.schema.ts | 6 + 7 files changed, 184 insertions(+), 5 deletions(-) diff --git a/apps/portal/pages/admin/scheduling.vue b/apps/portal/pages/admin/scheduling.vue index ba4125d..7215ea8 100644 --- a/apps/portal/pages/admin/scheduling.vue +++ b/apps/portal/pages/admin/scheduling.vue @@ -25,6 +25,7 @@ interface EventType { maximumDaysInFuture: number availabilityScheduleId: string locationType: string + ignoreAllDayEvents: boolean isActive: boolean } interface MinuteInterval { startMinute: number; endMinute: number } @@ -258,6 +259,7 @@ const etForm = reactive({ maximumDaysInFuture: 60, availabilityScheduleId: '', locationType: 'jitsi', + ignoreAllDayEvents: true, }) const etEditingId = ref(null) const etSlugTouched = ref(false) @@ -271,7 +273,7 @@ function openEt(et?: EventType) { slotIntervalMinutes: et.slotIntervalMinutes, bufferBeforeMinutes: et.bufferBeforeMinutes, bufferAfterMinutes: et.bufferAfterMinutes, minimumNoticeMinutes: et.minimumNoticeMinutes, maximumDaysInFuture: et.maximumDaysInFuture, availabilityScheduleId: et.availabilityScheduleId, - locationType: et.locationType, + locationType: et.locationType, ignoreAllDayEvents: et.ignoreAllDayEvents ?? true, }) etSlugTouched.value = true // don't auto-rewrite an existing slug } else { @@ -280,6 +282,7 @@ function openEt(et?: EventType) { title: '', slug: '', durationMinutes: 30, slotIntervalMinutes: 15, bufferBeforeMinutes: 0, bufferAfterMinutes: 0, minimumNoticeMinutes: 60, maximumDaysInFuture: 60, availabilityScheduleId: availability.value[0]?._id ?? '', locationType: 'jitsi', + ignoreAllDayEvents: true, }) etSlugTouched.value = false } @@ -608,6 +611,10 @@ const detailTabs = computed(() => [ +