Branch 'dev/recurring-invitations' - 2 commits - plugins/calendar plugins/libcalendaring plugins/libkolab

Thomas Brüderli bruederli at kolabsys.com
Thu Feb 19 15:13:49 CET 2015


 plugins/calendar/drivers/kolab/kolab_driver.php    |    3 +++
 plugins/libcalendaring/lib/libcalendaring_itip.php |    2 +-
 plugins/libcalendaring/libcalendaring.php          |    2 +-
 plugins/libkolab/lib/kolab_format_event.php        |    3 +++
 4 files changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 95ed84c9326f55e85f9e8513cd8284e05ec42e17
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Thu Feb 19 15:13:41 2015 +0100

    Copy the master's sequence to a new exception

diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 7b4c639..5e6f3b3 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -977,6 +977,9 @@ class kolab_driver extends calendar_driver
         if ($reschedule) {
           $event['sequence'] = max($old['sequence'], $master['sequence']) + 1;
         }
+        else if (!isset($event['sequence'])) {
+          $event['sequence'] = $master['sequence'];
+        }
 
         // save properties to a recurrence exception instance
         if ($old['_instance'] && is_array($master['recurrence']['EXCEPTIONS'])) {


commit ac2bd4700f55cdd48337f55240bc37066d309320
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Thu Feb 19 15:13:13 2015 +0100

    Store recurrence-id for single (non-recurring) events and use for iTip replies

diff --git a/plugins/libcalendaring/lib/libcalendaring_itip.php b/plugins/libcalendaring/lib/libcalendaring_itip.php
index 8038add..b4a7aee 100644
--- a/plugins/libcalendaring/lib/libcalendaring_itip.php
+++ b/plugins/libcalendaring/lib/libcalendaring_itip.php
@@ -364,7 +364,7 @@ class libcalendaring_itip
 
       // check if the given itip object matches the last state
       if ($existing) {
-        $latest = (isset($event['sequence']) && $existing['sequence'] == $event['sequence']) ||
+        $latest = (isset($event['sequence']) && intval($existing['sequence']) == intval($event['sequence'])) ||
                   (!isset($event['sequence']) && $existing['changed'] && $existing['changed'] >= $event['changed']);
       }
 
diff --git a/plugins/libcalendaring/libcalendaring.php b/plugins/libcalendaring/libcalendaring.php
index c203854..2d9c3cc 100644
--- a/plugins/libcalendaring/libcalendaring.php
+++ b/plugins/libcalendaring/libcalendaring.php
@@ -1411,7 +1411,7 @@ class libcalendaring extends rcube_plugin
     public static function identify_recurrence_instance(&$object)
     {
         // for savemode=all, remove recurrence instance identifiers
-        if (!empty($object['_savemode']) && $object['_savemode'] == 'all') {
+        if (!empty($object['_savemode']) && $object['_savemode'] == 'all' && $object['recurrence']) {
             unset($object['_instance'], $object['recurrence_date']);
         }
         // set instance and 'savemode' according to recurrence-id
diff --git a/plugins/libkolab/lib/kolab_format_event.php b/plugins/libkolab/lib/kolab_format_event.php
index 979b33b..0c90e85 100644
--- a/plugins/libkolab/lib/kolab_format_event.php
+++ b/plugins/libkolab/lib/kolab_format_event.php
@@ -122,6 +122,9 @@ class kolab_format_event extends kolab_format_xcal
             }
             $this->obj->setExceptions($vexceptions);
         }
+        else if ($object['recurrence_date'] && $object['recurrence_date'] instanceof DateTime) {
+            $this->obj->setRecurrenceID(self::get_datetime($object['recurrence_date'], null, $object['allday']), (bool)$object['thisandfuture']);
+        }
 
         // cache this data
         $this->data = $object;




More information about the commits mailing list