Fix the display of the lastUpdated and lastResult fields for Calendar iCal feeds. Fix the name of the status field in the Asset definition. Update all revisions of all calendars to fix the issue. Fixes bug #12104.

This commit is contained in:
Colin Kuskie 2011-04-18 16:26:57 -07:00
parent 9065aa9eb8
commit e5d94f3a5b
4 changed files with 46 additions and 3 deletions

View file

@ -14,6 +14,7 @@
- rfe #12105: Make shortcuts related for export purposes - rfe #12105: Make shortcuts related for export purposes
- rfe #12108: Mail to Group preference field - rfe #12108: Mail to Group preference field
- fixed #12107: Viewing an individual transaction item fails - fixed #12107: Viewing an individual transaction item fails
- fixed #12104: Calendar iCal feed status and lastUPdated fields missing
7.10.13 7.10.13
- added #12079: Carousel Auto Play - added #12079: Carousel Auto Play

View file

@ -22,6 +22,7 @@ use Getopt::Long;
use WebGUI::Session; use WebGUI::Session;
use WebGUI::Storage; use WebGUI::Storage;
use WebGUI::Asset; use WebGUI::Asset;
use WebGUI::Asset::Wobject::Calendar;
my $toVersion = '7.10.14'; my $toVersion = '7.10.14';
@ -34,6 +35,7 @@ my $session = start(); # this line required
addOrganizationsToTransaction($session); addOrganizationsToTransaction($session);
removeDuplicateUndergroundStyleTemplates($session); removeDuplicateUndergroundStyleTemplates($session);
addRichEditToCarousel($session); addRichEditToCarousel($session);
fixBadCalendarFeedStatus($session);
finish($session); # this line required finish($session); # this line required
@ -48,6 +50,32 @@ finish($session); # this line required
#} #}
#----------------------------------------------------------------------------
# Describe what our function does
sub fixBadCalendarFeedStatus {
my $session = shift;
print "\tFix the name of the iCal status field in all Calendar assets... " unless $quiet;
# and here's our code
my $fetch_calendar = WebGUI::Asset::Wobject::Calendar->getIsa($session);
my $sth = $session->db->read('select assetId, revisionDate from Calendar');
CALENDAR: while (my ($assetId, $revisionDate) = $sth->array) {
my $calendar = eval {WebGUI::Asset->new($session, $assetId, 'WebGUI::Asset::Wobject::Calendar', $revisionDate)};
next CALENDAR if !$calendar;
FEED: foreach my $feed ( @{ $calendar->getFeeds } ) {
my $status = delete $feed->{status};
if (!exists $feed->{lastResult}) {
$feed->{lastResult} = $status;
}
if (!exists $feed->{lastUpdated}) {
$feed->{lastUpdated} = 'never';
}
$calendar->setFeed($feed->{feedId}, $feed);
}
}
$sth->finish;
print "DONE!\n" unless $quiet;
}
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Describe what our function does # Describe what our function does
sub addOrganizationsToTransaction { sub addOrganizationsToTransaction {
@ -78,7 +106,7 @@ sub removeDuplicateUndergroundStyleTemplates {
# Describe what our function does # Describe what our function does
sub addRichEditToCarousel { sub addRichEditToCarousel {
my $session = shift; my $session = shift;
print "\tAdd RichEdit option to the Carousel" unless $quiet; print "\tAdd RichEdit option to the Carousel... " unless $quiet;
# and here's our code # and here's our code
$session->db->write('ALTER TABLE Carousel ADD COLUMN richEditor CHAR(22) BINARY'); $session->db->write('ALTER TABLE Carousel ADD COLUMN richEditor CHAR(22) BINARY');
$session->db->write(q!update Carousel set richEditor='PBrichedit000000000001'!); $session->db->write(q!update Carousel set richEditor='PBrichedit000000000001'!);

View file

@ -274,7 +274,7 @@ sub definition {
label => $i18n->get('Feed URL'), label => $i18n->get('Feed URL'),
}, },
{ {
name => 'status', name => 'lastResult',
type => 'readonly', type => 'readonly',
label => $i18n->get('434','WebGUI'), label => $i18n->get('434','WebGUI'),
}, },
@ -869,6 +869,17 @@ sub processPropertiesFromFormPost {
$self->createSubscriptionGroup(); $self->createSubscriptionGroup();
} }
my @feeds = @{ $self->getFeeds };
foreach my $feed (@feeds) {
if ($feed->{lastUpdated} eq 'new') {
$feed->{lastUpdated} = 'never';
}
if ($feed->{lastResult} eq 'new') {
$feed->{lastResult} = '';
}
$self->setFeed($feed->{feedId}, $feed);
}
return; return;
} }

View file

@ -203,7 +203,10 @@ sub toHtml {
elsif ( $field->{type} eq "id" ) { elsif ( $field->{type} eq "id" ) {
$fieldHtml .= '<input type="hidden" class="jsontable_id" name="' . $fieldName . '" value="new" />'; $fieldHtml .= '<input type="hidden" class="jsontable_id" name="' . $fieldName . '" value="new" />';
} }
else { # Readonly or unknown elsif ( $field->{type} eq "hidden" || $field->{type} eq "readonly" ) {
$fieldHtml .= '<input type="hidden" name="' . $fieldName . '" value="new" />';
}
else { # Unknown
$fieldHtml = '&nbsp;'; $fieldHtml = '&nbsp;';
} }