Branch 'roundcubemail-plugins-kolab-3.1' - plugins/calendar

Thomas Brüderli bruederli at kolabsys.com
Tue Nov 12 09:03:58 CET 2013


 plugins/calendar/calendar.php   |   33 +++++++++++++++------------------
 plugins/calendar/calendar_ui.js |    4 ++++
 2 files changed, 19 insertions(+), 18 deletions(-)

New commits:
commit dca41b764c30c771687d4aca0139e47f2454f5d5
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Tue Nov 12 09:02:41 2013 +0100

    Fix calendar refreshing (#2516)

diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php
index f08798e..f71109e 100644
--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -928,27 +928,24 @@ class calendar extends rcube_plugin
   public function refresh($attr)
   {
      // refresh the entire calendar every 10th time to also sync deleted events
-    $refetch =  rand(0,10) == 10;
+    if (rand(0,10) == 10) {
+        $this->rc->output->command('plugin.refresh_calendar', array('refetch' => true));
+        return;
+    }
 
     foreach ($this->driver->list_calendars(true) as $cal) {
-      if ($refetch) {
-        $this->rc->output->command('plugin.refresh_calendar',
-          array('source' => $cal['id'], 'refetch' => true));
-      }
-      else {
-        $events = $this->driver->load_events(
-          get_input_value('start', RCUBE_INPUT_GET),
-          get_input_value('end', RCUBE_INPUT_GET),
-          get_input_value('q', RCUBE_INPUT_GET),
-          $cal['id'],
-          1,
-          $attr['last']
-        );
+      $events = $this->driver->load_events(
+        get_input_value('start', RCUBE_INPUT_GET),
+        get_input_value('end', RCUBE_INPUT_GET),
+        get_input_value('q', RCUBE_INPUT_GET),
+        $cal['id'],
+        1,
+        $attr['last']
+      );
 
-        foreach ($events as $event) {
-          $this->rc->output->command('plugin.refresh_calendar',
-            array('source' => $cal['id'], 'update' => $this->_client_event($event)));
-        }
+      foreach ($events as $event) {
+        $this->rc->output->command('plugin.refresh_calendar',
+          array('source' => $cal['id'], 'update' => $this->_client_event($event)));
       }
     }
   }
diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js
index 3ef1cb1..7d53e99 100644
--- a/plugins/calendar/calendar_ui.js
+++ b/plugins/calendar/calendar_ui.js
@@ -2103,6 +2103,10 @@ function rcube_calendar_ui(settings)
         if (me.fisheye_date)
           me.fisheye_view(me.fisheye_date);
       }
+      // refetch all calendars
+      else if (p.refetch) {
+        fc.fullCalendar('refetchEvents');
+      }
 
       // remove temp events
       fc.fullCalendar('removeEvents', function(e){ return e.temp; });




More information about the commits mailing list