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 {