From 7e42d3207d75a6f0c46ab3926ac9423f1455e6f8 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Wed, 1 Jun 2011 18:44:24 +0200 Subject: [PATCH] Keep recurrence exceptions when updating an event --- plugins/calendar/calendar.js | 2 +- plugins/calendar/drivers/database/database_driver.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/calendar/calendar.js b/plugins/calendar/calendar.js index 8324ea32..1386a9d4 100644 --- a/plugins/calendar/calendar.js +++ b/plugins/calendar/calendar.js @@ -681,7 +681,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { if (event.location) { element.find('div.fc-event-title').after('
@ ' + Q(event.location) + '
'); } - if (event.recurrence_id) + if (event.recurrence) element.find('div.fc-event-time').append(''); if (event.alarms) element.find('div.fc-event-time').append(''); diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php index e86da7d2..350304e4 100644 --- a/plugins/calendar/drivers/database/database_driver.php +++ b/plugins/calendar/drivers/database/database_driver.php @@ -191,6 +191,10 @@ class database_driver extends calendar_driver if ($old['recurrence'] || $old['recurrence_id']) { $master = $old['recurrence_id'] ? $this->get_event($old['recurrence_id']) : $old; + // keep saved exceptions (not submitted by the client) + if ($old['recurrence']['EXDATE']) + $event['recurrence']['EXDATE'] = $old['recurrence']['EXDATE']; + switch ($event['savemode']) { case 'new': $event['uid'] = $this->cal->generate_uid();