Export recurrence UNTIL parameter as DATE for all-day events (#3998)
This commit is contained in:
parent
88692ea3fe
commit
3702557dc3
2 changed files with 10 additions and 5 deletions
|
@ -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':
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue