From 747800995687a3bb06514c8f4d49149110dc803a Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Wed, 2 Jun 2010 11:49:07 -0400 Subject: [PATCH] Delete recurring events also, if we are past the last recurrence. Ticket: 9071 Author: patrick.abiven@apitech.fr Signed Off By: mrubinsk@horde.org --- kronolith/lib/LoginTasks/Task/PurgeEvents.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kronolith/lib/LoginTasks/Task/PurgeEvents.php b/kronolith/lib/LoginTasks/Task/PurgeEvents.php index 43cb6c366..c009e7f64 100644 --- a/kronolith/lib/LoginTasks/Task/PurgeEvents.php +++ b/kronolith/lib/LoginTasks/Task/PurgeEvents.php @@ -44,7 +44,7 @@ class Kronolith_LoginTasks_Task_PurgeEvents extends Horde_LoginTasks_Task * from it */ $calendars = Kronolith::listCalendars(true, Horde_Perms::DELETE); - /* Start building an event object to use for the search */ + /* Start building the search */ $kronolith_driver = Kronolith::getDriver(); $query = new StdClass(); $query->start = null; @@ -58,7 +58,10 @@ class Kronolith_LoginTasks_Task_PurgeEvents extends Horde_LoginTasks_Task $count = 0; foreach ($days as $events) { foreach ($events as $event) { - if (!$event->recurs()) { + /* Delete if no recurrence, or if we are past the last occurence */ + if (!$event->recurs() || + $event->recurrence->nextRecurrence($del_time) == false) { + if ($event->calendar != $kronolith_driver->calendar) { $kronolith_driver->open($event->calendar); } -- 2.11.0