diff --git a/docs/upgrades/upgrade_4.8.0-4.9.0.sql b/docs/upgrades/upgrade_4.8.0-4.9.0.sql
index 969106b8c..d555a4e49 100644
--- a/docs/upgrades/upgrade_4.8.0-4.9.0.sql
+++ b/docs/upgrades/upgrade_4.8.0-4.9.0.sql
@@ -976,6 +976,7 @@ alter table SiteMap drop column lineSpacing;
INSERT INTO template VALUES (1,'Default Site Map','\r\n
\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n ·\">
\r\n','SiteMap');
INSERT INTO template VALUES (2,'Descriptive Site Map','\r\n
\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n \"> \r\n \r\n - \r\n \r\n \r\n','SiteMap');
alter table page add column languageId int not null default 1;
+insert into international (internationalId,languageId,namespace,message,lastUpdated) values (823,1,'WebGUI','Go to the new page.', 1038706332);
diff --git a/lib/WebGUI/Operation/Page.pm b/lib/WebGUI/Operation/Page.pm
index 1062c43fa..d939e022d 100644
--- a/lib/WebGUI/Operation/Page.pm
+++ b/lib/WebGUI/Operation/Page.pm
@@ -318,6 +318,19 @@ sub www_editPage {
-subtext=>' '.WebGUI::International::get(116),
-uiLevel=>9
);
+ $f->raw(
+ -value=>'
|
',
+ -uiLevel=>5
+ );
+ if ($page{pageId} eq "new") {
+ $f->whatNext(
+ -options=>{
+ gotoNewPage=>WebGUI::International::get(823),
+ backToPage=>WebGUI::International::get(745)
+ },
+ -value=>"gotoNewPage"
+ );
+ }
$f->submit;
$output .= $f->print;
return $output;
@@ -334,51 +347,51 @@ sub www_editPageSave {
} else {
$pageId = $session{form}{pageId};
}
- if (WebGUI::Privilege::canEditPage($pageId)) {
- if ($session{form}{pageId} eq "new") {
- ($nextSeq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from page where parentId=$session{form}{parentId}");
- $nextSeq++;
- $session{form}{pageId} = getNextId("pageId");
- WebGUI::SQL->write("insert into page (pageId,sequenceNumber,parentId)
- values ($session{form}{pageId},$nextSeq,$session{form}{parentId})");
- }
- $session{form}{title} = "no title" if ($session{form}{title} eq "");
- $session{form}{menuTitle} = $session{form}{title} if ($session{form}{menuTitle} eq "");
- $session{form}{urlizedTitle} = $session{form}{menuTitle} if ($session{form}{urlizedTitle} eq "");
- $session{form}{urlizedTitle} = WebGUI::URL::makeUnique(WebGUI::URL::urlize($session{form}{urlizedTitle}),$session{form}{pageId});
- $session{form}{startDate} = setToEpoch($session{form}{startDate}) || setToEpoch(time());
- $session{form}{endDate} = setToEpoch($session{form}{endDate}) || setToEpoch(addToDate(time(),10));
- WebGUI::SQL->write("update page set
- title=".quote($session{form}{title}).",
- styleId=$session{form}{styleId},
- ownerId=$session{form}{ownerId},
- ownerView=$session{form}{ownerView},
- ownerEdit=$session{form}{ownerEdit},
- groupId='$session{form}{groupId}',
- groupView=$session{form}{groupView},
- groupEdit=$session{form}{groupEdit},
- worldView=$session{form}{worldView},
- worldEdit=$session{form}{worldEdit},
- startDate=$session{form}{startDate},
- endDate=$session{form}{endDate},
- metaTags=".quote($session{form}{metaTags}).",
- urlizedTitle='$session{form}{urlizedTitle}',
- redirectURL='$session{form}{redirectURL}',
- languageId='$session{form}{languageId}',
- defaultMetaTags='$session{form}{defaultMetaTags}',
- templateId='$session{form}{templateId}',
- menuTitle=".quote($session{form}{menuTitle}).",
- synopsis=".quote($session{form}{synopsis})."
- where pageId=$session{form}{pageId}");
- WebGUI::SQL->write("update wobject set templatePosition=1 where pageId=$session{form}{pageId}
- and templatePosition>".WebGUI::Template::countPositions($session{form}{templateId}));
- _recursivelyChangeStyle($session{page}{pageId}) if ($session{form}{recurseStyle});
- _recursivelyChangePrivileges($session{page}{pageId}) if ($session{form}{recursePrivs});
- WebGUI::Session::refreshPageInfo($session{page}{pageId}) if ($session{form}{pageId} == $session{page}{pageId});
- return "";
- } else {
- return WebGUI::Privilege::insufficient();
- }
+ return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage($pageId));
+ if ($session{form}{pageId} eq "new") {
+ ($nextSeq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from page where parentId=$session{form}{parentId}");
+ $nextSeq++;
+ $session{form}{pageId} = getNextId("pageId");
+ WebGUI::SQL->write("insert into page (pageId,sequenceNumber,parentId)
+ values ($session{form}{pageId},$nextSeq,$session{form}{parentId})");
+ }
+ $session{form}{title} = "no title" if ($session{form}{title} eq "");
+ $session{form}{menuTitle} = $session{form}{title} if ($session{form}{menuTitle} eq "");
+ $session{form}{urlizedTitle} = $session{form}{menuTitle} if ($session{form}{urlizedTitle} eq "");
+ $session{form}{urlizedTitle} = WebGUI::URL::makeUnique(WebGUI::URL::urlize($session{form}{urlizedTitle}),$session{form}{pageId});
+ $session{form}{startDate} = setToEpoch($session{form}{startDate}) || setToEpoch(time());
+ $session{form}{endDate} = setToEpoch($session{form}{endDate}) || setToEpoch(addToDate(time(),10));
+ WebGUI::SQL->write("update page set
+ title=".quote($session{form}{title}).",
+ styleId=$session{form}{styleId},
+ ownerId=$session{form}{ownerId},
+ ownerView=$session{form}{ownerView},
+ ownerEdit=$session{form}{ownerEdit},
+ groupId='$session{form}{groupId}',
+ groupView=$session{form}{groupView},
+ groupEdit=$session{form}{groupEdit},
+ worldView=$session{form}{worldView},
+ worldEdit=$session{form}{worldEdit},
+ startDate=$session{form}{startDate},
+ endDate=$session{form}{endDate},
+ metaTags=".quote($session{form}{metaTags}).",
+ urlizedTitle='$session{form}{urlizedTitle}',
+ redirectURL='$session{form}{redirectURL}',
+ languageId='$session{form}{languageId}',
+ defaultMetaTags='$session{form}{defaultMetaTags}',
+ templateId='$session{form}{templateId}',
+ menuTitle=".quote($session{form}{menuTitle}).",
+ synopsis=".quote($session{form}{synopsis})."
+ where pageId=$session{form}{pageId}");
+ WebGUI::SQL->write("update wobject set templatePosition=1 where pageId=$session{form}{pageId}
+ and templatePosition>".WebGUI::Template::countPositions($session{form}{templateId}));
+ _recursivelyChangeStyle($session{page}{pageId}) if ($session{form}{recurseStyle});
+ _recursivelyChangePrivileges($session{page}{pageId}) if ($session{form}{recursePrivs});
+ WebGUI::Session::refreshPageInfo($session{page}{pageId}) if ($session{form}{pageId} == $session{page}{pageId});
+ if ($session{form}{proceed} eq "gotoNewPage") {
+ WebGUI::Session::refreshPageInfo($session{form}{pageId});
+ }
+ return "";
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm
index 32925cf46..f73b88fe8 100644
--- a/lib/WebGUI/Session.pm
+++ b/lib/WebGUI/Session.pm
@@ -46,7 +46,7 @@ sub _setupPageInfo {
if ($pageName ne "") {
($pageId) = WebGUI::SQL->quickArray("select pageId from page where urlizedTitle='".$pageName."'");
if ($pageId eq "") {
- $pageId = $_[1];
+ $pageId = $session{setting}{notFoundPage};
if($ENV{"MOD_PERL"}) {
my $r = Apache->request;
if(defined($r)) {
@@ -62,7 +62,7 @@ sub _setupPageInfo {
}
}
%page = WebGUI::SQL->quickHash("select * from page where pageId='".$pageId."'");
- $page{url} = $_[2]."/".$page{urlizedTitle};
+ $page{url} = $session{config}{scripturl}."/".$page{urlizedTitle};
$session{page} = \%page;
}
@@ -334,7 +334,7 @@ sub open {
}
###----------------------------
### current page's properties (from page table)
- _setupPageInfo("",$session{setting}{notFoundPage},$session{config}{scripturl});
+ _setupPageInfo("");
###----------------------------
### current user's account and profile information (from users and userProfileData tables)
_setupUserInfo($session{var}{userId});
@@ -356,7 +356,7 @@ sub refreshPageInfo {
} else {
$pageId = $_[0];
}
- _setupPageInfo($pageId,$session{setting}{notFoundPage},$session{config}{scripturl});
+ _setupPageInfo($pageId);
}
#-------------------------------------------------------------------