Commit graph

400 commits

Author SHA1 Message Date
Aleksander Machniak
a0ca17fb36 Fix missing events on edges of the view time range (when client timezone is different than server tz) (T698) 2015-08-18 12:39:55 +02:00
Aleksander Machniak
8c2aac3362 Don't use Roundcube deprecated functions 2015-08-02 20:15:28 +02:00
Thomas Bruederli
de17aff957 Add schema files for sqlite databases (for testing purposes) 2015-05-13 09:55:36 +02:00
Thomas Bruederli
09fe27d5a6 Consolidate changelog dialog labels and use libkolab's singelton getter for the Bonnie API 2015-04-21 09:24:27 +02:00
Thomas Bruederli
7fec791449 Select folders annotated 'private' for events/tasks flagged as such (#4789) 2015-03-25 15:09:04 +01:00
Thomas Bruederli
7dbb0d1b2f Handle old revisions and diffs for recurrence instances; forward instance identifier to API for diff requests 2015-03-19 12:34:08 +01:00
Thomas Bruederli
17a3783b9a Allow to load attachments from old revisions + implement resting of old revisions if write permissions are granted 2015-03-18 20:24:57 +01:00
Thomas Bruederli
6bd0bdabb5 Adapt client to changed Bonnie API 2015-03-18 12:57:36 +01:00
Thomas Bruederli
8792a668b6 Use IMAP permissions to determine possible actions on the client (#4827)
s/writeable/editable/
2015-03-11 15:24:17 +01:00
Thomas Bruederli
b68f5f5cda 'w' right doesn't allow APPEND operations 2015-03-11 12:38:47 +01:00
Thomas Bruederli
6f97b9ff71 - Require delete permission for a calendar to be writeable (#4827)
- Introduce 'insert' permission which allows the creation of new events but no subsequent editing
- Replace 'readonly' with '!writeable' properties for consistency reasons
2015-03-11 12:22:01 +01:00
Thomas Bruederli
e8c387ef0d Bump versions and copyright year 2015-03-10 15:38:45 +01:00
Thomas Bruederli
76f50f2d2b Code cleanup: define filters for calendar listing as bitmask instead of individual arguments 2015-03-10 15:23:52 +01:00
Thomas Bruederli
60205136ee Code cleanup: get recurrence instance identifiers from utility functions 2015-03-10 14:30:50 +01:00
Thomas Bruederli
10192386dd Send cancellations of this-and-future events as iTip REPLY on master event with updated recurrence rule (#4743) 2015-03-10 13:38:53 +01:00
Thomas Bruederli
03dd4b60b3 Exclude cancelled events from count query on invitations calendar 2015-03-03 15:57:49 +01:00
Thomas Bruederli
09f979a248 Get exception on first occurrence if exists 2015-03-02 10:56:43 +01:00
Thomas Bruederli
4d2695f864 Bring database driver up to speed with recurring events and iTip invitations 2015-03-01 18:54:59 +01:00
Daniel Hoffend
d91d6f98a7 fixed wrong rc->user call (php fatal error) 2015-02-28 21:25:30 +01:00
Thomas Bruederli
94260b2aeb Refactor identification of recurring event instances (#4722):
- All instances of a recurring series have -YmdTHis appended to their ID
- In 'all' savemode, the master event identified by UID is loaded and updated
- kolab_driver::update_event() returns the UID of the master event in 'all' mode.
  This is then used to send iTip messages for the entire series
2015-02-27 17:55:37 +01:00
Thomas Bruederli
d4f819bf94 Fix deletion of single event occurrences (#4722) 2015-02-26 16:25:51 +01:00
Thomas Bruederli
c19bd98233 Fix attachment retrieval with direct instance identifiers (#4722) 2015-02-26 15:24:22 +01:00
Thomas Bruederli
899646afd8 Handle single event occurrences with the same UID (#4722) 2015-02-26 15:05:55 +01:00
Thomas Bruederli
c1b6803ae2 Don't call private methods from an anonymous function. Context is not preserved in PHP 5.3 (#4702) 2015-02-24 17:36:04 +01:00
Thomas Bruederli
a837feb76e Fix loading attachments for events listed in virtual calendars (#4400) 2015-02-24 14:17:53 +01:00
Thomas Bruederli
928e4131c4 Small cleanup of internal attachment property forwarding 2015-02-20 11:54:33 +01:00
Thomas Bruederli
515a7d9ef6 Small fixes to recurring event invitations (#4387) 2015-02-20 09:25:24 +01:00
Thomas Bruederli
02ef2e6050 Split recurring event into a new series when modifying with this-and-future option (#4386); optimize copying of attachments into new event 2015-02-20 00:11:40 +01:00
Thomas Bruederli
5e176baa08 Pass a list of updated attendess to the backend driver on RSVP reply from calendar view 2015-02-19 18:09:12 +01:00
Thomas Bruederli
95ed84c932 Copy the master's sequence to a new exception 2015-02-19 15:13:41 +01:00
Thomas Bruederli
b47b13a35e Dynamically update attendees on exceptions in 'all' and 'future' save mode 2015-02-18 11:30:16 +01:00
Thomas Bruederli
c7df74d5d0 Fix updating attendees (do not accidentally set exceptions to thisandfuture) 2015-02-18 10:20:00 +01:00
Thomas Bruederli
f7e7df62a2 Apply date offset from exceptions to recurring occurrences (#4386) 2015-02-17 15:49:14 +01:00
Thomas Bruederli
f78af8b09f Fix ical export after last commit 2015-02-17 13:10:37 +01:00
Thomas Bruederli
8a90069071 - Support exceptions and iTip messages with thisansfuture range
- Store two exceptions for the same occurence if necessary (with differing range)
- Update attendee status from iTip REPLY to all exceptions stored for the event
- Correctly handle exceptions on the first instance (main event)
2015-02-17 11:36:01 +01:00
Thomas Bruederli
aaaa9c5818 Take differing parstat values in recurrence exceptions into account when querying for pending/declined/regular events:
- Colelct partstat tags from recurrence exceptions when caching
- Querying for 'tags != x-partstat:<email>:needs-action' may miss some valid records
- Do post-filtering on all events, including recurring instances
2015-02-16 11:00:26 +01:00
Thomas Bruederli
8a74dc2d28 Don't copy recurrence_date to future occurrences 2015-02-15 19:09:10 +01:00
Thomas Bruederli
108fae9dd0 Correctly save 'this-and-future' replies; remove some internal properties before saving (to cache) 2015-02-15 18:27:38 +01:00
Thomas Bruederli
d564e23aa3 Use the right list of properties relevenat for scheduling (follow-up of commit 12591358). Static vars don't work here as intended 2015-02-15 17:10:22 +01:00
Thomas Bruederli
12591358e6 Consider a change in recurrence rule significant for rescheduling (#4366) 2015-02-15 16:33:39 +01:00
Thomas Bruederli
f09948eefe Disable recurrence and attachments forms when editing a single recurrence instance. These properties cannot be stored in recurrence exceptions 2015-02-15 15:12:08 +01:00
Thomas Bruederli
78622133a9 Reliably identify recurrence instances throughout the application to support invitations of recurring events (#4387) 2015-02-15 14:32:31 +01:00
Thomas Bruederli
bef20a0e8d Reset attendee partstat when event is rescheduled by the organizer (#4360) 2015-02-12 12:08:17 +01:00
Thomas Bruederli
ad55fc706d Fix handling of Recurrence-ID properties for recurrence exceptions to comply with RFC 5545 (#4385) 2015-02-12 10:08:22 +01:00
Thomas Bruederli
754a4d51bf Improve search in calendar: consider recurrence exceptions for indexing and matching (#4279); ignore order of search terms (boolean and matching) 2015-02-05 19:37:13 +01:00
Thomas Bruederli
8dba73549d Check new validity flag 2015-02-03 13:16:24 +01:00
Thomas Bruederli
b4bcf723e5 Display recurrence information from iTip invitations (#4446) 2015-02-02 13:12:56 +01:00
Thomas Bruederli
9d3a665d9c Modify calendar UI to properly handle updates on recurring events with attandees (#4318)
Since the Kolab stack doesn't yet fully support invitations for recurring events,
the calendar client prevents the user from modifying single recurrence instances
if attandees are involved: options to update the "current" or "future" items
are disabled and deleting a single event will update the main event and notify
all attendees.
2015-01-28 17:46:03 +01:00
Thomas Bruederli
362fcf7a4f Fix saving recurring event as new (#4299) 2015-01-27 18:13:08 +01:00
Thomas Bruederli
59b64ae7cd Visually emphasize pending/declined events from other user's calendars 2015-01-21 17:05:16 +01:00