Add option kolab_messages_cache_bypass

This commit is contained in:
Aleksander Machniak 2013-10-07 15:05:34 +02:00
parent 16d9509a5d
commit 9d174daf9f
2 changed files with 27 additions and 10 deletions

View file

@ -24,3 +24,9 @@ $rcmail_config['kolab_custom_display_names'] = false;
// See http://pear.php.net/manual/en/package.http.http-request2.config.php
// for list of supported configuration options (array keys)
$rcmail_config['kolab_http_request'] = array();
// When kolab_cache is enabled Roundcube's messages cache will be redundant
// when working on kolab folders. Here we can:
// 2 - bypass messages/indexes cache completely
// 1 - bypass only messages, but use index cache
$rcmail_config['kolab_messages_cache_bypass'] = 0;

View file

@ -804,21 +804,32 @@ class kolab_storage_cache
return;
}
if ($this->messages_cache === null) {
static $messages_cache, $cache_bypass;
if ($messages_cache === null) {
$rcmail = rcube::get_instance();
$this->messages_cache = (bool) $rcmail->config->get('messages_cache');
$messages_cache = (bool) $rcmail->config->get('messages_cache');
$cache_bypass = (int) $rcmail->config->get('kolab_messages_cache_bypass');
}
if ($this->messages_cache) {
// we'll disable messages cache, but keep index cache
// default mode is both (MODE_INDEX | MODE_MESSAGE)
$mode = rcube_imap_cache::MODE_INDEX;
if ($messages_cache) {
switch ($cache_bypass) {
case 2:
// Disable messages cache completely
$this->imap->set_messages_caching(!$disable);
return;
if (!$disable) {
$mode |= rcube_imap_cache::MODE_MESSAGE;
case 1:
// We'll disable messages cache, but keep index cache.
// Default mode is both (MODE_INDEX | MODE_MESSAGE)
$mode = rcube_imap_cache::MODE_INDEX;
if (!$disable) {
$mode |= rcube_imap_cache::MODE_MESSAGE;
}
$this->imap->set_messages_caching(true, $mode);
}
$this->imap->set_messages_caching(true, $mode);
}
}
}