From 04d2bb7d7e4055b527ce88bfaed70d3ad6f98f5a Mon Sep 17 00:00:00 2001 From: Grigory Vodyanov Date: Mon, 2 Mar 2026 22:50:33 +0100 Subject: [PATCH] feat: add default reminder property Signed-off-by: Grigory Vodyanov --- src/models/calendar.js | 5 ++++- src/parser.js | 1 + src/propset/calendarPropSet.js | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/models/calendar.js b/src/models/calendar.js index cfc66056..51d045a9 100644 --- a/src/models/calendar.js +++ b/src/models/calendar.js @@ -31,8 +31,9 @@ const debug = debugFactory('Calendar') * - order * - timezone * - components + * - defaultAlarm * - * The first four allowing read-write access + * The first five allowing read-write access * * @augments DavCollection */ @@ -53,6 +54,7 @@ export class Calendar extends davCollectionPublishable(davCollectionShareable(Da super._exposeProperty('timezone', NS.IETF_CALDAV, 'calendar-timezone', true) super._exposeProperty('components', NS.IETF_CALDAV, 'supported-calendar-component-set') super._exposeProperty('transparency', NS.IETF_CALDAV, 'schedule-calendar-transp', true) + super._exposeProperty('defaultAlarm', NS.NEXTCLOUD, 'default-alarm', true) } /** @@ -281,6 +283,7 @@ export class Calendar extends davCollectionPublishable(davCollectionShareable(Da [NS.IETF_CALDAV, 'schedule-calendar-transp'], [NS.IETF_CALDAV, 'schedule-default-calendar-URL'], [NS.OWNCLOUD, 'calendar-enabled'], + [NS.NEXTCLOUD, 'default-alarm'], [NS.NEXTCLOUD, 'owner-displayname'], [NS.NEXTCLOUD, 'trash-bin-retention-duration'], [NS.NEXTCLOUD, 'deleted-at'], diff --git a/src/parser.js b/src/parser.js index 0adb5c57..a81b130a 100644 --- a/src/parser.js +++ b/src/parser.js @@ -178,6 +178,7 @@ export default class Parser { this.registerParser('{http://owncloud.org/ns}calendar-enabled', Parser.bool) this.registerParser('{http://owncloud.org/ns}enabled', Parser.bool) this.registerParser('{http://owncloud.org/ns}read-only', Parser.bool) + this.registerParser('{http://owncloud.org/ns}default-alarm', Parser.decInt) this.registerParser('{http://nextcloud.com/ns}owner-displayname', Parser.text) this.registerParser('{http://nextcloud.com/ns}deleted-at', Parser.iso8601DateTime) this.registerParser('{http://nextcloud.com/ns}calendar-uri', Parser.text) diff --git a/src/propset/calendarPropSet.js b/src/propset/calendarPropSet.js index c8f609d6..de007d5e 100644 --- a/src/propset/calendarPropSet.js +++ b/src/propset/calendarPropSet.js @@ -18,6 +18,7 @@ import * as NS from '../utility/namespaceUtility.js' * - {urn:ietf:params:xml:ns:caldav}calendar-description * - {urn:ietf:params:xml:ns:caldav}calendar-timezone * - {http://owncloud.org/ns}calendar-enabled + * - {http://owncloud.org/ns}default-alarm * * @param {object} props * @return {object} @@ -71,6 +72,12 @@ export default function calendarPropSet(props) { value: value ? '1' : '0', }) break + case '{http://nextcloud.com/ns}default-alarm': + xmlified.push({ + name: [NS.NEXTCLOUD, 'default-alarm'], + value, + }) + break case '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp': xmlified.push({ name: [NS.IETF_CALDAV, 'schedule-calendar-transp'],