Commit Graph

51 Commits

Author SHA1 Message Date
Jonas Heinrich df2d51b666 feat: Ability to invite circles
This commit adds support for adding circles as attendees to a calendar event.
The relationship between the imported group and members will be compliant with
the iCal specification.

A circle with the title "testcircle" will be added as an attendee with iCal
attributes "CUTYPE=GROUP` and uri "mailto:circle+CIRCLEID@CIRCLE_INSTANCE".

Members of the circle will be imported as standard attendees. Each member gets
assigned to the circle group entry by assigning them to the group uri using the
iCal member property: "MEMBER='mailto:circle+CIRCLEID@CIRCLE_INSTANCE'".

Searching for circles is only enabled if the circles app is activated.

Circles added to the list of attendees get imported only once and are not
synced yet. While adding a circle, a notice about this is shown to the user.
Only members of local circles which are local users get imported.

Rendering groups in the frontend is done in a separate PR
https://github.com/nextcloud/calendar/pull/5396

Signed-off-by: Jonas Heinrich <heinrich@synyx.de>
2023-12-04 18:33:36 +01:00
Jonas Heinrich 33e236c285 feat: Ability to render groups as attendees
Implement ability to render groups and group members as attendees of an
calendar event. This is implemented by reading and interpreting the
CUTYPE and MEMBER parameter of the iCal ATTENDEE attribute.

For example attendee "user1" belongs to a group identified with the uri
mygroup@localhost: "ATTENDEE;MEMBER="mailto:mygroup@localhost";CN=user1;[...]".
The group entity is also a ATTENDEE entry but with "CUTYPE=GROUP" and
with the corresponding uri mygroup@localhost:
"ATTENDEE;CN=MyGroup;CUTYPE=GROUP;[...]:mailto:mygroup@localhost".

In the frontend, groups will be displayed as a collapsible list whereas
members of the group will be displayed with the same functionality as
normal attendees.

In case the group entry gets deleted, all of its members will get
removed too.

Empty groups with no members might be present in the iCal file but won't
get rendered.

According to the iCal specifications, groups can have more than one uri and
attendees could have multiple membership addresses in one attribute.
This is neither covered yet in calendar-js nor in this PR.

Signed-off-by: Jonas Heinrich <heinrich@synyx.de>
2023-11-06 12:04:26 +01:00
Christoph Wurst 8820948844
feat(talk): Make event attendees Talk room participants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-08-04 14:46:47 +02:00
Mikhail Sazanov 9d964452e5 Add attachments to events
Signed-off-by: Mikhail Sazanov <m@sazanof.ru>
2023-02-15 18:45:53 +03:00
Richard Steinmetz eef8d55cf2
Merge pull request #4683 from nextcloud/enh/4671/valarm-rfc
Improve handling of email alarms
2022-12-15 13:26:50 +01:00
Richard Steinmetz 150cc2976d
feat(alarms): improve email alarm RFC compliance
Copy email addresses of attendees to alarm component.

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-12-15 13:07:59 +01:00
Richard Steinmetz fa85fa36c4
Delete X-ALT-DESC property value on changing the description
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-11-18 12:42:02 +01:00
Richard Steinmetz 93fb7c58df
Fix eslint issues
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-09-16 15:59:15 +02:00
rogelio-o 04c0f9e7eb
Duplicate calendar event
Signed-off-by: rogelio-o <yo@rogelioorts.com>
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-06-21 13:29:41 +02:00
Maximilian Martin 302aa48bc3 remove property X-APPLE-STRUCTURED-LOCATION upon location update
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2022-02-03 16:16:39 -05:00
Maximilian Martin 4086576320 reference issue in documentation
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2022-02-01 08:56:29 -05:00
Maximilian Martin 963b3b2c75 delete all parameters of description property upon modification
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2022-02-01 08:56:29 -05:00
max65482 30469aa485 move fix to method changeDescription
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2022-01-28 08:32:02 -05:00
max65482 5f65d9f2aa remove altrep parameter upon description update
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2022-01-28 08:32:02 -05:00
szaimen 34536574f4 improve UX regarding target time
Signed-off-by: szaimen <szaimen@e.mail.de>
Co-Authored-By: Richard Steinmetz <richard@steinmetz.cloud>
2021-12-21 13:33:45 +01:00
szaimen 110d4f67e5 Set default status
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-09-20 19:16:54 +02:00
Raimund Schlüßler 0015d64578
Fix jsdoc/tag-lines
Signed-off-by: Raimund Schlüßler <raimund.schluessler@mailbox.org>
2021-09-07 21:12:52 +02:00
Raimund Schlüßler d78813dcf9
Merge pull request #3450 from nextcloud/fix/noid/jsdoc
Fix jsdoc warnings
2021-09-07 12:23:04 +02:00
Richard Steinmetz e057fe1c17
Use bundled version of calendar-js
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-09-05 08:43:34 +02:00
Raimund Schlüßler e749918fed
Fix jsdoc/require-param-...
Signed-off-by: Raimund Schlüßler <raimund.schluessler@mailbox.org>
2021-09-05 08:10:13 +02:00
Raimund Schlüßler cbed6576fa
Fix jsdoc/check-values
Signed-off-by: Raimund Schlüßler <raimund.schluessler@mailbox.org>
2021-09-05 08:10:08 +02:00
Christoph Wurst 205a2e1d4c
Install @nextcloud/calendar-js via the npm registry
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-07-27 08:55:52 +02:00
Richard Steinmetz 737fd7cd20
Run lint:fix
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-07-23 12:39:17 +02:00
Richard Steinmetz d09b74f3ca
Move resource list and search to a separate tab
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-07-05 16:39:02 +02:00
John Molakvoæ (skjnldsv) 3c98f7a802
Fix lint
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-06-25 14:38:26 +02:00
Matteo Settenvini 9e6b1c7536 Add user default reminder to new events
Take the value from the saved settings for the default reminder,
and if it is a valid amount of seconds, add a new alarm
to newly created events.

Signed-off-by: Matteo Settenvini <matteo@member.fsf.org>
2021-04-08 12:43:08 +02:00
s3lph 721fe7a114 Fix #2675: RRULE UNTIL must be in UTC if DTSTART is timezone-aware
Signed-off-by: s3lph <5564491+s3lph@users.noreply.github.com>
2020-11-19 21:59:00 +01:00
Georg Ehrke 8a16da103e
Always allow editing an alarm if it is absolute
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-04-07 13:50:20 +02:00
Georg Ehrke 6f5966a2b4
Cleanup models and add full unit test coverage
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-04-01 17:48:23 +02:00
Georg Ehrke 0b27b62feb
Trigger must always be DATE-TIME
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-03-31 11:50:51 +02:00
Georg Ehrke 5d4a701ed3
Merge pull request #2026 from nextcloud/bugfix/2013/add_rrule_to_existing_events
Only create recurrence-exceptions for forked events
2020-03-02 15:53:22 +01:00
Georg Ehrke e0abd79243
Only create recurrence-exceptions for forked events
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-03-02 13:50:24 +01:00
Georg Ehrke ccfa924035
Add custom color picker to sidebar editor
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-03-02 10:39:52 +01:00
Georg Ehrke 490957248b
Preserve duration when modifying starttime
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-02-28 15:18:57 +01:00
Georg Ehrke c627f95985
Fix setting the end timezone
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-02-26 15:45:36 +01:00
Georg Ehrke c4cfec9542
Always turn DTEND exclusive
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-01-14 15:55:33 +01:00
Georg Ehrke 37bf964908
Add Free/Busy UI
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-01-13 15:16:58 +01:00
Georg Ehrke ed4b50b40b
Store calendar object instance in vue, allow to transfer data from popover to sidebar
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-11-04 14:32:44 +01:00
Georg Ehrke d834280d6d
linting fixes
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-29 09:48:06 +01:00
Georg Ehrke f8a8fb9ab3
Default time to 10am to 11am when changing from allDay to timed
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-22 14:22:32 +02:00
Georg Ehrke 62322a722d
use eslint-config-nextcloud
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:22 +02:00
Georg Ehrke 68973d4010
if turning an Allday event without timezone information into a timed event, automatically add current user timezone
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:21 +02:00
Georg Ehrke 140e6a2181
Properly retain exlusivity of dtend when toggling all-day
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:19 +02:00
Georg Ehrke d658f137cc
Finish Reminder implementation
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:18 +02:00
Georg Ehrke 82fedb462f
Adapt mechanism, that updates new event editor on select of new time, to calendarObjectInstance
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:18 +02:00
Georg Ehrke 270940af84
allow removing recurrence rule
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:17 +02:00
Georg Ehrke a60785d196
Finish implementatation of new recurrence-editor
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:31:16 +02:00
Georg Ehrke 02e7cd9aae
move certain services that are simply utilities to a utils folder, add instructions to tranlators, replace default illustration
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:30:28 +02:00
Georg Ehrke 3533b8b582
Move Attendees Section to new calendarObjectInstance model, add property empty attendee section:
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:30:27 +02:00
Georg Ehrke c779bde4b3
Move main inputs in editor to new calendarObjectInstance model and vuex store
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2019-10-19 14:30:27 +02:00