Export recurrence UNTIL parameter as DATE for all-day events (#3998)

This commit is contained in:
Thomas Bruederli 2015-03-09 15:40:15 +01:00
parent 88692ea3fe
commit 3702557dc3
2 changed files with 10 additions and 5 deletions

View file

@ -1501,7 +1501,7 @@ class libcalendaring extends rcube_plugin
/**
* Convert the internal structured data into a vcalendar rrule 2.0 string
*/
public static function to_rrule($recurrence)
public static function to_rrule($recurrence, $allday = false)
{
if (is_string($recurrence))
return $recurrence;
@ -1513,9 +1513,14 @@ class libcalendaring extends rcube_plugin
case 'UNTIL':
// convert to UTC according to RFC 5545
if (is_a($val, 'DateTime')) {
$until = clone $val;
$until->setTimezone(new DateTimeZone('UTC'));
$val = $until->format('Ymd\THis\Z');
if (!$allday && !$val->_dateonly) {
$until = clone $val;
$until->setTimezone(new DateTimeZone('UTC'));
$val = $until->format('Ymd\THis\Z');
}
else {
$val = $val->format('Ymd');
}
}
break;
case 'RDATE':

View file

@ -993,7 +993,7 @@ class libvcalendar implements Iterator
}
if ($event['recurrence']['FREQ']) {
$ve->add('RRULE', libcalendaring::to_rrule($event['recurrence']));
$ve->add('RRULE', libcalendaring::to_rrule($event['recurrence'], (bool)$event['allday']));
}
// add EXDATEs each one per line (for Thunderbird Lightning)