Calendar: If an event went from recurring to non-recurring, recurring events could still be displayed

This commit is contained in:
nathan 2022-11-25 09:24:04 -07:00
parent 38a82962b0
commit b129a46e3c

View File

@ -691,8 +691,8 @@ class calendar_ui
$this->to_client($event);
$response->generic('data', array('uid' => 'calendar::' . $event['row_id'], 'data' => $event));
}
// If it's recurring, try to send the next month or so
else if($event['recur_type'] )
// If it is (or was) recurring, try to send the next month or so
if($event['recur_type'] || (!$event['recur_type'] && $old_event['recur_type']))
{
$this_month = new Api\DateTime('next month');
$data = [];
@ -710,6 +710,8 @@ class calendar_ui
}
while($old_rrule->valid() && $occurrence <= $this_month);
}
if($event['recur_type'])
{
$rrule = calendar_rrule::event2rrule($event, true);
$rrule->rewind();
do
@ -721,6 +723,7 @@ class calendar_ui
$rrule->next();
}
while($rrule->valid() && $occurrence <= $this_month);
}
// Now we have to go through and send each one individually, since client side data can't handle more than one
foreach($data as $uid => $cal_data)