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