diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index cbad12a30..7322d7101 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -35,6 +35,8 @@ - fix: Reply count off when restoring from trash - fix: Karma not spent properly - fix: Avatar Message Board Template Not Working + - fixed another Events Calendar bug + - added template variable 'owner' for Events Calendar templates 6.99.2 diff --git a/lib/WebGUI/Asset/Wobject/EventsCalendar.pm b/lib/WebGUI/Asset/Wobject/EventsCalendar.pm index 7a1065d2e..032d66506 100644 --- a/lib/WebGUI/Asset/Wobject/EventsCalendar.pm +++ b/lib/WebGUI/Asset/Wobject/EventsCalendar.pm @@ -89,24 +89,24 @@ sub definition { #------------------------------------------------------------------- - -=head2 epochToArray ( epoch ) - -Returns an array date. - -=head3 epoch - -The number of seconds since January 1, 1970. - -=cut - -sub epochToArray { - my $self = shift; - my $timeZone = $self->session->user->profileField("timeZone") || "America/Chicago"; - use DateTime; - return map {$_ += 0} split / /, DateTime->from_epoch( epoch =>shift, time_zone=>$timeZone)->strftime("%Y %m %d %H %M %S"); -} - +# +#=head2 epochToArray ( epoch ) +# +#Returns an array date. +# +#=head3 epoch +# +#The number of seconds since January 1, 1970. +# +#=cut +# +#sub epochToArray { +# my $self = shift; +# my $timeZone = $self->session->user->profileField("timeZone") || "America/Chicago"; +# use DateTime; +# return map {$_ += 0} split / /, DateTime->from_epoch( epoch =>shift, time_zone=>$timeZone)->strftime("%Y %m %d %H %M %S"); +#} +# #------------------------------------------------------------------- @@ -152,6 +152,7 @@ sub getEditForm { -options=>{ "january"=>$i18n->get('january'), "now"=>$i18n->get(98), + "today"=>$i18n->get('today'), "current"=>$i18n->get(82), "first"=>$i18n->get(83) }, @@ -217,7 +218,7 @@ sub prepareView { #------------------------------------------------------------------- -=head2 purgeCache () +=head2 purgeCache ( ) See WebGUI::Asset::purgeCache() for details. @@ -329,6 +330,7 @@ sub view { # Filter events my %filteredEvents; + my %userNames; my $previousDate; foreach my $event (@sortedEvents) { # ignore events we're not allowed to see @@ -357,9 +359,17 @@ sub view { $daysInEvent++; } # add event to each day it takes place - for (my $day = $firstDay; $day <= $lastDay; $day = $dt->addToDate($day, 0, 0, 1)) { - next if ($day < $minDate); - next if ($day > $maxDate); + my $firstViewableDay = $firstDay; + my $lastViewableDay = $lastDay; + ($firstViewableDay, $dummy) = $dt->dayStartEnd($minDate) if ($firstViewableDay < $minDate); + ($lastViewableDay, $dummy) = $dt->dayStartEnd($maxDate) if ($lastViewableDay > $maxDate); + my $ownerUserId = $event->get('ownerUserId'); + unless ($userNames{$ownerUserId}) { + my $owner = WebGUI::User->new($session, $ownerUserId); + $userNames{$ownerUserId} = $owner->username(); + } + my $ownerName = $userNames{$ownerUserId}; + for (my $day = $firstViewableDay; $day <= $lastViewableDay; $day = $dt->addToDate($day, 0, 0, 1)) { push (@{$filteredEvents{$day}}, { 'description' => $event->get('description'), 'name' => $event->get('title'), @@ -383,7 +393,8 @@ sub view { 'isFirstDayOfEvent' => $day == $firstDay, 'dateIsSameAsPrevious' => "$firstDay-$lastDay" eq $previousDate, 'daysInEvent' => $daysInEvent, - 'url' => $event->getUrl() + 'url' => $event->getUrl(), + 'owner' => $ownerName }); } $previousDate = "$firstDay-$lastDay"; @@ -522,8 +533,8 @@ sub view { $var{'pagination.nextPageUrl'} = $self->getUrl.'?calMonthEnd='.$calMonthStart+$monthRangeLength.';calMonthEnd='.$calMonthEnd+$monthRangeLength; $var{'pagination.nextPage'} = ''.$i18n->get(559).' '.$monthRangeLength.' '.$monthLabel.''; $var{'pagination.pageList.upTo20'} = ' -
- + +