From a889a48f5c379168810754d625d0259359bb2511 Mon Sep 17 00:00:00 2001 From: Ben Simpson Date: Tue, 22 Apr 2003 18:12:30 +0000 Subject: [PATCH] Allow pages to be moved up and down in the page tree without having to go directly to the page. Simple refactoring to use existing code for the same operation. --- lib/WebGUI/Operation/Page.pm | 110 +++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 44 deletions(-) diff --git a/lib/WebGUI/Operation/Page.pm b/lib/WebGUI/Operation/Page.pm index 84fad9d2f..b76922d90 100644 --- a/lib/WebGUI/Operation/Page.pm +++ b/lib/WebGUI/Operation/Page.pm @@ -26,8 +26,44 @@ use WebGUI::URL; use WebGUI::Utility; our @ISA = qw(Exporter); -our @EXPORT = qw(&www_viewPageTree &www_movePageUp &www_movePageDown &www_cutPage &www_deletePage &www_deletePageConfirm - &www_editPage &www_editPageSave &www_pastePage); +our @EXPORT = qw(&www_viewPageTree &www_movePageUp &www_movePageDown + &www_cutPage &www_deletePage &www_deletePageConfirm &www_editPage + &www_editPageSave &www_pastePage &www_moveTreePageUp + &www_moveTreePageDown); + +#------------------------------------------------------------------- +sub _movePageDown { + my ($pageId,$parentId) = @_; + my (@data, $thisSeq); + if (WebGUI::Privilege::canEditPage()) { + ($thisSeq) = WebGUI::SQL->quickArray("select sequenceNumber from page where pageId=$pageId"); + @data = WebGUI::SQL->quickArray("select pageId from page where parentId=$parentId and sequenceNumber=$thisSeq+1"); + if ($data[0] ne "") { + WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber+1 where pageId=$pageId"); + WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber-1 where pageId=$data[0]"); + } + return ""; + } else { + return WebGUI::Privilege::insufficient(); + } +} + +#------------------------------------------------------------------- +sub _movePageUp { + my ($pageId,$parentId) = @_; + my (@data, $thisSeq); + if (WebGUI::Privilege::canEditPage()) { + ($thisSeq) = WebGUI::SQL->quickArray("select sequenceNumber from page where pageId=$pageId"); + @data = WebGUI::SQL->quickArray("select pageId from page where parentId=$parentId and sequenceNumber=$thisSeq-1"); + if ($data[0] ne "") { + WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber-1 where pageId=$pageId"); + WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber+1 where pageId=$data[0]"); + } + return ""; + } else { + return WebGUI::Privilege::insufficient(); + } +} #------------------------------------------------------------------- sub _recursivelyChangePrivileges { @@ -144,6 +180,8 @@ sub _traversePageTree { $output .= $depth .pageIcon() .deleteIcon('op=deletePage',$page{urlizedTitle}) + .moveUpIcon(sprintf('op=moveTreePageUp&pageId=%s&parentId=%s',$page{pageId},$_[0]),$page{urlizedTitle}) + .moveDownIcon(sprintf('op=moveTreePageDown&pageId=%s&parentId=%s',$page{pageId},$_[0]),$page{urlizedTitle}) .editIcon('op=editPage',$page{urlizedTitle}) .' '.$page{title}.'
'; $b = WebGUI::SQL->read("select * from wobject where pageId=$page{pageId}"); @@ -246,6 +284,7 @@ sub www_editPage { } else { %page = %{$session{page}}; ($childCount) = WebGUI::SQL->quickArray("select count(*) from page where parentId=$page{pageId}"); + $page{hideFromNavigation} = 0; } $page{endDate} = (addToDate(time(),10)) if ($page{endDate} < 0); $output = helpIcon(1); @@ -265,29 +304,17 @@ sub www_editPage { -value=>$page{menuTitle}, -uiLevel=>1 ); - $f->getTab("properties")->text( - -name=>"urlizedTitle", - -label=>WebGUI::International::get(104), - -value=>$page{urlizedTitle}, - -uiLevel=>3 - ); - $f->getTab("properties")->url( - -name=>"redirectURL", - -label=>WebGUI::International::get(715), - -value=>$page{redirectURL}, - -uiLevel=>9 - ); $f->getTab("properties")->yesNo( -name=>"hideFromNavigation", -value=>$page{hideFromNavigation}, -label=>WebGUI::International::get(886), -uiLevel=>6 ); - $f->getTab("properties")->yesNo( - -name=>"newWindow", - -value=>$page{newWindow}, - -label=>WebGUI::International::get(940), - -uiLevel=>6 + $f->getTab("properties")->text( + -name=>"urlizedTitle", + -label=>WebGUI::International::get(104), + -value=>$page{urlizedTitle}, + -uiLevel=>3 ); $f->getTab("properties")->select( -name=>"languageId", @@ -296,6 +323,12 @@ sub www_editPage { -uiLevel=>1, -options=>WebGUI::International::getLanguages() ); + $f->getTab("properties")->url( + -name=>"redirectURL", + -label=>WebGUI::International::get(715), + -value=>$page{redirectURL}, + -uiLevel=>9 + ); $f->getTab("properties")->textarea( -name=>"synopsis", -label=>WebGUI::International::get(412), @@ -449,7 +482,6 @@ sub www_editPageSave { ownerId=$session{form}{ownerId}, groupIdView=$session{form}{groupIdView}, groupIdEdit=$session{form}{groupIdEdit}, - newWindow=$session{form}{newWindow}, hideFromNavigation=$session{form}{hideFromNavigation}, startDate=$session{form}{startDate}, endDate=$session{form}{endDate}, @@ -476,34 +508,24 @@ sub www_editPageSave { #------------------------------------------------------------------- sub www_movePageDown { - my (@data, $thisSeq); - if (WebGUI::Privilege::canEditPage()) { - ($thisSeq) = WebGUI::SQL->quickArray("select sequenceNumber from page where pageId=$session{page}{pageId}"); - @data = WebGUI::SQL->quickArray("select pageId from page where parentId=$session{page}{parentId} and sequenceNumber=$thisSeq+1"); - if ($data[0] ne "") { - WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber+1 where pageId=$session{page}{pageId}"); - WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber-1 where pageId=$data[0]"); - } - return ""; - } else { - return WebGUI::Privilege::insufficient(); - } + return _movePageDown($session{page}{pageId},$session{page}{parentId}); } #------------------------------------------------------------------- sub www_movePageUp { - my (@data, $thisSeq); - if (WebGUI::Privilege::canEditPage()) { - ($thisSeq) = WebGUI::SQL->quickArray("select sequenceNumber from page where pageId=$session{page}{pageId}"); - @data = WebGUI::SQL->quickArray("select pageId from page where parentId=$session{page}{parentId} and sequenceNumber=$thisSeq-1"); - if ($data[0] ne "") { - WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber-1 where pageId=$session{page}{pageId}"); - WebGUI::SQL->write("update page set sequenceNumber=sequenceNumber+1 where pageId=$data[0]"); - } - return ""; - } else { - return WebGUI::Privilege::insufficient(); - } + return _movePageUp($session{page}{pageId},$session{page}{parentId}); +} + +#------------------------------------------------------------------- +sub www_moveTreePageUp { + my $output = _movePageUp($session{form}{pageId},$session{form}{parentId}); + return $output ? $output : www_viewPageTree(); +} + +#------------------------------------------------------------------- +sub www_moveTreePageDown { + my $output = _movePageDown($session{form}{pageId},$session{form}{parentId}); + return $output ? $output : www_viewPageTree(); } #-------------------------------------------------------------------