Summary | Sunbird displays recurring events one day short |
Queue | Kronolith |
Queue Version | Git master |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | jan (at) horde (dot) org |
Requester | kou (at) gmx (dot) de |
Created | 01/14/2009 (5971 days ago) |
Due | |
Updated | 06/15/2010 (5454 days ago) |
Assigned | 06/17/2009 (5817 days ago) |
Resolved | 08/18/2009 (5755 days ago) |
Milestone | 2.3.2 |
Patch | No |
New Attachment: Recurrence.patch
patch for a new unit test that demonstrates this.
Version ⇒ Git master
patch for a new unit test that demonstrates this.
the Recurring Event is displayed one day too often, as before. But
this time, you manually add one day to "UNTIL".
When I comment out that line, everything works fine with lightning.
So changing kronoliths' recurrence.php in line 1168ff to:
if ($this->hasRecurEnd()) {
# $recurEnd = new Horde_Date($this->recurEnd);
# $recurEnd->mday++;
$rrule .= ';UNTIL=' . $calendar->_exportDateTime($this->recurEnd);
}
Works as expected again, leading me to the question, why you're adding
an extra day to until.
http://cvs.horde.org/diff.php/kronolith/docs/CHANGES?rt=horde&r1=1.165.2.265&r2=1.165.2.266&ty=u
http://cvs.horde.org/diff.php/kronolith/lib/Attic/Recurrence.php?rt=horde&r1=1.16.2.8&r2=1.16.2.9&ty=u
http://cvs.horde.org/diff.php/kronolith/lib/tests/Attic/recurrence.phpt?rt=horde&r1=1.12.2.2&r2=1.12.2.3&ty=u
State ⇒ Assigned
Milestone ⇒ 2.3.2
only fixed in Horde_Date_Recurrence, but not in Kronolith_Recurrence.
Assigned to Jan Schneider
http://cvs.horde.org/diff.php/framework/Date/Date/Recurrence.php?rt=horde&r1=1.7.2.10&r2=1.7.2.11&ty=u
http://cvs.horde.org/diff.php/framework/Date/tests/recurrence.phpt?rt=horde&r1=1.5.2.3&r2=1.5.2.4&ty=u
http://cvs.horde.org/diff.php/horde/docs/CHANGES?rt=horde&r1=1.515.2.517&r2=1.515.2.518&ty=u
http://cvs.horde.org/diff.php/framework/Date/Date/Recurrence.php?rt=horde&r1=1.28&r2=1.29&ty=u
http://cvs.horde.org/diff.php/framework/Date/tests/recurrence.phpt?rt=horde&r1=1.10&r2=1.11&ty=u
http://cvs.horde.org/diff.php/horde/docs/CHANGES?rt=horde&r1=1.1217&r2=1.1218&ty=u
The UNTIL rule part defines a date-time value which bounds the
recurrence rule in an inclusive manner. If the value specified by
UNTIL is synchronized with the specified recurrence, this date or
date-time becomes the last instance of the recurrence. If specified
as a date-time value, then it MUST be specified in an UTC time
format. If not present, and the COUNT rule part is also not present,
the RRULE is considered to repeat forever.
I interpret this as a date specified in the UNTIL part is inclusive.
But since date-time values are allowed to and seem to work fine with
both clients, I'm gonna use those.
the time. For example, Horde exports
DTSTART:20090414T070000Z
RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20090417
instead of
DTSTART:20090414T070000Z
RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20090417T070000Z
This is the code from toRRule20() in Recurrence.php that outputs the date:
if ($this->hasRecurEnd()) {
$rrule .= ';UNTIL=' . $calendar->_exportDate($this->recurEnd);
}
As far as I can see the time in the final date should match the time
from the event's start date.
State ⇒ Feedback
--- Recurrence.php.orig 2008-09-05 19:13:08.000000000 +0200
+++ Recurrence.php 2009-03-30 18:42:00.000000000 +0200
@@ -1127,7 +1127,11 @@
}
if ($this->hasRecurEnd()) {
- $rrule .= ';UNTIL=' . $calendar->_exportDate($this->recurEnd);
+ $until = new Horde_Date($this->recurEnd);
+ $until->hour = $this->start->hour;
+ $until->min = $this->start->min;
+ $until->sec = $this->start->sec;
+ $rrule .= ';UNTIL=' . $calendar->_exportDateTime($until);
}
if ($count = $this->getRecurCount()) {
$rrule .= ';COUNT=' . $count;
BTW, the Spam protection is not usable in Firefox. The ASCII art
letters aren't shown properly.
Lightning as well as Outlook. The event starts on 14th April and is
supposed to end on 17th April. In Lightning and Outlook the event ends
on 16th April.
BEGIN:VEVENT
DTSTART:20090414T070000Z
DTEND:20090414T150000Z
DTSTAMP:20090330T145501Z
UID:20090330144131.43343swuo9izn6yo@www.example.com
CREATED:20090330T124131Z
LAST-MODIFIED:20090330T124430Z
SUMMARY:Foo
ORGANIZER;CN=Andreas Voegele:mailto:andreas@example.com
CATEGORIES:Bar
LOCATION:Baz
CLASS:PUBLIC
STATUS:CONFIRMED
TRANSP:OPAQUE
RRULE:FREQ=DAILY;INTERVAL=1;UNTIL=20090417
END:VEVENT
If I edit the event in Lightning I get:
BEGIN:VEVENT
DTSTART:20090414T070000Z
DTEND:20090414T150000Z
DTSTAMP:20090330T155515Z
UID:20090330144131.43343swuo9izn6yo@www.example.com
CREATED:20090330T124131Z
LAST-MODIFIED:20090330T155526Z
SUMMARY:Foo
ORGANIZER;RSVP=FALSE;CN=Andreas Voegele:mailto:andreas@example.com
CATEGORIES:Bar
LOCATION:Baz
CLASS:PUBLIC
STATUS:CONFIRMED
TRANSP:OPAQUE
RRULE:FREQ=DAILY;UNTIL=20090417T070000Z;INTERVAL=1
X-MOZ-GENERATION:1
END:VEVENT
here reported problem still occurs in the same way.
Summary ⇒ Sunbird displays recurring events one day short
State ⇒ Feedback
comparison.
Priority ⇒ 1. Low
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ Sunbird displays reoccuring events one day short.
Type ⇒ Bug
Queue ⇒ Kronolith
Fr till 01/30/08 from 08:00 till 19:00 the event will display one day
short (till 01/29/08) in Sunbird.
If I edit the event in Subird reselect the 01/30/08 and save again the
event will be displayed correctly in Sunbird and Kronolith.
When I then open the event in Kronolith again and just hit save, the
event will be displayed again one day short in Sunbird.