Calendar: If an event moves from the past to the future, send notifications according to preferences

Previously we ignored all notifications, because the event _was_ in the past.
This commit is contained in:
nathan 2021-11-24 09:23:07 -07:00
parent 86c9b97e47
commit ceb014200f

View File

@ -875,23 +875,25 @@ class calendar_boupdate extends calendar_bo
$disinvited = $msg_type == MSG_DISINVITE ? array_keys($to_notify) : array(); $disinvited = $msg_type == MSG_DISINVITE ? array_keys($to_notify) : array();
$owner = $old_event ? $old_event['owner'] : $new_event['owner']; $owner = $old_event ? $old_event['owner'] : $new_event['owner'];
if ($owner && !isset($to_notify[$owner]) && $msg_type != MSG_ALARM) if($owner && !isset($to_notify[$owner]) && $msg_type != MSG_ALARM)
{ {
$to_notify[$owner] = 'OCHAIR'; // always include the event-owner $to_notify[$owner] = 'OCHAIR'; // always include the event-owner
} }
// ignore events in the past (give a tolerance of 10 seconds for the script) // ignore events in the past (give a tolerance of 10 seconds for the script)
if($old_event && $this->date2ts($old_event['start']) < ($this->now_su - 10)) if($new_event && $this->date2ts($new_event['start']) < ($this->now_su - 10) ||
!$new_event && $old_event && $this->date2ts($old_event['start']) < ($this->now_su - 10)
)
{ {
return False; return False;
} }
// check if default timezone is set correctly to server-timezone (ical-parser messes with it!!!) // check if default timezone is set correctly to server-timezone (ical-parser messes with it!!!)
if ($GLOBALS['egw_info']['server']['server_timezone'] && ($tz = date_default_timezone_get()) != $GLOBALS['egw_info']['server']['server_timezone']) if($GLOBALS['egw_info']['server']['server_timezone'] && ($tz = date_default_timezone_get()) != $GLOBALS['egw_info']['server']['server_timezone'])
{ {
$restore_tz = $tz; $restore_tz = $tz;
date_default_timezone_set($GLOBALS['egw_info']['server']['server_timezone']); date_default_timezone_set($GLOBALS['egw_info']['server']['server_timezone']);
} }
$temp_user = $GLOBALS['egw_info']['user']; // save user-date of the enviroment to restore it after $temp_user = $GLOBALS['egw_info']['user']; // save user-date of the enviroment to restore it after
if (!$user) if (!$user)
{ {