fixed: iCal feeds don't update properly when events are changed

This commit is contained in:
Graham Knop 2008-04-10 22:15:03 +00:00
parent 99d96a6a82
commit 55dbc180bb
4 changed files with 49 additions and 2 deletions

View file

@ -43,6 +43,21 @@ use WebGUI::DateTime;
=cut
sub addRevision {
my $self = shift;
my $newRev = $self->SUPER::addRevision(@_);
my $sequenceNumber = $newRev->get('iCalSequenceNumber');
if (defined $sequenceNumber) {
$sequenceNumber++;
}
else {
$sequenceNumber = 0;
}
$newRev->update({iCalSequenceNumber => $sequenceNumber});
return $newRev;
}
####################################################################
sub definition {
@ -114,6 +129,9 @@ sub definition {
sequenceNumber => {
fieldType => 'hidden',
},
iCalSequenceNumber => {
fieldType => 'hidden',
},
);

View file

@ -1868,11 +1868,29 @@ sub www_ical {
. WebGUI::DateTime->new($self->session, $event->get("creationDate"))->toIcal
. "\r\n";
# SEQUENCE
my $sequenceNumber = $event->get("iCalSequenceNumber");
if (defined $sequenceNumber) {
$ical .= qq{SEQUENCE:}
. $event->get("iCalSequenceNumber")
. "\r\n";
}
# DTSTART
$ical .= qq{DTSTART:}.$event->getIcalStart."\r\n";
my $eventStart = $event->getIcalStart;
$ical .= 'DTSTART';
if ($eventStart !~ /T/) {
$ical .= ';VALUE=DATE';
}
$ical .= ":$eventStart\r\n";
# DTEND
$ical .= qq{DTEND:}.$event->getIcalEnd."\r\n";
my $eventEnd = $event->getIcalEnd;
$ical .= 'DTEND';
if ($eventEnd !~ /T/) {
$ical .= ';VALUE=DATE';
}
$ical .= ":$eventEnd\r\n";
# Summary (the title)
# Wrapped at 75 columns