mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-08-25 17:46:52 +00:00
Merge branch 'correct-duration-handling' into 'master'
Correctly handle durations without units like "PT" Closes #136 See merge request davical-project/davical!41
This commit is contained in:
commit
ce19c87208
@ -139,7 +139,8 @@ class WritableCollection extends DAVResource {
|
||||
else {
|
||||
$dtend = 'NULL';
|
||||
if ( $first->GetPValue('DURATION') != '' AND $dtstart != '' ) {
|
||||
$duration = preg_replace( '#[PT]#', ' ', $first->GetPValue('DURATION') );
|
||||
$duration = preg_replace( '#[PT]#', '', $first->GetPValue('DURATION') );
|
||||
if ($duration == '') $duration = '0 seconds';
|
||||
$dtend = '(:dtstart::timestamp with time zone + :duration::interval)';
|
||||
$calitem_params[':duration'] = $duration;
|
||||
}
|
||||
@ -343,6 +344,7 @@ EOSQL;
|
||||
if ( !preg_match('{^-?P(:?\d+W)?(:?\d+D)?(:?T(:?\d+H)?(:?\d+M)?(:?\d+S)?)?$}', $duration ) ) continue;
|
||||
$minus = (substr($duration,0,1) == '-');
|
||||
$related_trigger = trim(preg_replace( '#[PT-]#', ' ', $duration ));
|
||||
if ($related_trigger == '') $related_trigger = '0 seconds';
|
||||
if ( $minus ) {
|
||||
$related_trigger = preg_replace( '{(\d+[WDHMS])}', '-$1 ', $related_trigger );
|
||||
}
|
||||
|
||||
@ -1215,6 +1215,7 @@ function write_alarms( $dav_id, vComponent $ical ) {
|
||||
if ( !preg_match('{^-?P(:?\d+W)?(:?\d+D)?(:?T(:?\d+H)?(:?\d+M)?(:?\d+S)?)?$}', $duration ) ) continue;
|
||||
$minus = (substr($duration,0,1) == '-');
|
||||
$related_trigger = trim(preg_replace( '#[PT-]#', ' ', $duration ));
|
||||
if ($related_trigger == '') $related_trigger = '0 seconds';
|
||||
if ( $minus ) {
|
||||
$related_trigger = preg_replace( '{(\d+[WDHMS])}', '-$1 ', $related_trigger );
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user