diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index c7024ded3..53c7974a8 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -1,4 +1,5 @@ 6.7.2 + - fix [ 1163407 ] Ampersand XHTML 1.0 Non-Compliant - fix [ 1243559 ] profile field security vulnerability (Len Kranendonk) - fix [ 1271490 ] uncommitted version appears in Navigation (midellaq) - fix [ 1268605 ] field type selection broken (midellaq) diff --git a/docs/migration.txt b/docs/migration.txt index 06ada5ba8..b9ae5553c 100644 --- a/docs/migration.txt +++ b/docs/migration.txt @@ -451,3 +451,18 @@ introduce errors to the database when modifying it directly rather than using the APIs. +5.20 Use ; instead of & in URLs + +In our effort to achieve full XHTML strict compliance we have switched +WebGUI's internals to expect a ; instead of a & as the URL query parameter +delimiter in 6.7.2. You must update your WebGUI plugins to reflect this new +URL style. + + +5.21 WebGUI::Search Removed + +The old WebGUI::Search package has been removed in 6.7.2. It hasn't been used +by any WebGUI core package since 6.3 and wasn't really used much prior to that. +If you were using it, just copy it's subs into your app. + + diff --git a/docs/upgrades/upgrade_6.7.1-6.7.2.pl b/docs/upgrades/upgrade_6.7.1-6.7.2.pl index 9b3f413b3..7bbc4a6cf 100644 --- a/docs/upgrades/upgrade_6.7.1-6.7.2.pl +++ b/docs/upgrades/upgrade_6.7.1-6.7.2.pl @@ -15,9 +15,15 @@ fixTimeFields(); fixSpelling(); fixCSTemplate(); speedUpAdminConsole(); +removeOldFiles(); finish(); +#------------------------------------------------- +sub removeOldFiles { + print "\tRemoving files that are no longer needed.\n" unless ($quiet); + unlink("../../lib/WebGUI/Search.pm"); +} #------------------------------------------------- sub speedUpAdminConsole { diff --git a/lib/WebGUI.pm b/lib/WebGUI.pm index 518d7d842..886fdee6b 100644 --- a/lib/WebGUI.pm +++ b/lib/WebGUI.pm @@ -41,7 +41,7 @@ sub _processOperations { $opNumber++; if ($output eq "" && exists $session{form}{"op".$opNumber}) { my $urlString = WebGUI::URL::unescape($session{form}{"op".$opNumber}); - my @pairs = split(/\&/,$urlString); + my @pairs = split(/\;/,$urlString); my %form; foreach my $pair (@pairs) { my @param = split(/\=/,$pair); diff --git a/lib/WebGUI/AdminConsole.pm b/lib/WebGUI/AdminConsole.pm index 7d5498fb1..9833455ad 100644 --- a/lib/WebGUI/AdminConsole.pm +++ b/lib/WebGUI/AdminConsole.pm @@ -441,7 +441,7 @@ sub setHelp { my $self = shift; my $id = shift; my $namespace = shift || "WebGUI"; - $self->{_helpUrl} = WebGUI::URL::page('op=viewHelp&hid='.$id.'&namespace='.$namespace) if ($id); + $self->{_helpUrl} = WebGUI::URL::page('op=viewHelp;hid='.$id.';namespace='.$namespace) if ($id); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 72a52d1b4..94f7f4cdc 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -352,7 +352,7 @@ Returns an arrayref that contains a label (name of the class of Asset) and url ( =head3 addToUrl -Any text to append to the getAssetAdderLinks URL. Usually name/variable pairs to pass in the url. If addToURL is specified, the character "&" and the text in addToUrl is appended to the returned url. +Any text to append to the getAssetAdderLinks URL. Usually name/variable pairs to pass in the url. If addToURL is specified, the character ";" and the text in addToUrl is appended to the returned url. =head3 type @@ -388,7 +388,7 @@ sub getAssetAdderLinks { if ($@) { WebGUI::ErrorHandler::error("Couldn't get the name of ".$class." because ".$@); } else { - my $url = $self->getUrl("func=add&class=".$class); + my $url = $self->getUrl("func=add;class=".$class); $url = WebGUI::URL::append($url,$addToUrl) if ($addToUrl); $links{$label}{url} = $url; $links{$label}{icon} = $class->getIcon; @@ -408,7 +408,7 @@ sub getAssetAdderLinks { while (my ($class,$id,$date) = $sth->array) { my $asset = WebGUI::Asset->new($id,$class,$date); next unless ($asset->canView && $asset->canAdd && $asset->getUiLevel <= $session{user}{uiLevel}); - my $url = $self->getUrl("func=add&class=".$class."&prototype=".$id); + my $url = $self->getUrl("func=add;class=".$class.";prototype=".$id); $url = WebGUI::URL::append($url,$addToUrl) if ($addToUrl); $links{$asset->getTitle}{url} = $url; $links{$asset->getTitle}{icon} = $asset->getIcon; @@ -650,7 +650,7 @@ sub getEditForm { if (WebGUI::Grouping::isInGroup(3)) { # Add a quick link to add field $tabform->getTab("meta")->readOnly( - -value=>'

'. + -value=>'

'. WebGUI::International::get('Add new field','Asset'). '

', -hoverHelp=>WebGUI::International::get('make prototype description',"Asset"), @@ -871,7 +871,7 @@ Returns a URL of Asset based upon WebGUI's gateway script. Name value pairs to add to the URL in the form of: - name1=value1&name2=value2&name3=value3 + name1=value1;name2=value2;name3=value3 =cut @@ -1447,7 +1447,7 @@ sub www_manageAssets { foreach my $child (@{$self->getLineage(["children"],{returnObjects=>1})}) { $output .= 'var contextMenu = new contextMenu_createWithLink("'.$child->getId.'","More"); contextMenu.addLink("'.$child->getUrl("func=editBranch").'","'.$i18n->get("edit branch").'"); - contextMenu.addLink("'.$child->getUrl("func=createShortcut&proceed=manageAssets").'","'.$i18n->get("create shortcut").'"); + contextMenu.addLink("'.$child->getUrl("func=createShortcut;proceed=manageAssets").'","'.$i18n->get("create shortcut").'"); contextMenu.addLink("'.$child->getUrl("func=manageRevisions").'","'.$i18n->get("revisions").'"); contextMenu.addLink("'.$child->getUrl.'","'.$i18n->get("view").'"); '."\n"; my $title = $child->getTitle; @@ -1456,9 +1456,9 @@ sub www_manageAssets { my $edit; if ($child->isLocked) { $locked = 'locked'; - $edit = "'getUrl("func=edit&proceed=manageAssets")."\">Edit | '+" if ($child->get("isLockedBy") eq $session{user}{userId}); + $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+" if ($child->get("isLockedBy") eq $session{user}{userId}); } else { - $edit = "'getUrl("func=edit&proceed=manageAssets")."\">Edit | '+"; + $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+"; $locked = 'unlocked'; } $output .= "assetManager.AddLine('" @@ -1495,21 +1495,21 @@ sub www_manageAssets { foreach my $link (@{$self->getAssetAdderLinks("proceed=manageAssets","assetContainers")}) { $output .= ''.$link->{label}.' '.$link->{label}.' '; - $output .= editIcon("func=edit&proceed=manageAssets",$link->{asset}->get("url")) if ($link->{isPrototype}); + $output .= editIcon("func=edit;proceed=manageAssets",$link->{asset}->get("url")) if ($link->{isPrototype}); $output .= '
'; } $output .= '
'; foreach my $link (@{$self->getAssetAdderLinks("proceed=manageAssets")}) { $output .= ''.$link->{label}.' '.$link->{label}.' '; - $output .= editIcon("func=edit&proceed=manageAssets",$link->{asset}->get("url")) if ($link->{isPrototype}); + $output .= editIcon("func=edit;proceed=manageAssets",$link->{asset}->get("url")) if ($link->{isPrototype}); $output .= '
'; } $output .= '
'; foreach my $link (@{$self->getAssetAdderLinks("proceed=manageAssets","utilityAssets")}) { $output .= ''.$link->{label}.' '.$link->{label}.' '; - $output .= editIcon("func=edit&proceed=manageAssets",$link->{asset}->get("url")) if ($link->{isPrototype}); + $output .= editIcon("func=edit;proceed=manageAssets",$link->{asset}->get("url")) if ($link->{isPrototype}); $output .= '
'; } $output .= ''; @@ -1544,8 +1544,8 @@ sub www_manageAssets { my $packages; foreach my $asset (@{$self->getPackageList}) { $packages .= ''.$asset->getName.' - getId).'">'.$asset->getTitle.' ' - .editIcon("func=edit&proceed=manageAssets",$asset->get("url")) + getId).'">'.$asset->getTitle.' ' + .editIcon("func=edit;proceed=manageAssets",$asset->get("url")) .'
'; $hasPackages = 1; } diff --git a/lib/WebGUI/Asset/Event.pm b/lib/WebGUI/Asset/Event.pm index 270a557a1..538f2b2e3 100644 --- a/lib/WebGUI/Asset/Event.pm +++ b/lib/WebGUI/Asset/Event.pm @@ -292,21 +292,21 @@ sub getEditForm { -namespace=>"EventsCalendar/Event", -label=>WebGUI::International::get(530,"Asset_Event"), -hoverHelp=>WebGUI::International::get('530 description',"Asset_Event"), - -afterEdit=>'func=edit&wid='.$self->get("wobjectId") + -afterEdit=>'func=edit;wid='.$self->get("wobjectId") ); # $tabform->getTab("display")->template( # -name=>"regNotifyTemplateId", # -value=>$self->getValue("regNotifyTemplateId"), # -namespace=>"EventsCalendar/Event", # -label=>WebGUI::International::get(531,"Asset_Event"), -# -afterEdit=>'func=edit&wid='.$self->get("wobjectId") +# -afterEdit=>'func=edit;wid='.$self->get("wobjectId") # ); # $tabform->getTab("display")->template( # -name=>"reminderTemplateId", # -value=>$self->getValue("reminderTemplateId"), # -namespace=>"EventsCalendar/Event", # -label=>WebGUI::International::get(532,"Asset_Event"), -# -afterEdit=>'func=edit&wid='.$self->get("wobjectId") +# -afterEdit=>'func=edit;wid='.$self->get("wobjectId") # ); # $tabform->getTab("security")->group( # -name=>"groupCanRegister", -label=>WebGUI::International::get(533,"Asset_Event"), @@ -402,7 +402,7 @@ sub view { $var{canEdit} = $self->canEdit; $var{"edit.url"} = WebGUI::URL::page('func=edit'); $var{"edit.label"} = WebGUI::International::get(575,"Asset_Event"); - $var{"delete.url"} = WebGUI::URL::page('func=deleteEvent&rid='.$self->getValue("EventsCalendar_recurringId")); + $var{"delete.url"} = WebGUI::URL::page('func=deleteEvent;rid='.$self->getValue("EventsCalendar_recurringId")); $var{"delete.label"} = WebGUI::International::get(576,"Asset_Event"); my $vars = \%var; #get parent so we can get the parent's style. Hopefully the parent is an EventsCalendar. If not, oh well. @@ -419,7 +419,7 @@ sub www_deleteEvent { $output = '

'.WebGUI::International::get(42,"Asset_Event").'

'; $output .= WebGUI::International::get(75,"Asset_Event").'

'; $output .= ''.WebGUI::International::get(76,"Asset_Event").'

'; - $output .= '' + $output .= '' .WebGUI::International::get(77,"Asset_Event").'

' if (($session{form}{rid} ne "") and ($session{form}{rid} ne "0")); $output .= ''.WebGUI::International::get(78,"Asset_Event").''; $output .= '

'; diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 294d8e2e4..b1dbc292d 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -229,7 +229,7 @@ Formats the URL to approve a post. sub getApproveUrl { my $self = shift; - return $self->getUrl("func=approve&mlog=".$session{form}{mlog}); + return $self->getUrl("func=approve;mlog=".$session{form}{mlog}); } #------------------------------------------------------------------- @@ -255,7 +255,7 @@ Formats the url to deny a post. sub getDenyUrl { my $self = shift; - return $self->getUrl("func=deny&mlog=".$session{form}{mlog}); + return $self->getUrl("func=deny;mlog=".$session{form}{mlog}); } #------------------------------------------------------------------- @@ -298,7 +298,7 @@ Formats the url to view a users profile. sub getPosterProfileUrl { my $self = shift; - return $self->getUrl("op=viewProfile&uid=".$self->get("ownerUserId")); + return $self->getUrl("op=viewProfile;uid=".$self->get("ownerUserId")); } #------------------------------------------------------------------- @@ -316,7 +316,7 @@ An integer between 1 and 5 (5 = best). sub getRateUrl { my $self = shift; my $rating = shift; - return $self->getUrl("func=rate&rating=".$rating."#".$self->getId); + return $self->getUrl("func=rate;rating=".$rating."#".$self->getId); } #------------------------------------------------------------------- @@ -334,7 +334,7 @@ If specified the reply with automatically quote the parent post. sub getReplyUrl { my $self = shift; my $withQuote = shift || 0; - return $self->getUrl("func=add&class=WebGUI::Asset::Post&withQuote=".$withQuote); + return $self->getUrl("func=add;class=WebGUI::Asset::Post;withQuote=".$withQuote); } #------------------------------------------------------------------- @@ -386,7 +386,7 @@ sub getTemplateVars { my %var = %{$self->get}; $var{"userId"} = $self->get("ownerUserId"); $var{"user.isPoster"} = $self->isPoster; - $var{"userProfile.url"} = $self->getUrl("op=viewProfile&uid=".$self->get("ownerUserId")); + $var{"userProfile.url"} = $self->getUrl("op=viewProfile;uid=".$self->get("ownerUserId")); $var{"dateSubmitted.human"} = epochToHuman($self->get("dateSubmitted")); $var{"dateUpdated.human"} = epochToHuman($self->get("dateUpdated")); $var{'title.short'} = $self->chopTitle; @@ -471,7 +471,7 @@ sub getUploadControl { if ($self->get("storageId")) { my $i; foreach my $filename (@{$self->getStorageLocation->getFiles}) { - $uploadControl .= deleteIcon("func=deleteFile&filename=".$filename,$self->get("url"),WebGUI::International::get("delete file warning","Asset_Collaboration")) + $uploadControl .= deleteIcon("func=deleteFile;filename=".$filename,$self->get("url"),WebGUI::International::get("delete file warning","Asset_Collaboration")) .' '.$filename.'' .'
'; $i++; diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 7c4d29f90..71208cd7b 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -109,7 +109,7 @@ sub definition { label=>WebGUI::International::get(1073,'Wobject'), hoverHelp=>WebGUI::International::get('1073 description','Wobject'), namespace=>'style', - afterEdit=>'op=editPage&npp='.$session{form}{npp} + afterEdit=>'op=editPage;npp='.$session{form}{npp} }, printableStyleTemplateId=>{ fieldType=>'template', @@ -118,7 +118,7 @@ sub definition { label=>WebGUI::International::get(1079,'Wobject'), hoverHelp=>WebGUI::International::get('1079 description','Wobject'), namespace=>'style', - afterEdit=>'op=editPage&npp='.$session{form}{npp} + afterEdit=>'op=editPage;npp='.$session{form}{npp} } } }); diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index dc55325a6..56c9693fd 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -127,7 +127,7 @@ sub view { if ($self->get("convertCarriageReturns")) { $var{description} =~ s/\n/\\n/g; } - $var{"new.template"} = $self->getUrl."&overrideTemplateId="; + $var{"new.template"} = $self->getUrl.";overrideTemplateId="; $var{"description.full"} = $var{description}; $var{"description.full"} =~ s/\^\-\;//g; $var{"description.first.100words"} = $var{"description.full"}; diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index bb4e2900e..b1c093a6b 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -21,7 +21,6 @@ use WebGUI::Icon; use WebGUI::International; use WebGUI::Paginator; use WebGUI::Privilege; -use WebGUI::Search; use WebGUI::Session; use WebGUI::SQL; use WebGUI::Style; @@ -619,7 +618,7 @@ Formats the url to start a new thread. sub getNewThreadUrl { my $self = shift; - $self->getUrl("func=add&class=WebGUI::Asset::Post::Thread"); + $self->getUrl("func=add;class=WebGUI::Asset::Post::Thread"); } #------------------------------------------------------------------- @@ -1052,7 +1051,7 @@ sub www_search { $sql .= " and " if ($sql ne "" && $without ne ""); $sql .= " ($without) " if ($without ne ""); $sql .= " group by assetData.assetId order by Post.dateSubmitted desc"; - my $p = WebGUI::Paginator->new($self->getUrl("func=search&doit=1"),$numResults); + my $p = WebGUI::Paginator->new($self->getUrl("func=search;doit=1"),$numResults); $self->appendPostListTemplateVars(\%var, $sql, $p); } return $self->processStyle($self->processTemplate(\%var, $self->get("searchTemplateId"))); diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm index 39fb7ecf8..bb37afcd1 100644 --- a/lib/WebGUI/Asset/Wobject/DataForm.pm +++ b/lib/WebGUI/Asset/Wobject/DataForm.pm @@ -89,10 +89,10 @@ sub _fieldAdminIcons { my $tid = shift; my $cantDelete = shift; my $output; - $output = deleteIcon('func=deleteFieldConfirm&fid='.$fid.'&tid='.$tid,$self->get("url"),WebGUI::International::get(19,"Asset_DataForm")) unless ($cantDelete); - $output .= editIcon('func=editField&fid='.$fid.'&tid='.$tid,$self->get("url")) - .moveUpIcon('func=moveFieldUp&fid='.$fid.'&tid='.$tid,$self->get("url")) - .moveDownIcon('func=moveFieldDown&fid='.$fid.'&tid='.$tid,$self->get("url")); + $output = deleteIcon('func=deleteFieldConfirm;fid='.$fid.';tid='.$tid,$self->get("url"),WebGUI::International::get(19,"Asset_DataForm")) unless ($cantDelete); + $output .= editIcon('func=editField;fid='.$fid.';tid='.$tid,$self->get("url")) + .moveUpIcon('func=moveFieldUp;fid='.$fid.';tid='.$tid,$self->get("url")) + .moveDownIcon('func=moveFieldDown;fid='.$fid.';tid='.$tid,$self->get("url")); return $output; } #------------------------------------------------------------------- @@ -101,10 +101,10 @@ sub _tabAdminIcons { my $tid = shift; my $cantDelete = shift; my $output; - $output = deleteIcon('func=deleteTabConfirm&tid='.$tid,$self->get("url"),WebGUI::International::get(100,"Asset_DataForm")) unless ($cantDelete); - $output .= editIcon('func=editTab&tid='.$tid,$self->get("url")) - .moveLeftIcon('func=moveTabLeft&tid='.$tid,$self->get("url")) - .moveRightIcon('func=moveTabRight&tid='.$tid,$self->get("url")); + $output = deleteIcon('func=deleteTabConfirm;tid='.$tid,$self->get("url"),WebGUI::International::get(100,"Asset_DataForm")) unless ($cantDelete); + $output .= editIcon('func=editTab;tid='.$tid,$self->get("url")) + .moveLeftIcon('func=moveTabLeft;tid='.$tid,$self->get("url")) + .moveRightIcon('func=moveTabRight;tid='.$tid,$self->get("url")); return $output; } @@ -325,7 +325,7 @@ sub getListTemplateVars { $var->{"back.url"} = $self->getFormUrl; $var->{"back.label"} = WebGUI::International::get('go to form',"Asset_DataForm"); #$var->{"entryId"} = $self->getId; - #$var->{"delete.url"} = $self->getUrl."&func=deleteAllEntries"; + #$var->{"delete.url"} = $self->getUrl.";func=deleteAllEntries"; #$var->{"delete.label"} = WebGUI::International::get(91,"Asset_DataForm"); my $a = WebGUI::SQL->read("select DataForm_fieldId,name,label,isMailField,type from DataForm_field where assetId=".quote($self->getId)." order by sequenceNumber"); @@ -359,10 +359,10 @@ sub getListTemplateVars { $b->finish; push(@recordLoop,{ "record.ipAddress"=>$record->{ipAddress}, - "record.edit.url"=>$self->getUrl("func=view&entryId=".$record->{DataForm_entryId}), - "record.edit.icon"=>editIcon("func=view&entryId=".$record->{DataForm_entryId}, $self->getUrl), - "record.delete.url"=>$self->getUrl("func=deleteEntry&entryId=".$record->{DataForm_entryId}), - "record.delete.icon"=>deleteIcon("func=deleteEntry&entryId=".$record->{Asset_DataForm_entryId}, $self->getUrl, WebGUI::International::get('Delete entry confirmation',"Asset_DataForm")), + "record.edit.url"=>$self->getUrl("func=view;entryId=".$record->{DataForm_entryId}), + "record.edit.icon"=>editIcon("func=view;entryId=".$record->{DataForm_entryId}, $self->getUrl), + "record.delete.url"=>$self->getUrl("func=deleteEntry;entryId=".$record->{DataForm_entryId}), + "record.delete.icon"=>deleteIcon("func=deleteEntry;entryId=".$record->{Asset_DataForm_entryId}, $self->getUrl, WebGUI::International::get('Delete entry confirmation',"Asset_DataForm")), "record.username"=>$record->{username}, "record.userId"=>$record->{userId}, "record.submissionDate.epoch"=>$record->{submissionDate}, @@ -412,12 +412,12 @@ sub getRecordTemplateVars { my $var = shift; $var->{error_loop} = [] unless (exists $var->{error_loop}); $var->{canEdit} = ($self->canEdit); - #$var->{"entryList.url"} = $self->getUrl('func=view&entryId=list'); + #$var->{"entryList.url"} = $self->getUrl('func=view;entryId=list'); $var->{"entryList.url"} = $self->getListUrl; $var->{"entryList.label"} = WebGUI::International::get(86,"Asset_DataForm"); $var->{"export.tab.url"} = $self->getUrl('func=exportTab'); $var->{"export.tab.label"} = WebGUI::International::get(84,"Asset_DataForm"); - $var->{"delete.url"} = $self->getUrl('func=deleteEntry&entryId='.$var->{entryId}); + $var->{"delete.url"} = $self->getUrl('func=deleteEntry;entryId='.$var->{entryId}); $var->{"delete.label"} = WebGUI::International::get(90,"Asset_DataForm"); $var->{"back.url"} = $self->getUrl; $var->{"back.label"} = WebGUI::International::get(18,"Asset_DataForm"); diff --git a/lib/WebGUI/Asset/Wobject/EventsCalendar.pm b/lib/WebGUI/Asset/Wobject/EventsCalendar.pm index 23ef11f22..3ad7172c7 100644 --- a/lib/WebGUI/Asset/Wobject/EventsCalendar.pm +++ b/lib/WebGUI/Asset/Wobject/EventsCalendar.pm @@ -131,7 +131,7 @@ sub getEditForm { -label=>WebGUI::International::get(80,"Asset_EventsCalendar"), -value=>$self->getValue('eventTemplateId'), -namespace=>"EventsCalendar/Event", - -afterEdit=>'func=edit&wid='.$self->get("wobjectId") + -afterEdit=>'func=edit;wid='.$self->get("wobjectId") ); $tabform->getTab("display")->selectList( -name=>"startMonth", @@ -421,7 +421,7 @@ sub view { my %var; $var{month_loop} = \@$monthloop; # $var{"canManage"} = $self->canManage; - $var{"addevent.url"} = $self->getUrl().'?func=addStyledEvent&class=WebGUI::Asset::Event'; + $var{"addevent.url"} = $self->getUrl().'?func=addStyledEvent;class=WebGUI::Asset::Event'; $var{"addevent.label"} = WebGUI::International::get(20,"Asset_EventsCalendar"); $var{'sunday.label'} = WebGUI::DateTime::getDayName(7); $var{'monday.label'} = WebGUI::DateTime::getDayName(1); @@ -451,12 +451,12 @@ sub view { } $var{'pagination.previousPage'} = '
'. + ';reload='.WebGUI::Id::generate().'">'. WebGUI::International::get(558,"Asset_EventsCalendar")." ".$monthRangeLength." ". $monthLabel.''; $var{'pagination.nextPage'} = ''. + '?calMonthStart='.$nextCalMonthStart.';calMonthEnd='.$nextCalMonthEnd.'">'. WebGUI::International::get(559,"Asset_EventsCalendar")." ".$monthRangeLength." ". $monthLabel.'
'; $var{'pagination.pageList.upTo20'} = '