- 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>
The timestamp is an int, but we treated it as string. With this patch
the property map is enriched with types and settype casts the value if
necessary.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
When we search for CalDAV objects in the DB we take the first and last
occurence into account. For recurring events that is when they take
place the very first time and the very last time. Searching in a more
specific time range will still match this condition, because the
recurring event starts before the end of the requested range but ends
after the start of the requested range.
Sabre has filters for this. If we apply them on all seach objects of a
search with a time range, then only the recurring events actually taking
place at the time of the requested time range will be returned.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
For API users it looked like any properties could be searched. But it
turned out to be a hand picked list of properties that we index and then
use for the search. To prevent application errors where special props
are not found, I suggest we document and type the allowed values.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
The trashbin is one report across all calendars of a user. In order to
refresh the data of a single calendar when one of its events is
restored, we need to know what calendar the event belongs to. There
doesn't seem to be a standard property for a URI, so this adds a custom
Nextcloud prop for the calendar-uri.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
We had both in places, but the old one isn't used anywhere outside this
app, so it's time to migrate the code.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
update styling for conditionals and simplifying conditional by only
relying on dtstart instead of also counting vevents (since they imply
the same condition, assuming valid events)
Signed-off-by: leith abdulla <online-nextcloud@eleith.com>
when importing ics files from third party services (ex: google), long
running recurrence vcalander objects can contain numerous vevents
relating to past exemptions or edits.
these objects are handled incorrectly, leading to incorrect first and/or
last occurence dates from being inferred. as a result, a number of
imported events are not rendered in the calendar.
this PR makes use of EventIterator's constructor that takes in an array
of VEVENTS to properly handle these complex cases.
Also of note is that other parameter signatures of EventIterator's constructor,
will be deprecated, according to comments in sabre dav EventIterator.php
Signed-off-by: leith abdulla <online-nextcloud@eleith.com>