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
60205136ee
Code cleanup: get recurrence instance identifiers from utility functions
2015-03-10 14:30:50 +01:00
Thomas Bruederli
09f979a248
Get exception on first occurrence if exists
2015-03-02 10:56:43 +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
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
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
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
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
59b64ae7cd
Visually emphasize pending/declined events from other user's calendars
2015-01-21 17:05:16 +01:00
Thomas Bruederli
d6789046c6
Don't suppress pending/declined events from other user's calendars ( #4272 )
2015-01-21 16:01:12 +01:00
Thomas Bruederli
b02e2c3b8f
- Store relation to message when creating event from email ( #4161 )
...
- Move common functions to libcalendaring
- Assign dialog button classes directly
2015-01-14 09:27:48 +01:00
Aleksander Machniak
6a7488f731
Performance: get_identity() -> list_emails(true)
2014-11-27 06:33:05 -05:00
Aleksander Machniak
ac4f6e7562
Avoid unused variables (also fixed some bugs) found in static code analysis
2014-11-21 10:03:18 +01:00
Thomas Bruederli
0ab0b797b8
Display count 'bubble' for open pending invitations ( #3268 )
2014-10-14 20:23:52 +02:00
Thomas Bruederli
b278db0ec3
Pre-select confidential event/tasks folder for iTip invitations marked as confidential ( #3451 )
...
+ display privacy classification of iTip attachments in mail invitation view.
2014-09-23 12:27:57 +02:00
Thomas Bruederli
e48f0dbf15
Render event dialog *after* reading the comment text field; don't overwrite initial invitation comments
2014-08-01 10:28:05 +02:00
Thomas Bruederli
887ec67df8
Fix attachment saving and displaying
2014-07-31 14:53:56 +02:00
Thomas Bruederli
a68982b028
Add UI elements to display the history of a calendar event with data from the Bonnie API ( #3093 , #3094 ) + new option to download and send single events
2014-07-29 15:33:35 +02:00
Thomas Bruederli
7affe524f1
List virtual calendars showing pending/declined inivtations ( #1796 )
2014-07-08 12:38:52 +02:00
Thomas Bruederli
269f8e2ff4
Use public property instead of setter method to improve compatibility
2014-05-27 19:52:03 +02:00
Thomas Bruederli
95491f0886
Don't write session data when fetching events/tasks
2014-05-22 19:00:49 +02:00
Thomas Bruederli
709bd16016
Minor bugfixes and visual enhancements for new folder navigation
2014-05-21 10:50:36 +02:00
Thomas Bruederli
7c07ad1d42
Display user's email address as hover title
2014-05-20 09:50:41 +02:00
Thomas Bruederli
857078428b
Toggle IMAP subscriptions directly from the calendars/folders list ( #3042 )
2014-05-15 15:53:35 +02:00
Thomas Bruederli
510089523e
Refactored kolab_storage_folder classes and consolidated some functions
2014-05-15 13:15:58 +02:00
Thomas Bruederli
715b2b790a
Fix listing of other user's calendars and sub-folders
2014-05-15 11:57:54 +02:00
Thomas Bruederli
701c3391fe
Search in LDAP and collect accessible folders ( #3041 )
...
- Add LDAP user search capabilities to kolab_storage class (using kolab_auth plugin classes)
- Introduce virtual 'user' folder objects and add methods to list them
- New 'user calendar' class in calendar (kolab driver)
- Render folder search results as hierarchical list
2014-05-14 20:37:06 +02:00
Thomas Bruederli
008c5db5d9
Implement searching for unsubscribed IMAP folders and temporary/session subscriptions
2014-05-13 17:09:53 +02:00
Thomas Bruederli
2123ea7d97
Add property for event status; specially annotate CANCELLED events in the UI
2014-04-09 13:54:04 +02:00
Thomas Bruederli
54cc4aac74
Merge branch 'dev/calendar-resources'
...
Add resource display and booking features to master
2014-03-19 18:49:07 +01:00
Thomas Bruederli
621582307f
Clean-up save data when recurrence was removed from event
2014-03-17 14:28:25 +01:00
Thomas Bruederli
9375eadbe2
Add full support for arbitrary recurrence dates (RDATE) to the calendar UI
2014-03-17 12:40:21 +01:00
Thomas Bruederli
f0dd07fa28
Add resource searching/booking capabilities to the calendar module
2014-03-07 16:15:25 +01:00
Thomas Bruederli
0ba3e8382d
Keep RDATE values when updating an event (the client doesn't submit these values back)
2014-02-28 16:51:55 +01:00
Thomas Bruederli
69b7803f25
Adapt to kolab_storage_folder optimizations: don't cast resultset into array ( #2828 )
2014-02-06 17:30:40 +01:00