Commit graph

142 commits

Author SHA1 Message Date
Aleksander Machniak
47f7793ac0 Slim down kolab cache (drop xml column, change data format) (Bifrost#T61991) 2018-12-27 14:26:35 +00:00
Aleksander Machniak
83486eca92 Fast-mode for files 2018-12-21 09:58:40 +01:00
Aleksander Machniak
28932e4c92 Fast-mode for selecting kolab objects
... for now used only by kolab_notes plugin
2018-12-13 18:36:17 +00:00
Aleksander Machniak
2ac64d32eb Fix regression in handling contact groups 2018-12-13 16:51:34 +00:00
Aleksander Machniak
67f6ef9bbf Always fetch xml from IMAP and parse objects on select
Temporarily we still store data and xml as before, but do not use them on select.
2018-12-19 12:25:39 +01: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
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
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
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
3239eeb947 Don't use private namespace for folder uniqueid annotations (T491) 2015-07-21 04:36:34 -04:00
Aleksander Machniak
f575dace67 Fix so save() and delete() update in-memory tags cache (T133) - fixes duplicated tags issue 2015-06-24 07:08:35 -04:00
Aleksander Machniak
96ae7b7857 Fix PHP Fatal error: Call to undefined method kolab_storage_folder::raise_error() 2015-05-14 08:44:30 -04:00
Thomas Bruederli
6effb4c9c3 Support X-APPLE-FILENAME parameter for attachments; make attachment cid really unique 2015-04-28 15:48:27 +02: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
17e6662a23 Add unit/functional tests for kolab_storage_folder error checking methods 2015-02-03 22:14:06 +01:00
Thomas Bruederli
29645a4736 Fix db table reference; forward constructor argument (#4471) 2015-02-03 17:26:03 +01:00
Thomas Bruederli
5982ce8732 Add error checking/reporting facilities to kolab_storage_folder instances (#4378) 2015-02-03 13:15:56 +01:00
Thomas Bruederli
17cf1f4892 Update folder reference in cache (was accidentally removed in 038e269d) 2015-02-03 12:31:12 +01:00
Thomas Bruederli
038e269d51 Check (expected) folder type and disable access to folder contents or cache if invalid (#4378) 2015-01-29 16:48:42 +01:00
Thomas Bruederli
ae93c7b345 Create domain-aware cache identifiers for groupware folders (#3991) 2014-11-27 09:33:40 +01:00
Aleksander Machniak
ac4f6e7562 Avoid unused variables (also fixed some bugs) found in static code analysis 2014-11-21 10:03:18 +01:00
Aleksander Machniak
2a46aceb2b Use new rcube_message::get_part_body() method 2014-10-22 14:58:47 +02:00
Thomas Bruederli
a3d5f717a2 Fix moving events to another calendar/folder and reloading it (#3748) 2014-10-09 16:37:31 +02:00
Thomas Bruederli
372cf33d18 Use folder name for UID if writing to IMAP metadata fails 2014-09-25 10:09:58 +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
aada053324 Support reading attachments fully stored in XML payload instead of separate MIME parts 2014-07-18 12:00:25 +02:00
Thomas Bruederli
645d06be5e Reset cached properties when iterating folders using the same kolab_storage_folder instance 2014-06-26 09:58:48 +02:00
Thomas Bruederli
510089523e Refactored kolab_storage_folder classes and consolidated some functions 2014-05-15 13:15:58 +02:00
Thomas Bruederli
df08826c03 Improve listing of user folders: also list them if one has access to a child folder 2014-05-15 11:57:12 +02:00
Thomas Bruederli
00b1c7631b Render calendar folders as a searchable treelist widget 2014-05-12 20:47:47 +02:00
Thomas Bruederli
6b1de94b51 Fix Content-Type strings for files and notes; accept application/vnd.kolab+xml when searching for xml part 2014-03-27 19:20:22 +01:00
Thomas Bruederli
af6d366a1f Optimize access to kolab contacts using a sorted and limited query (#2828)
- Add columns for sorting in kolab_cache_contact
- Extend bin/modcache.sh script to update existing cache records
- Add setters for ORDER BY and LIMIT clauses
- Adapt the kolab_addressbook plugin to fetch contacts page-wise

ATTENTION: This changeset contains database schema changes!
Run `bin/updatedb.sh --dir plugins/libkolab/SQL --package libkolab`

Afterwards, the cached data needs to be updated. To do so, either run
  `plugins/libkolab/bin/modcache.sh update --type=contact`
or execute the following query
  DELETE FROM `kolab_folders` WHERE `type`='contact';
2014-02-10 11:46:50 +01:00
Thomas Bruederli
965a9b74b3 Fix anually recurrence end date on 32bit systems by replacing (overflowing) unix timestamps with DateTime objects (#2613) 2014-01-22 11:22:23 +01:00
Thomas Bruederli
21286f0bbb Make generated folder UIDs really unique 2013-11-21 14:34:58 +01:00
Aleksander Machniak
a25fc1a961 Implement cache object update with UPDATE query instead of DELETE + INSERT (Request #2351) 2013-11-20 10:43:17 +01:00
Thomas Bruederli
f24a1da34b Set _mailbox property when saving Kolab objects (#2474) 2013-11-04 12:08:50 +01:00
Aleksander Machniak
5f3c4106a4 Fix undefined variable in set_folder() 2013-10-31 09:06:24 +01:00
Jeroen van Meeuwen (Kolab Systems)
4065542e07 Merge branch 'dev/kolab-cache-refactoring'
Conflicts:
	plugins/libkolab/lib/kolab_storage_cache.php
2013-10-17 16:48:08 +02:00
Thomas Bruederli
6a2262f820 Make some getter methods available for others 2013-10-10 16:46:20 +02:00
Aleksander Machniak
ee30f6fb83 Fix typo in last commit 2013-10-09 10:01:42 +02:00
Aleksander Machniak
e8f2cd98a3 Fix get_objects() when called with no argument, folder type is used 2013-10-09 09:58:19 +02:00
Thomas Bruederli
6fb8c71095 Fix queries to kolab_storage that include (obsolete) 'type' 2013-10-07 19:20:45 +02:00
Thomas Bruederli
6b89e36c4e Merge remote-tracking branch 'origin/libkolab-cache-bypass' into dev/kolab-cache-refactoring 2013-10-07 17:34:17 +02:00
Aleksander Machniak
16d9509a5d Improved performance of kolab cache by bypassing Roundcube messages cache (Request #1740) 2013-10-07 09:56:06 +02:00
Thomas Bruederli
87335f387f Split kolab_cache table into folder-type specific tables and specialized kolab_storage_cache_* classes; the object type is now implicit 2013-10-04 17:14:34 +02:00
Thomas Bruederli
38f5215467 Add methods to read and set a folder's UID (migrated from iRony) 2013-10-03 12:02:19 +02:00
Aleksander Machniak
5327dfc641 Implemented unified cross-plugin HTTP_Request2 object configuration (Request #2149) 2013-09-26 14:53:52 +02:00