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