From a4149b52441cdf4443a50bf72d7c275e3e196133 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Wed, 11 Aug 2004 13:40:40 +0000 Subject: [PATCH] Fixed bug 999799: Fixed Package deletion/copy bug in 6.1.1\nFixed bug 997885: Root move left bug.\nFixed a bug where makeUnique would result in an infinite loop. --- lib/WebGUI/Page.pm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/WebGUI/Page.pm b/lib/WebGUI/Page.pm index dda52a0e1..79e4b68f6 100644 --- a/lib/WebGUI/Page.pm +++ b/lib/WebGUI/Page.pm @@ -1018,7 +1018,7 @@ sub makeUnique { unless ($pageId eq "new") { $where .= " and pageId<>".$pageId; } - my ($test) = WebGUI::SQL->quickArray("select urlizedTitle from page ".$where); + my ($test) = WebGUI::SQL->quickArray("select urlizedTitle from page where urlizedTitle=".quote($url).$where); if ($test) { my @parts = split(/\./,$url); if ($parts[0] =~ /(.*)(\d+$)/) { @@ -1104,7 +1104,9 @@ sub move{ rgt end where - rgt between $updateRange"; + rgt between $updateRange or + lft between $updateRange"; + WebGUI::SQL->write($sql); # Set the parentId to the right node. @@ -1195,8 +1197,13 @@ sub moveUp { $self = shift; $mother = $self->getMother; - return 0 unless (defined $mother); + + # Don't move to an nonexistent node; + return 0 if (!defined $mother); + # Don't allow to move up if node is already a webguiroot; + return 0 if ($mother->get('pageId') == 0); + # Update depth, we do this before the move because now we know the rgt range of nodes # that change in depth. WebGUI::SQL->write("update page set depth=depth-1 where rgt between ".$self->get('lft')." and ".$self->get('rgt')); @@ -1229,7 +1236,9 @@ sub moveUp { parentId end where - rgt between ". $self->get('lft') ." and ". $mother->get('rgt'); + rgt between ". $self->get('lft') ." and ". $mother->get('rgt')." + lft between ". $self->get('lft') ." and ". $mother->get('rgt'); + WebGUI::SQL->write($sql); WebGUI::Page->recacheNavigation;