Index: openacs-4/packages/xowiki/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/package-procs.tcl,v diff -u -r1.155 -r1.156 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 12 Dec 2008 12:17:30 -0000 1.155 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 12 Dec 2008 13:44:44 -0000 1.156 @@ -146,6 +146,9 @@ # handle different parent_ids # if {$parent_id ne "" && $parent_id != [my folder_id]} { + # The item might be in a folder along the folder path. so it + # will be found by the object resolver. For the time being, we + # do nothing more about this. if {[::xo::db::sql::content_folder is_folder -item_id $parent_id]} { return "" } else { @@ -1263,7 +1266,8 @@ delete {{package_id admin}} save-tags login popular-tags login - create-new {{item_id write}} + create-new {{item_id write}} + create-or-use {{item_id write}} } -set default_permission {{package_id write}} Class Object -array set require_permission { @@ -1274,6 +1278,7 @@ } Class Form -array set require_permission { create-new {{item_id write}} + create-or-use {{item_id write}} list {{package_id read}} } } @@ -1311,6 +1316,7 @@ save-tags login popular-tags login create-new {{item_id write}} + create-or-use {{item_id write}} } Class Object -array set require_permission { @@ -1321,6 +1327,7 @@ } Class Form -array set require_permission { create-new {{item_id write}} + create-or-use {{item_id write}} list {{package_id read}} } } @@ -1356,6 +1363,7 @@ save-tags login popular-tags login create-new {{item_id write}} + create-or-use {{item_id write}} } Class Object -array set require_permission { @@ -1366,6 +1374,7 @@ } Class Form -array set require_permission { create-new {{item_id write}} + create-or-use {{item_id write}} list {{item_id read}} } } @@ -1408,6 +1417,7 @@ save-tags login popular-tags login create-new {{item_id write}} + create-or-use {{item_id write}} } Class Object -array set require_permission { @@ -1427,6 +1437,7 @@ edit admin list admin create-new {{item_id write}} + create-or-use {{item_id write}} } } Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v diff -u -r1.203 -r1.204 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 11 Dec 2008 00:37:10 -0000 1.203 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 12 Dec 2008 13:46:25 -0000 1.204 @@ -1667,7 +1667,13 @@ return [list] } - Page instproc create-new {{-view_method edit}} { + Page instproc create-or-use args { + my msg "" + # can be overloaded + eval my create-new $args + } + + Page instproc create-new {{-view_method edit} {-name ""}} { my instvar package_id set instance_attributes [my default_instance_attributes] set original_package_id $package_id @@ -1681,15 +1687,17 @@ if {[catch { ::xowiki::Package initialize \ -url $package_instance -user_id [::xo::cc user_id] \ - -actual_query ""} errorMsg]} { + -actual_query "" + } errorMsg]} { ns_log error "$errorMsg\n$::errorInfo" return [$original_package_id error_msg \ "Page '[my name]' invalid provided package instance=$package_instance

$errorMsg

"] } my parent_id [$package_id folder_id] } set f [FormPage new -destroy_on_cleanup \ - -name "" \ + -name $name \ + -text "" \ -package_id $package_id \ -parent_id [my parent_id] \ -nls_language [my nls_language] \ @@ -1701,6 +1709,9 @@ $f set state [my set state] } + # Make sure to load the instance attributes + $f array set __ia [$f instance_attributes] + # Call the application specific initialization, when a FormPage is # initially created. This is used to control the life-cycle of # FormPages.