Add possibility to bypass indexes cache only

This commit is contained in:
Aleksander Machniak 2018-12-13 16:27:06 +00:00
parent 67f6ef9bbf
commit be749b2795
2 changed files with 8 additions and 6 deletions

View file

@ -35,7 +35,8 @@ $config['kolab_http_request'] = array();
// When kolab_cache is enabled Roundcube's messages cache will be redundant // When kolab_cache is enabled Roundcube's messages cache will be redundant
// when working on kolab folders. Here we can: // when working on kolab folders. Here we can:
// 2 - bypass messages/indexes cache completely // 3 - bypass only indexes, but use messages cache
// 2 - bypass both messages and indexes cache
// 1 - bypass only messages, but use index cache // 1 - bypass only messages, but use index cache
$config['kolab_messages_cache_bypass'] = 0; $config['kolab_messages_cache_bypass'] = 0;

View file

@ -1155,7 +1155,7 @@ class kolab_storage_cache
} }
/** /**
* Set Roundcube storage options and bypass messages cache. * Set Roundcube storage options and bypass messages/indexes cache.
* *
* We use skip_deleted and threading settings specific to Kolab, * We use skip_deleted and threading settings specific to Kolab,
* we have to change these global settings only temporarily. * we have to change these global settings only temporarily.
@ -1210,17 +1210,18 @@ class kolab_storage_cache
switch ($cache_bypass) { switch ($cache_bypass) {
case 2: case 2:
// Disable messages cache completely // Disable messages and index cache completely
$this->imap->set_messages_caching(!$force); $this->imap->set_messages_caching(!$force);
break; break;
case 3:
case 1: case 1:
// We'll disable messages cache, but keep index cache. // We'll disable messages cache, but keep index cache (1) or vice-versa (3)
// Default mode is both (MODE_INDEX | MODE_MESSAGE) // Default mode is both (MODE_INDEX | MODE_MESSAGE)
$mode = rcube_imap_cache::MODE_INDEX; $mode = $cache_bypass == 3 ? rcube_imap_cache::MODE_MESSAGE : rcube_imap_cache::MODE_INDEX;
if (!$force) { if (!$force) {
$mode |= rcube_imap_cache::MODE_MESSAGE; $mode |= $cache_bypass == 3 ? rcube_imap_cache::MODE_INDEX : rcube_imap_cache::MODE_MESSAGE;
} }
$this->imap->set_messages_caching(true, $mode); $this->imap->set_messages_caching(true, $mode);