plugins/calendar
Thomas Brüderli
bruederli at kolabsys.com
Wed Mar 6 10:19:38 CET 2013
plugins/calendar/drivers/kolab/kolab_driver.php | 12 ++++++++++++
1 file changed, 12 insertions(+)
New commits:
commit cddf6e0494c095a0aac83dcbb7a9cee73a966c12
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Wed Mar 6 10:19:22 2013 +0100
Improve behavior when deleting recurring events (#1677)
diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index bd4a855..439bda7 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -436,6 +436,13 @@ class kolab_driver extends calendar_driver
// removing the first instance => just move to next occurence
if ($master['id'] == $event['id']) {
$recurring = reset($storage->_get_recurring_events($event, $event['start'], null, $event['id'].'-1'));
+
+ // no future instances found: delete the master event (bug #1677)
+ if (!$recurring['start']) {
+ $success = $storage->delete_event($master, $force);
+ break;
+ }
+
$master['start'] = $recurring['start'];
$master['end'] = $recurring['end'];
if ($master['recurrence']['COUNT'])
@@ -455,6 +462,11 @@ class kolab_driver extends calendar_driver
$master['recurrence']['UNTIL'] = clone $event['start'];
$master['recurrence']['UNTIL']->sub(new DateInterval('P1D'));
unset($master['recurrence']['COUNT']);
+
+ // if all future instances are deleted, remove recurrence rule entirely (bug #1677)
+ if ($master['recurrence']['UNTIL']->format('Ymd') == $master['start']->format('Ymd'))
+ $master['recurrence'] = array();
+
$success = $storage->update_event($master);
break;
}
More information about the commits
mailing list