From 82d39a21f4710d7f7e78fe69e196bd025ba3e791 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 1 Sep 2011 00:16:59 +0200 Subject: [PATCH] Fix modification of recurring events --- plugins/calendar/calendar.php | 8 ++++---- plugins/calendar/drivers/kolab/kolab_calendar.php | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index ba446b64..8a714c33 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -564,17 +564,17 @@ class calendar extends rcube_plugin $this->prepare_event($event, $action); if ($success = $this->driver->edit_event($event)) $this->cleanup_event($event); - $reload = $success && $event['recurrence'] ? 2 : 1; + $reload = $success && ($event['recurrence'] || $event['savemode']) ? 2 : 1; break; case "resize": $success = $this->driver->resize_event($event); - $reload = ($event['savemode'] == 'all' || $event['savemode'] == 'future') ? 2 : 1; + $reload = $event['savemode'] ? 2 : 1; break; case "move": $success = $this->driver->move_event($event); - $reload = $success && ($event['savemode'] == 'all' || $event['savemode'] == 'future') ? 2 : 1; + $reload = $success && $event['savemode'] ? 2 : 1; break; case "remove": @@ -591,7 +591,7 @@ class calendar extends rcube_plugin } $success = $this->driver->remove_event($event, $undo_time < 1); - $reload = (!$success || $event['savemode'] == 'all' || $event['savemode'] == 'future') ? 2 : 1; + $reload = (!$success || $event['savemode']) ? 2 : 1; if ($undo_time > 0 && $success) { $_SESSION['calendar_event_undo'] = array('ts' => time(), 'data' => $event); diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php index 15647d20..a5150028 100644 --- a/plugins/calendar/drivers/kolab/kolab_calendar.php +++ b/plugins/calendar/drivers/kolab/kolab_calendar.php @@ -300,6 +300,7 @@ class kolab_calendar { $updated = false; $old = $this->storage->getObject($event['id']); + $old['recurrence'] = ''; # clear old field, could have been removed in new, too $object = array_merge($old, $this->_from_rcube_event($event)); $saved = $this->storage->save($object, $event['id']);