diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php index 3e5d28ae..79df28a2 100644 --- a/plugins/calendar/drivers/kolab/kolab_calendar.php +++ b/plugins/calendar/drivers/kolab/kolab_calendar.php @@ -302,6 +302,9 @@ class kolab_calendar extends kolab_storage_folder_api } } + // avoid session race conditions that will loose temporary subscriptions + $this->cal->rc->session->nowrite(); + return $events; } diff --git a/plugins/calendar/drivers/kolab/kolab_user_calendar.php b/plugins/calendar/drivers/kolab/kolab_user_calendar.php index 1ab86790..dc9bcf76 100644 --- a/plugins/calendar/drivers/kolab/kolab_user_calendar.php +++ b/plugins/calendar/drivers/kolab/kolab_user_calendar.php @@ -222,6 +222,9 @@ class kolab_user_calendar extends kolab_calendar } } + // avoid session race conditions that will loose temporary subscriptions + $this->cal->rc->session->nowrite(); + return $events; } diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php index 50fa3714..90c3048f 100644 --- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php +++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php @@ -481,6 +481,9 @@ class tasklist_kolab_driver extends tasklist_driver } } + // avoid session race conditions that will loose temporary subscriptions + $this->plugin->rc->session->nowrite(); + return $counts; } @@ -537,6 +540,9 @@ class tasklist_kolab_driver extends tasklist_driver } } + // avoid session race conditions that will loose temporary subscriptions + $this->plugin->rc->session->nowrite(); + return $results; } diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js index 75ba3862..76d50d5e 100644 --- a/plugins/tasklist/tasklist.js +++ b/plugins/tasklist/tasklist.js @@ -164,7 +164,7 @@ function rcube_tasklist_ui(settings) var prop = { id:p.id, active:list.active?1:0 }; if (list.subscribed) prop.permanent = 1; rcmail.http_post('tasklist', { action:'subscribe', l:prop }); - setTimeout(function(){ list_tasks(); }, 500); + list_tasks(); } });