Commit graph

524 commits

Author SHA1 Message Date
Aleksander Machniak
aef7452bd3 kolab_date_recurrence improvements with some tests 2019-03-15 11:16:51 +00:00
Aleksander Machniak
a71caa9a51 Calendar: Fix regression where changing attendee status for an existing event wasn't working
Also fixed bug where allday event accourrence could have been moved
one day back when changing the attendee status (action=rsvp).
2019-03-14 15:08:53 +00:00
Aleksander Machniak
b1640e16f4 Fix misleading error message on IMAP errors 2019-02-18 12:04:08 +01:00
Aleksander Machniak
83ac298cd7 Fix handling EXDATEs in different timezone than the event timezone (Bifrost#T154553) 2018-12-13 12:36:20 +00:00
Aleksander Machniak
ce097cdbef Fix support for imap hierarchy delimiter different than a slash char (Bifrost#T71208) 2018-05-03 10:32:51 +00:00
Aleksander Machniak
a444b5b801 Unify/de-duplicate code for folder form handling 2018-03-28 15:36:08 +00:00
Aleksander Machniak
6bba054b0e Merge branch 'master' into dev/elastic 2018-03-22 19:31:41 +00:00
Aleksander Machniak
fa9d09939c More attachment handling code de-duplication 2018-03-19 18:08:56 +00:00
Aleksander Machniak
5b57dd9449 De-duplicate attachments handling code, move it to libkolab plugin 2018-03-19 13:27:55 +01:00
Aleksander Machniak
700a64b40d Fix finding first occurrence for all-day events (Bifrost#T82770)
Bug caused e.g. annual all-day events not displayed on the first occurrence (start date)
2018-03-16 15:16:04 +00:00
Aleksander Machniak
8673bfd15f Fix handling reminder trigger definition
... and ignore duplicate reminders
2017-12-04 11:52:54 +01:00
Jeroen van Meeuwen (Kolab Systems)
ab9f33fbc4 Avoid PHP 7 compatibility warnings 2017-11-28 10:39:31 +01:00
Aleksander Machniak
d331f73d01 Fix performance issue in custom_displayname() when imap_cache is disabled (Bifrost#T51291) 2017-10-17 09:05:29 +02:00
Aleksander Machniak
02d3759724 Workaround libkolabxml error on Etc/UTC timezone (Bifrost#T43830) 2017-10-06 08:32:58 +02:00
Aleksander Machniak
a1cd95152c Align event start date with the first occurrence
Summary:
When a recurring event start date does not match a recurrence pattern
(e.g. an event recurring on Fridays is created on Thursday),
we move the start date to the date of the first occurrence.
There's also a checkbox to keep the old behavior where the
start date was not modified.

Reviewers: vanmeeuwen

Reviewed By: vanmeeuwen

Differential Revision: https://git.kolab.org/D536
2017-09-12 13:53:34 +02:00
Aleksander Machniak
011fa7949d Add support for prefix search in kolab cache 2017-07-19 12:54:47 +02:00
Aleksander Machniak
17d18bebb1 Skip redundant folder type lookup on folders list 2017-06-02 15:15:00 +02:00
Aleksander Machniak
007fc47bfc Fix saving BYPOS recurrence with a number preceding a day name (Bifrost#T29113)
A regression caused by T1582: Support BYSETPOS recurrence on event import
2017-04-06 13:38:05 +02:00
Aleksander Machniak
24143cc17e Fix redundant updates of private $tags property
This could cause invalid result of get_tags() method after save_tags() use.
2017-03-31 12:44:57 +02:00
Aleksander Machniak
45ce87f545 Remove duplicates on cache synchronization.
https://issues.kolab.org/show_bug.cgi?id=4067 and (Bifrost#TT20881)

It happens that IMAP folder may contain many objects with the same UID.
The precise reason for this is unknown, but it can be e.g. a faulty
client or an error between "create a new object instance" and "remove the
old one". It causes various issues when editing such objects.

With the change we assume that the most recent object (with max. IMAP UID)
is the one that should be used and all the older instances will be removed
automatically.
2017-02-16 12:49:11 +01:00
Aleksander Machniak
d6ea9104ba Fix "unknown" dates in event dialog (Bifrost#T21544) 2017-01-20 10:38:21 +01:00
Aleksander Machniak
8edb261a0b T1582: Support BYSETPOS recurrence on event import
As libkolabxml does not support it at all it is a partial support.
We support most common cases of monthly recurrence with BYDAY specification,
e.g. "last/first weekday in a month", by converting BYSETPOS to BYDAY.
2016-12-27 11:38:21 +01:00
Aleksander Machniak
c4f4f52aa0 T1841: Support non-all-day exceptions to all-day events and vice-versa 2016-12-30 05:33:02 -05:00
Aleksander Machniak
bbe88f6637 Prevent from libkolabxml errors on Etc/GMT timezone (Bifrost#T15706) 2016-12-27 04:13:56 -05:00
Aleksander Machniak
1e68b24b70 Merge branch 'arcpatch-D203' 2016-10-18 09:05:12 +02:00
Aleksander Machniak
cdfb979b22 T1268: Fix bug where forever recurring events could not be displayed
Summary:
Actually it sets the internal end time interval to 100 years for all kind
of events. Before it was 100 for yearly events, but only 10 for weekly.

Fixes T1268.

Reviewers: #roundcube_kolab_plugins_developers

Maniphest Tasks: T1268

Differential Revision: https://git.kolab.org/D203
2016-10-18 09:04:54 +02:00
Aleksander Machniak
d42db71fa4 T1479: Fix delegation context selection on delegator's invitation handling 2016-09-07 09:51:08 -04:00
Aleksander Machniak
87b18454ae Workaround libkolabxml bug where internally set 'created' date is not valid (UTC) 2016-09-02 10:26:59 +02:00
Aleksander Machniak
2056b92c39 T1382: Fix storing COMPLETED/IN-PROCESS in partstat field 2016-07-27 09:13:13 -04:00
Aleksander Machniak
bb1dfa9c10 Fix PHP Fatal error: Call to a member function get_hierarchy_delimiter() on a non-object (T1252) 2016-05-04 10:40:49 +02:00
Aleksander Machniak
9d883ed07d Properly set skip_deleted and threading on Kolab storage IMAP operations (T1145)
Summary:
Fixes race-conditions between Kolab folders and Roundcube core
where skip_deleted/threading could be set for operations outside
of Kolab plugins, causing e.g. inability to see \Deleted messages.

Fixes T1145.

Reviewers: #roundcube_kolab_plugins_developers, vanmeeuwen

Reviewed By: #roundcube_kolab_plugins_developers, vanmeeuwen

Maniphest Tasks: T1145

Differential Revision: https://git.kolab.org/D112
2016-04-14 11:42:00 +02:00
Aleksander Machniak
9fb5775d82 Fix "PHP Fatal error: Call to undefined method kolab_format_task::to_libcal()" (T1176) 2016-04-07 10:47:45 +02:00
Aleksander Machniak
3e1346dc6c CS fixes 2016-04-07 10:46:24 +02:00
Aleksander Machniak
a673d3c8f5 Fix indentation 2016-03-23 11:44:46 +01:00
Aleksander Machniak
fc93828311 Fix merging attachments list on event/task update from iTip (#5342)
Reviewers: #roundcube_kolab_plugins_developers, vanmeeuwen

Reviewed By: #roundcube_kolab_plugins_developers, vanmeeuwen

Subscribers: vanmeeuwen

Projects: #roundcube_kolab_plugins

Differential Revision: https://git.kolab.org/D96
2016-03-17 16:38:36 +01:00
Aleksander Machniak
2afb5714c5 Fix duplicated events in other users calendar if its subfolders are active (#5340)
Differential Revision: https://git.kolab.org/D94
2016-03-11 11:41:18 +01:00
Aleksander Machniak
7634368e89 Prevent from fatal errors on events without end date (#5307) 2016-03-10 16:43:10 +01:00
Aleksander Machniak
9d5dd5bf16 Unified get_objects/count/get_uids/select methods argument handling (#5209) 2016-03-09 11:46:26 +01:00
Aleksander Machniak
9daf32495a Fix regression in get_object() (T1098)
Also remove the second argument as it was useless.
2016-03-07 17:54:01 +01:00
Aleksander Machniak
6c25221b95 Performance: Make objects moving faster (less SQL and less IMAP operations) using COPYUID 2016-02-24 13:57:58 +01:00
Aleksander Machniak
9ac901b90a Performance: SKip some SQL queries on "empty" tasklist refresh 2016-02-24 12:54:08 +01:00
Aleksander Machniak
46f962833f Performance: Better displayname annotation handling 2016-02-23 13:36:22 +01:00
Aleksander Machniak
644df15bad Performance: Skip one SELECT query when deleting relations 2016-02-22 15:37:12 +01:00
Aleksander Machniak
2a9948b827 Performance: Skip some redundant SELECT queries on event update 2016-02-22 15:19:58 +01:00
Aleksander Machniak
b6a9141764 Performance: Don't initialize configuration folders until they are needed 2016-02-22 12:17:22 +01:00
Aleksander Machniak
a7e3a938a7 Unify mail-relations handling across plugins 2016-02-21 19:41:49 +01:00
Aleksander Machniak
d96689620f Performance: Get event-to-mail relations once per events list, instead of doing SELECT for every event (including recurrences) 2016-02-21 19:09:04 +01:00
Aleksander Machniak
922d8de6d0 Performance: Skip another few cache selects 2016-02-21 18:17:42 +01:00
Aleksander Machniak
9972823957 Performance: Optimize get_message_relations() to use one query per-folder less
Fix bug where in kolab_storage::select() could not initialize/reset folder cache properly
2016-02-13 17:57:29 +01:00
Aleksander Machniak
11ce37ef17 Performance: Limit number of SQL queries when "attaching" relations/tags to list of tasks/notes (#3969) 2016-02-13 17:35:29 +01:00