Index: openacs-4/packages/layout-manager/lib/page-configure.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/layout-manager/lib/page-configure.adp,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/layout-manager/lib/page-configure.adp 19 Jan 2010 22:52:47 -0000 1.4 +++ openacs-4/packages/layout-manager/lib/page-configure.adp 8 Feb 2010 00:05:13 -0000 1.5 @@ -78,15 +78,13 @@
#layout-manager.no_elements# - -
- - - - - -
-
+
+ + + + + +
Index: openacs-4/packages/layout-manager/lib/pageset-configure-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/layout-manager/lib/pageset-configure-2.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/layout-manager/lib/pageset-configure-2.tcl 19 Jan 2010 22:52:47 -0000 1.3 +++ openacs-4/packages/layout-manager/lib/pageset-configure-2.tcl 8 Feb 2010 00:05:13 -0000 1.4 @@ -112,6 +112,7 @@ } rename_page { + set name [layout::page::unique_name -name $name] layout::page::set_column_value -page_id $page_id -column name -value $name } @@ -127,6 +128,7 @@ regsub -all -nocase { } [string trim $url_name] {-} url_name regsub -all {[^[:alnum:]\-]} $url_name {} url_name + set url_name [layout::page::unique_name -url_name $url_name] layout::page::set_column_value -page_id $page_id -column url_name -value $url_name } Index: openacs-4/packages/layout-manager/tcl/page-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/layout-manager/tcl/page-procs.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/layout-manager/tcl/page-procs.tcl 20 Jan 2010 02:11:57 -0000 1.5 +++ openacs-4/packages/layout-manager/tcl/page-procs.tcl 8 Feb 2010 00:05:53 -0000 1.6 @@ -9,6 +9,32 @@ namespace eval layout::page {} +ad_proc layout::page::unique_name { + -name:required +} { + Guarantee that name is unique +} { + set try 2 + while { [db_0or1row try_name {}] } { + set name "${name}($try)" + incr try + } + return $name +} + +ad_proc layout::page::unique_url_name { + -url_name:required +} { + Guarantee that url_name is unique +} { + set try 2 + while { [db_0or1row try_url_name {}] } { + set url_name "${url_name}($try)" + incr try + } + return $url_name +} + ad_proc layout::page::new { -pageset_id:required -name:required @@ -28,6 +54,10 @@ if { $url_name eq "" } { set url_name [util::name_to_path -name [lang::util::localize $name]] } + + set name [layout::page::unique_name -name $name] + set url_name [layout::page::unique_url_name -url_name $url_name] + db_dml insert_page {} layout::pageset::flush -pageset_id $pageset_id return $page_id @@ -49,6 +79,7 @@ foreach page $page_list { foreach {update_page_id sort_key} $page {} db_dml update_page {} + layout::page::flush -page_id $update_page_id } } Index: openacs-4/packages/layout-manager/tcl/page-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/layout-manager/tcl/page-procs.xql,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/layout-manager/tcl/page-procs.xql 19 Jan 2010 22:52:48 -0000 1.4 +++ openacs-4/packages/layout-manager/tcl/page-procs.xql 8 Feb 2010 00:05:53 -0000 1.5 @@ -2,6 +2,22 @@ + + + select 1 + from layout_pages + where name = :name + + + + + + select 1 + from layout_pages + where url_name = :url_name + + + insert into layout_pages