4545 </template >
4646 <template v-if =" ! calendar .isSharedWithMe && isAfterVersion " >
4747 <div class =" edit-calendar-modal__default-alarm" >
48- <label for =" default-alarm-select" class =" edit-calendar-modal__default-alarm__label" >
49- {{ $t('calendar', 'Default reminder') }}
48+ <label for =" default-alarm-partday- select" class =" edit-calendar-modal__default-alarm__label" >
49+ {{ $t('calendar', 'Default reminder for part-day events ') }}
5050 </label >
5151 <NcSelect
52- id =" default-alarm-select"
53- v-model =" selectedDefaultAlarm"
54- :options =" defaultAlarmOptions"
52+ id =" default-alarm-partday-select"
53+ v-model =" selectedDefaultAlarmPartDay"
54+ :options =" defaultAlarmPartDayOptions"
55+ :clearable =" false"
56+ :placeholder =" $t('calendar', 'Select default reminder')"
57+ class =" edit-calendar-modal__default-alarm__select"
58+ @update:modelValue =" defaultAlarmChanged = true" />
59+ </div >
60+ <div class =" edit-calendar-modal__default-alarm" >
61+ <label for =" default-alarm-fullday-select" class =" edit-calendar-modal__default-alarm__label" >
62+ {{ $t('calendar', 'Default reminder for full-day events') }}
63+ </label >
64+ <NcSelect
65+ id =" default-alarm-fullday-select"
66+ v-model =" selectedDefaultAlarmFullDay"
67+ :options =" defaultAlarmFullDayOptions"
5568 :clearable =" false"
5669 :placeholder =" $t('calendar', 'Select default reminder')"
5770 class =" edit-calendar-modal__default-alarm__select"
5871 @update:modelValue =" defaultAlarmChanged = true" />
5972 <p class =" edit-calendar-modal__default-alarm__hint" >
60- {{ $t('calendar', 'This reminder will be automatically added to all new events created in this calendar') }}
73+ {{ $t('calendar', 'These reminders will be automatically added to new events created in this calendar') }}
6174 </p >
6275 </div >
6376 </template >
@@ -159,7 +172,8 @@ export default {
159172 isTransparent: false ,
160173 calendarName: undefined ,
161174 calendarNameChanged: false ,
162- selectedDefaultAlarm: null ,
175+ selectedDefaultAlarmPartDay: null ,
176+ selectedDefaultAlarmFullDay: null ,
163177 defaultAlarmChanged: false ,
164178 }
165179 },
@@ -251,11 +265,11 @@ export default {
251265 },
252266
253267 /**
254- * Get the default alarm options for the select dropdown
268+ * Get the default alarm options for part-day (timed) events
255269 *
256270 * @return {Array}
257271 */
258- defaultAlarmOptions () {
272+ defaultAlarmPartDayOptions () {
259273 const settingsStore = useSettingsStore ()
260274 const currentUserTimezone = settingsStore .getResolvedTimezone
261275 const locale = settingsStore .momentLocale
@@ -267,7 +281,6 @@ export default {
267281 },
268282 ]
269283
270- // Add standard alarm options for timed events
271284 const alarms = getDefaultAlarms (false )
272285 for (const alarm of alarms) {
273286 const alarmObject = this .getAlarmObjectFromTriggerTime (alarm)
@@ -280,6 +293,35 @@ export default {
280293 return options
281294 },
282295
296+ /**
297+ * Get the default alarm options for full-day (all-day) events
298+ *
299+ * @return {Array}
300+ */
301+ defaultAlarmFullDayOptions () {
302+ const settingsStore = useSettingsStore ()
303+ const currentUserTimezone = settingsStore .getResolvedTimezone
304+ const locale = settingsStore .momentLocale
305+
306+ const options = [
307+ {
308+ label: this .$t (' calendar' , ' None' ),
309+ value: null ,
310+ },
311+ ]
312+
313+ const alarms = getDefaultAlarms (true )
314+ for (const alarm of alarms) {
315+ const alarmObject = this .getAlarmObjectFromTriggerTime (alarm)
316+ options .push ({
317+ label: alarmFormat (alarmObject, true , currentUserTimezone, locale),
318+ value: alarm,
319+ })
320+ }
321+
322+ return options
323+ },
324+
283325 /**
284326 * Whether the default alarm feature is supported (Nextcloud 34+)
285327 *
@@ -302,13 +344,22 @@ export default {
302344 this .calendarColorChanged = false
303345 this .isTransparent = calendar .transparency === ' transparent'
304346
305- // Initialize default alarm
306- if (calendar .defaultAlarm === null ) {
307- this .selectedDefaultAlarm = this .defaultAlarmOptions [0 ]
347+ // Initialize default alarm for part-day events
348+ if (calendar .defaultAlarmPartDay === null ) {
349+ this .selectedDefaultAlarmPartDay = this .defaultAlarmPartDayOptions [0 ]
350+ } else {
351+ const value = parseInt (calendar .defaultAlarmPartDay )
352+ const option = this .defaultAlarmPartDayOptions .find ((opt ) => opt .value === value)
353+ this .selectedDefaultAlarmPartDay = option || this .defaultAlarmPartDayOptions [0 ]
354+ }
355+
356+ // Initialize default alarm for full-day events
357+ if (calendar .defaultAlarmFullDay === null ) {
358+ this .selectedDefaultAlarmFullDay = this .defaultAlarmFullDayOptions [0 ]
308359 } else {
309- const value = parseInt (calendar .defaultAlarm )
310- const option = this .defaultAlarmOptions .find ((opt ) => opt .value === value)
311- this .selectedDefaultAlarm = option || this .defaultAlarmOptions [0 ]
360+ const value = parseInt (calendar .defaultAlarmFullDay )
361+ const option = this .defaultAlarmFullDayOptions .find ((opt ) => opt .value === value)
362+ this .selectedDefaultAlarmFullDay = option || this .defaultAlarmFullDayOptions [0 ]
312363 }
313364 this .defaultAlarmChanged = false
314365 },
@@ -377,19 +428,20 @@ export default {
377428 },
378429
379430 /**
380- * Save the calendar default alarm .
431+ * Save the calendar default alarms .
381432 */
382433 async saveDefaultAlarm () {
383434 try {
384- const defaultAlarmValue = this .selectedDefaultAlarm ? this .selectedDefaultAlarm .value : null
385- await this .calendarsStore .changeCalendarDefaultAlarm ({
435+ const pdayValue = this .selectedDefaultAlarmPartDay ? this .selectedDefaultAlarmPartDay .value : null
436+ const fdayValue = this .selectedDefaultAlarmFullDay ? this .selectedDefaultAlarmFullDay .value : null
437+ await this .calendarsStore .changeCalendarDefaultAlarms ({
386438 calendar: this .calendar ,
387- defaultAlarm: defaultAlarmValue,
439+ defaultAlarmPartDay: pdayValue,
440+ defaultAlarmFullDay: fdayValue,
388441 })
389442 } catch (error) {
390- logger .error (' Failed to save calendar default alarm ' , {
443+ logger .error (' Failed to save calendar default alarms ' , {
391444 calendar: this .calendar ,
392- defaultAlarm: this .selectedDefaultAlarm ,
393445 })
394446 throw error
395447 }
0 commit comments