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'];
|
$event['end'] = $master['end'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// unset _dateonly flags in (cached) date objects
|
||||||
|
unset($event['start']->_dateonly, $event['end']->_dateonly);
|
||||||
|
|
||||||
$success = $storage->update_event($event);
|
$success = $storage->update_event($event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -577,8 +577,9 @@ class libvcalendar
|
||||||
public static function datetime_prop($name, $dt, $utc = false, $dateonly = null)
|
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_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 = 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));
|
($is_utc ? VObject\Property\DateTime::UTC : VObject\Property\DateTime::LOCALTZ));
|
||||||
return $vdt;
|
return $vdt;
|
||||||
}
|
}
|
||||||
|
@ -682,9 +683,9 @@ class libvcalendar
|
||||||
if (!empty($event['changed']))
|
if (!empty($event['changed']))
|
||||||
$ve->add(self::datetime_prop('LAST-MODIFIED', $event['changed'], true));
|
$ve->add(self::datetime_prop('LAST-MODIFIED', $event['changed'], true));
|
||||||
if (!empty($event['start']))
|
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']))
|
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']))
|
if (!empty($event['due']))
|
||||||
$ve->add(self::datetime_prop('DUE', $event['due'], false));
|
$ve->add(self::datetime_prop('DUE', $event['due'], false));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue