Index: openacs-4/packages/xotcl-core/xotcl-core.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/xotcl-core.info,v diff -u -r1.92.2.1 -r1.92.2.2 --- openacs-4/packages/xotcl-core/xotcl-core.info 18 Aug 2015 17:33:59 -0000 1.92.2.1 +++ openacs-4/packages/xotcl-core/xotcl-core.info 24 Sep 2015 12:12:53 -0000 1.92.2.2 @@ -10,7 +10,7 @@ t xotcl - + Gustaf Neumann XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes) 2015-02-11 @@ -48,7 +48,7 @@ BSD-Style 2 - + Index: openacs-4/packages/xotcl-core/tcl/cr-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/cr-procs.tcl,v diff -u -r1.54 -r1.54.2.1 --- openacs-4/packages/xotcl-core/tcl/cr-procs.tcl 22 Jul 2015 19:13:39 -0000 1.54 +++ openacs-4/packages/xotcl-core/tcl/cr-procs.tcl 24 Sep 2015 12:12:53 -0000 1.54.2.1 @@ -1091,6 +1091,17 @@ my update_item_index } + # + # The method "changed_redirect_url" is a helper method for old-style + # wiki pages, still using ad_form. Form.edit_data calls this method + # after a rename operation to optionally redirect the browser after + # the edit operation to the new url, unless an explicit return_url + # was specified. + # + CrItem instproc changed_redirect_url {} { + return "" + } + CrItem instproc revisions {} { set isAdmin [acs_user::site_wide_admin_p] Index: openacs-4/packages/xotcl-core/tcl/generic-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/generic-procs.tcl,v diff -u -r1.97.2.1 -r1.97.2.2 --- openacs-4/packages/xotcl-core/tcl/generic-procs.tcl 24 Sep 2015 10:59:08 -0000 1.97.2.1 +++ openacs-4/packages/xotcl-core/tcl/generic-procs.tcl 24 Sep 2015 12:12:53 -0000 1.97.2.2 @@ -73,14 +73,6 @@ [list type [$class pretty_name]]] } -# It's a local variable that nobody uses... commented in doubt -# # check, if the specified fields are available from the data source -# # and ignore the unavailable entries -# set checked_fields [list] -# set available_atts [$class array names db_slot] -# #my log "-- available atts <$available_atts>" -# lappend available_atts [$class id_column] item_id - if {![my exists fields]} {my mkFields} #my log --fields=[my fields] } @@ -114,8 +106,19 @@ set old_name [::xo::cc form_parameter __object_name ""] set new_name [$data set name] if {$old_name ne $new_name} { + # + # The item was renamed. + # #my log "--- rename from $old_name to $new_name" $data rename -old_name $old_name -new_name $new_name + # + # Check, whether we have to change the redirect url due to + # renaming. When the method returns non-empty use this value. + # + set url [$data changed_redirect_url] + if {$url ne ""} { + my submit_link $url + } } } return [$data set [my get_id_field]] Index: openacs-4/packages/xowiki/xowiki.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v diff -u -r1.153.2.1 -r1.153.2.2 --- openacs-4/packages/xowiki/xowiki.info 18 Aug 2015 17:33:59 -0000 1.153.2.1 +++ openacs-4/packages/xowiki/xowiki.info 24 Sep 2015 12:12:53 -0000 1.153.2.2 @@ -10,7 +10,7 @@ t xowiki - + Gustaf Neumann A xotcl-based enterprise wiki system with multiple object types 2015-05-03 @@ -55,14 +55,14 @@ BSD-Style 2 - + - + Index: openacs-4/packages/xowiki/tcl/xowiki-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-procs.tcl,v diff -u -r1.485.2.7 -r1.485.2.8 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 3 Sep 2015 08:00:53 -0000 1.485.2.7 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 24 Sep 2015 12:12:53 -0000 1.485.2.8 @@ -4317,6 +4317,14 @@ category::map_object -remove_old -object_id [my item_id] $category_ids } + Page instproc rename {-old_name -new_name} { + [my package_id] flush_name_cache -name $old_name -parent_id [my parent_id] + next + ns_log notice "----- rename" + #ns_log notice [my serialize] + } + + Page instproc save_data {{-use_given_publish_date:boolean false} old_name category_ids} { #my log "-- [self args]" my unset_temporary_instance_variables @@ -4353,7 +4361,6 @@ my save -use_given_publish_date $use_given_publish_date if {$old_name ne $name} { - $package_id flush_name_cache -name $old_name -parent_id [my parent_id] my rename -old_name $old_name -new_name $name } } 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.327.2.8 -r1.327.2.9 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 18 Sep 2015 07:37:43 -0000 1.327.2.8 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 24 Sep 2015 12:12:53 -0000 1.327.2.9 @@ -566,6 +566,21 @@ } # + # The method "changed_redirect_url" is a helper method for old-style + # wiki pages, still using ad_form. Form.edit_data calls this method + # after a rename operation to optionally redirect the browser after + # the edit operation to the new url, unless an explicit return_url + # was specified. + # + Page instproc changed_redirect_url {} { + set package_id [my package_id] + if {[$package_id exists_query_parameter "return_url"]} { + return "" + } + return [my pretty_link] + } + + # # externally callable method: edit # @@ -594,7 +609,7 @@ # We have to do template mangling here; ad_form_template writes # form variables into the actual parselevel, so we have to be in # our own level in order to access an pass these. - lappend ::template::parse_level [info level] + lappend ::template::parse_level [info level] set action_vars [expr {$new ? "{edit-new 1} object_type return_url" : "{m edit} return_url"}] #my log "--formclass=[$object_type getFormClass -data [self]] ot=$object_type" @@ -619,14 +634,14 @@ } if {$fs_folder_id ne ""} {lappend folder_spec folder_id $fs_folder_id} - + [$object_type getFormClass -data [self]] create ::xowiki::f1 -volatile \ -action [export_vars -base [$package_id url] $action_vars] \ -data [self] \ -folderspec $folder_spec \ -submit_link $submit_link \ -autoname $autoname - + if {[info exists return_url]} { ::xowiki::f1 generate -export [list [list return_url $return_url]] } else {