Commit graph

514 commits

Author SHA1 Message Date
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
Aleksander Machniak
446cd0dfe1 Performance: Limit number of SQL queries needed for "object relations update" operation 2016-02-13 13:09:59 +01:00
Aleksander Machniak
52053f355a Performance: Optimize kolab_storage_folder::get_object() to use one sql query instead of two
Before the change to get an object by UID we first resolve UID to IMAP-UID
and then fetch the object data by IMAP-UID - two select queries. Now we
directly select the data by UID.
2016-02-13 11:33:01 +01:00
Aleksander Machniak
bd8166b81a Fix regression in last optimisations 2016-02-13 09:16:38 +01:00
Aleksander Machniak
2172f4340c Performance: Consolidate metadata requests (#3989)
This changes number of cache requests from 4 to 2 for each groupware folder.
2016-02-12 13:45:58 +01:00
Aleksander Machniak
e7eed4dff1 Make Content-Type check case-insensitive (#5109) 2016-02-11 15:37:21 +01:00
Aleksander Machniak
aab41cfa16 Fix bug where event occurrence with no attendees inherited attendees of the event (#5300)
The object was created/updated corretly, the bug was in exception properties resolving.
2016-02-11 11:58:33 +01:00
Aleksander Machniak
a0aff58604 Fix bug where some database column length limit could be exceeded (#5291)
Which cased e.g. sql errors when creating a contact group with name > 255 characters.
2016-02-09 12:11:41 +01:00
Thomas Bruederli
fe21650430 Make sure the _instance property is stored with the recurrence exception (#5277) 2015-11-20 12:18:27 +01:00
Aleksander Machniak
21130bf9e6 Properly reset $recurrence_id in a loop 2015-09-29 12:24:45 +02:00
Aleksander Machniak
d2f74ee9fa Performance: Skip SELECT query if we already know it will return no records (from previous SELECT COUNT(*)) 2015-08-27 14:13:36 +02:00