diff options
author | Thomas Citharel <tcit@tcit.fr> | 2022-05-12 09:23:26 +0200 |
---|---|---|
committer | Thomas Citharel <tcit@tcit.fr> | 2022-06-14 14:40:24 +0200 |
commit | 39ef0500d1d9b2d16540c7548100181e535f2a31 (patch) | |
tree | 0eb154048c90c8d9294da9aff4ec9a623c041d38 /apps/dav/lib/CalDAV/Activity/Provider/Todo.php | |
parent | ad10cd5f65fc145889bade0a57a910502cd02750 (diff) | |
download | nextcloud-server-39ef0500d1d9b2d16540c7548100181e535f2a31.tar.gz nextcloud-server-39ef0500d1d9b2d16540c7548100181e535f2a31.zip |
Handle the move operation properly between shared calendars
- Introduce a new CalendarObjectMovedEvent typed event dedicated for
this operation
- Handle the event in the activity backend and add new appropriate activity subjects
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Diffstat (limited to 'apps/dav/lib/CalDAV/Activity/Provider/Todo.php')
-rw-r--r-- | apps/dav/lib/CalDAV/Activity/Provider/Todo.php | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php index a3ab81e38ae..4b2796aca53 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php @@ -69,6 +69,10 @@ class Todo extends Event { $subject = $this->l->t('{actor} reopened todo {todo} in list {calendar}'); } elseif ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self') { $subject = $this->l->t('You reopened todo {todo} in list {calendar}'); + } elseif ($event->getSubject() === self::SUBJECT_OBJECT_MOVE . '_todo') { + $subject = $this->l->t('{actor} moved todo {todo} from list {sourceCalendar} to list {targetCalendar}'); + } elseif ($event->getSubject() === self::SUBJECT_OBJECT_MOVE . '_todo_self') { + $subject = $this->l->t('You moved todo {todo} from list {sourceCalendar} to list {targetCalendar}'); } else { throw new \InvalidArgumentException(); } @@ -114,6 +118,24 @@ class Todo extends Event { } } + if (isset($parameters['sourceCalendar']) && isset($parameters['targetCalendar'])) { + switch ($subject) { + case self::SUBJECT_OBJECT_MOVE . '_todo': + return [ + 'actor' => $this->generateUserParameter($parameters['actor']), + 'sourceCalendar' => $this->generateCalendarParameter($parameters['sourceCalendar'], $this->l), + 'targetCalendar' => $this->generateCalendarParameter($parameters['targetCalendar'], $this->l), + 'todo' => $this->generateObjectParameter($parameters['object']), + ]; + case self::SUBJECT_OBJECT_MOVE . '_todo_self': + return [ + 'sourceCalendar' => $this->generateCalendarParameter($parameters['sourceCalendar'], $this->l), + 'targetCalendar' => $this->generateCalendarParameter($parameters['targetCalendar'], $this->l), + 'todo' => $this->generateObjectParameter($parameters['object']), + ]; + } + } + // Legacy - Do NOT Remove unless necessary // Removing this will break parsing of activities that were created on // Nextcloud 12, so we should keep this as long as it's acceptable. |