fixed: iCal feeds don't update properly when events are changed
This commit is contained in:
parent
99d96a6a82
commit
55dbc180bb
4 changed files with 49 additions and 2 deletions
|
|
@ -22,6 +22,7 @@
|
|||
- fixed: international characters corrupted in titles
|
||||
- fixed: Users without karma can transfer karma by rating posts
|
||||
- fixed: gateway macro not usable in links in rich editor
|
||||
- fixed: iCal feeds don't update properly when events are changed
|
||||
|
||||
7.5.9
|
||||
- fixed: Collaboration System attachments follow site's max size instead of CS's
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ my $session = start(); # this line required
|
|||
|
||||
privatizeVisitor($session);
|
||||
ucfirstThingyFieldTypes($session);
|
||||
addEventSequenceNumber($session);
|
||||
|
||||
finish($session); # this line required
|
||||
|
||||
|
|
@ -36,6 +37,15 @@ finish($session); # this line required
|
|||
# print "DONE!\n" unless $quiet;
|
||||
#}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addEventSequenceNumber {
|
||||
my $session = shift;
|
||||
print "\tAdding iCal sequence number to events... " unless $quiet;
|
||||
$session->db->write('ALTER TABLE Event ADD COLUMN iCalSequenceNumber int');
|
||||
$session->db->write('UPDATE Event SET iCalSequenceNumber=0');
|
||||
print "Done.\n" unless $quiet;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub privatizeVisitor {
|
||||
my $session = shift;
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue