2 commits - plugins/calendar

Thomas Brüderli bruederli at kolabsys.com
Wed Apr 17 09:19:38 CEST 2013


 plugins/calendar/calendar_ui.js                   |    2 +-
 plugins/calendar/drivers/kolab/kolab_calendar.php |   14 ++++++++------
 plugins/calendar/drivers/kolab/kolab_driver.php   |    3 +++
 3 files changed, 12 insertions(+), 7 deletions(-)

New commits:
commit 5c84fd55aa11d10471fbfc293265af03d67bb051
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Wed Apr 17 09:19:26 2013 +0200

    Little code cleanup

diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php
index 98041c8..590bb55 100644
--- a/plugins/calendar/drivers/kolab/kolab_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_calendar.php
@@ -580,10 +580,8 @@ class kolab_calendar
    */
   private function _from_rcube_event($event, $old = array())
   {
-    $object = &$event;
-
     // in kolab_storage attachments are indexed by content-id
-    $object['_attachments'] = array();
+    $event['_attachments'] = array();
     if (is_array($event['attachments'])) {
       foreach ($event['attachments'] as $idx => $attachment) {
         $key = null;
@@ -600,15 +598,15 @@ class kolab_calendar
 
         // flagged for deletion => set to false
         if ($attachment['_deleted']) {
-          $object['_attachments'][$key] = false;
+          $event['_attachments'][$key] = false;
         }
         // replace existing entry
         else if ($key) {
-          $object['_attachments'][$key] = $attachment;
+          $event['_attachments'][$key] = $attachment;
         }
         // append as new attachment
         else {
-          $object['_attachments'][] = $attachment;
+          $event['_attachments'][] = $attachment;
         }
       }
 
@@ -625,6 +623,9 @@ class kolab_calendar
 
     $event['_owner'] = $identity['email'];
 
+    // remove some internal properties which should not be saved
+    unset($event['_savemode'], $event['_fromcalendar'], $event['_identity']);
+
     // copy meta data (starting with _) from old object
     foreach ((array)$old as $key => $val) {
       if (!isset($event[$key]) && $key[0] == '_')
diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 12d60c2..6b980cd 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -610,6 +610,9 @@ class kolab_driver extends calendar_driver
         $event['recurrence'] = array();
         $event['thisandfuture'] = $savemode == 'future';
 
+        // remove some internal properties which should not be saved
+        unset($event['_savemode'], $event['_fromcalendar'], $event['_identity']);
+
         // save properties to a recurrence exception instance
         if ($old['recurrence_id']) {
             $i = $old['_instance'] - 1;


commit c077ed555f7326823580cf7955c3f557c37ecb7b
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Wed Apr 17 09:15:34 2013 +0200

    Set savemode to 'current' for recurrence exceptions (#1725)

diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js
index 4099776..10d6521 100644
--- a/plugins/calendar/calendar_ui.js
+++ b/plugins/calendar/calendar_ui.js
@@ -523,7 +523,7 @@ function rcube_calendar_ui(settings)
       
       // show warning if editing a recurring event
       if (event.id && event.recurrence) {
-        var sel = event.thisandfuture ? 'future' : 'all';
+        var sel = event.thisandfuture ? 'future' : (event.isexception ? 'current' : 'all');
         $('#edit-recurring-warning').show();
         $('input.edit-recurring-savemode[value="'+sel+'"]').prop('checked', true);
       }
diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php
index 764f619..98041c8 100644
--- a/plugins/calendar/drivers/kolab/kolab_calendar.php
+++ b/plugins/calendar/drivers/kolab/kolab_calendar.php
@@ -434,6 +434,7 @@ class kolab_calendar
         $rec_event['recurrence_id'] = $event['uid'];
         $rec_event['recurrence'] = $recurrence_rule;
         $rec_event['_instance'] = $i;
+        $rec_event['isexception'] = 1;
         $events[] = $rec_event;
 
         // found the specifically requested instance, exiting...





More information about the commits mailing list