Ignore _datetime flags when 'allday' property is present; avoid saving them in cache (#2310)
This commit is contained in:
parent
a361a30dcc
commit
3c56dcc275
2 changed files with 7 additions and 3 deletions
|
@ -663,6 +663,9 @@ class kolab_driver extends calendar_driver
|
|||
$event['end'] = $master['end'];
|
||||
}
|
||||
|
||||
// unset _dateonly flags in (cached) date objects
|
||||
unset($event['start']->_dateonly, $event['end']->_dateonly);
|
||||
|
||||
$success = $storage->update_event($event);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -577,8 +577,9 @@ class libvcalendar
|
|||
public static function datetime_prop($name, $dt, $utc = false, $dateonly = null)
|
||||
{
|
||||
$is_utc = $utc || (($tz = $dt->getTimezone()) && in_array($tz->getName(), array('UTC','GMT','Z')));
|
||||
$is_dateonly = $dateonly === null ? (bool)$dt->_dateonly : (bool)$dateonly;
|
||||
$vdt = new VObject\Property\DateTime($name);
|
||||
$vdt->setDateTime($dt, $dt->_dateonly || $dateonly ? VObject\Property\DateTime::DATE :
|
||||
$vdt->setDateTime($dt, $is_dateonly ? VObject\Property\DateTime::DATE :
|
||||
($is_utc ? VObject\Property\DateTime::UTC : VObject\Property\DateTime::LOCALTZ));
|
||||
return $vdt;
|
||||
}
|
||||
|
@ -682,9 +683,9 @@ class libvcalendar
|
|||
if (!empty($event['changed']))
|
||||
$ve->add(self::datetime_prop('LAST-MODIFIED', $event['changed'], true));
|
||||
if (!empty($event['start']))
|
||||
$ve->add(self::datetime_prop('DTSTART', $event['start'], false, $event['allday']));
|
||||
$ve->add(self::datetime_prop('DTSTART', $event['start'], false, (bool)$event['allday']));
|
||||
if (!empty($event['end']))
|
||||
$ve->add(self::datetime_prop('DTEND', $event['end'], false, $event['allday']));
|
||||
$ve->add(self::datetime_prop('DTEND', $event['end'], false, (bool)$event['allday']));
|
||||
if (!empty($event['due']))
|
||||
$ve->add(self::datetime_prop('DUE', $event['due'], false));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue