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 committed by ralf
parent 0ab30a1b3a
commit e9b6553ab4

View File

@ -690,10 +690,10 @@ class calendar_ui
if(!$event['recur_type'] || $recurrence_date)
{
$this->to_client($event);
$response->generic('data', array('uid' => 'calendar::'.$event['row_id'], 'data' => $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 = [];
@ -711,6 +711,8 @@ class calendar_ui
}
while($old_rrule->valid() && $occurrence <= $this_month);
}
if($event['recur_type'])
{
$rrule = calendar_rrule::event2rrule($event, true);
$rrule->rewind();
do
@ -722,6 +724,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)