Index: openacs-4/packages/xowf/xowf.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/xowf.info,v diff -u -N -r1.3.2.9 -r1.3.2.10 --- openacs-4/packages/xowf/xowf.info 27 Feb 2017 07:42:03 -0000 1.3.2.9 +++ openacs-4/packages/xowf/xowf.info 3 May 2017 07:12:51 -0000 1.3.2.10 @@ -10,15 +10,15 @@ t xowf - + Gustaf Neumann XoWiki Content Flow - an XoWiki based workflow system implementing state-based behavior of wiki pages and forms 2017-02-27 WU Vienna 2 - - + + Index: openacs-4/packages/xowf/tcl/xowf-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/tcl/xowf-procs.tcl,v diff -u -N -r1.3.2.16 -r1.3.2.17 --- openacs-4/packages/xowf/tcl/xowf-procs.tcl 2 May 2017 13:51:25 -0000 1.3.2.16 +++ openacs-4/packages/xowf/tcl/xowf-procs.tcl 3 May 2017 07:12:52 -0000 1.3.2.17 @@ -1329,8 +1329,7 @@ WorkflowPage instproc create-or-use_view {-package_id:required -parent_id:required name } { # the link should be able to view return_url and template_file - set path [export_vars -no_base_encode -base [$package_id pretty_link -parent_id $parent_id $lang:$stripped_name] {}] - return [$package_id returnredirect $path] + return [$package_id returnredirect [$package_id pretty_link -parent_id $parent_id $lang:$stripped_name]] } WorkflowPage instproc www-create-or-use { Index: openacs-4/packages/xowiki/xowiki.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v diff -u -N -r1.153.2.31 -r1.153.2.32 --- openacs-4/packages/xowiki/xowiki.info 27 Feb 2017 07:42:03 -0000 1.153.2.31 +++ openacs-4/packages/xowiki/xowiki.info 3 May 2017 07:12:52 -0000 1.153.2.32 @@ -10,7 +10,7 @@ t xowiki - + Gustaf Neumann A xotcl-based enterprise wiki system with multiple object types 2017-02-27 @@ -55,7 +55,7 @@ BSD-Style 2 - + Index: openacs-4/packages/xowiki/tcl/folder-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/folder-procs.tcl,v diff -u -N -r1.33.2.12 -r1.33.2.13 --- openacs-4/packages/xowiki/tcl/folder-procs.tcl 2 May 2017 13:51:25 -0000 1.33.2.12 +++ openacs-4/packages/xowiki/tcl/folder-procs.tcl 3 May 2017 07:12:52 -0000 1.33.2.13 @@ -615,6 +615,7 @@ -parent_id $logical_folder_id \ -context_url $url \ -folder_ids $folder_ids \ + -path_encode false \ $name] array set icon [$c render_icon] @@ -623,27 +624,20 @@ set prettyName $name } - #set delete_link [export_vars -base [$package_id package_url] \ - # [list {delete 1} \ - # [list item_id [$c item_id]] \ - # [list name [$c pretty_link]] return_url]] - - set delete_link [export_vars -no_base_encode -base $page_link {{m delete} return_url}] - $t add \ -ID [$c name] \ -name $prettyName \ - -name.href [export_vars -no_base_encode -base $page_link {template_file html-content}] \ + -name.href [export_vars -base $page_link {template_file html-content}] \ -name.title [$c set title] \ -object_type $icon(text) \ -object_type.richtext $icon(is_richtext) \ -last_modified [$c set last_modified] \ -edit "" \ - -edit.href [export_vars -no_base_encode -base $page_link {{m edit} return_url}] \ + -edit.href [export_vars -base $page_link {{m edit} return_url}] \ -edit.title #xowiki.edit# \ -mod_user [::xo::get_user_name [$c set creation_user]] \ -delete "" \ - -delete.href $delete_link \ + -delete.href [export_vars $page_link {{m delete} return_url}] \ -delete.title #xowiki.delete# if {$::__xowiki_with_publish_status} { Index: openacs-4/packages/xowiki/tcl/form-field-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/form-field-procs.tcl,v diff -u -N -r1.248.2.52 -r1.248.2.53 --- openacs-4/packages/xowiki/tcl/form-field-procs.tcl 2 May 2017 13:51:25 -0000 1.248.2.52 +++ openacs-4/packages/xowiki/tcl/form-field-procs.tcl 3 May 2017 07:12:52 -0000 1.248.2.53 @@ -1137,7 +1137,7 @@ # if {[my cleanup]} { set return_url [$package_id query_parameter "return_url" [$parent_id pretty_link]] - $package_id returnredirect [export_vars -no_base_encode -base [$object pretty_link] [list {m delete} return_url]] + $package_id returnredirect [$object pretty_link -query [export_vars {m delete} return_url]] } } } Index: openacs-4/packages/xowiki/tcl/includelet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/includelet-procs.tcl,v diff -u -N -r1.200.2.31 -r1.200.2.32 --- openacs-4/packages/xowiki/tcl/includelet-procs.tcl 2 May 2017 13:51:25 -0000 1.200.2.31 +++ openacs-4/packages/xowiki/tcl/includelet-procs.tcl 3 May 2017 07:12:52 -0000 1.200.2.32 @@ -4013,7 +4013,7 @@ } #my log "queries done" if {[info exists wf]} { - set wf_link [$package_id pretty_link -parent_id $parent_id $wf] + set wf_link [$package_id pretty_link -parent_id $parent_id -path_encode false $wf] } foreach p [$items children] { @@ -4026,7 +4026,7 @@ set page_link [$p pretty_link] if {[info exists wf]} { - set view_link [export_vars -no_base_encode -base $wf_link {{m create-or-use} {p.form "[$p name]"}}] + set view_link [export_vars -base $wf_link {{m create-or-use} {p.form "[$p name]"}}] } else { set view_link $page_link } 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 -N -r1.291.2.34 -r1.291.2.35 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 2 May 2017 07:23:36 -0000 1.291.2.34 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 3 May 2017 07:12:52 -0000 1.291.2.35 @@ -290,7 +290,19 @@ return "" } - Package instproc folder_path {{-parent_id ""} {-context_url ""} {-folder_ids ""}} { + Package ad_instproc folder_path { + {-parent_id ""} + {-context_url ""} + {-folder_ids ""} + {-path_encode:boolean true} + } { + + Constuct a folder path from a hierachy of xowiki objects. It is + designed to work with linked objects, respecting logical and + physical parent IDs. The result is URL encoded, unless path_encode + is set to false. + + } { # # handle different parent_ids # @@ -375,9 +387,13 @@ } } } - + + set name [$fo name] + if {$path_encode} { + set name [ad_urlencode_path $name] + } # prepend always the actual folder name - set path [ad_urlencode_path [$fo name]]/$path + set path $name/$path if {[my folder_id] == [$fo parent_id]} { #my msg ".... my folder_id [my folder_id] == $fo parentid" @@ -422,11 +438,14 @@ {-download false} {-context_url ""} {-folder_ids ""} + {-path_encode:boolean true} name } { + Generate a (minimal) link to a wiki page with the specified name. - Pratically all links in the xowiki systems are generated through this - function. + Pratically all links in the xowiki systems are generated through + this function. The function returns the URL path urlencoded, + unless path_encode is set to false. @param anchor anchor to be added to the link @param absolute make an absolute link (including protocol and host) @@ -452,7 +471,11 @@ set package_prefix [my package_url] } #my msg "lang=$lang, default_lang=$default_lang, name=$name, parent_id=$parent_id, package_prefix=$package_prefix" - set encoded_name [ad_urlencode_path $name] + if {$path_encode} { + set encoded_name [ad_urlencode_path $name] + } else { + set encoded_name $name + } if {$parent_id eq -100} { # In case, we have a cr-toplevel entry, we assume, we can @@ -465,7 +488,7 @@ ns_log notice "pretty_link of $name: you should consider to pass a parent_id to support folders" set parent_id [my folder_id] } - set folder [my folder_path -parent_id $parent_id -folder_ids $folder_ids] + set folder [my folder_path -parent_id $parent_id -folder_ids $folder_ids -path_encode $path_encode] set pkg [$parent_id package_id] if {![my isobject ::$pkg]} { ::xowiki::Package initialize -package_id $pkg -init_url false -keep_cc true Index: openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl,v diff -u -N -r1.134.2.9 -r1.134.2.10 --- openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl 2 May 2017 13:51:25 -0000 1.134.2.9 +++ openacs-4/packages/xowiki/tcl/xowiki-form-procs.tcl 3 May 2017 07:12:52 -0000 1.134.2.10 @@ -697,8 +697,9 @@ if {[$data exists_query_parameter return_url]} { set return_url [$data query_parameter return_url] } - set link [$data pretty_link] - my submit_link [export_vars -no_base_encode -base $link {{m edit} page_template return_url item_id}] + set submit_link [$data pretty_link -query [export_vars { + {m edit} page_template return_url item_id + }]] # my log "-- submit_link = [my submit_link]" } 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 -N -r1.327.2.33 -r1.327.2.34 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 2 May 2017 13:30:55 -0000 1.327.2.33 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 3 May 2017 07:12:52 -0000 1.327.2.34 @@ -252,8 +252,9 @@ set form_redirect [my form_parameter "__form_redirect" ""] if {$form_redirect eq ""} { - set form_redirect [export_vars -no_base_encode -base [$f pretty_link] \ - [list [list m $view_method] return_url template_file title detail_link text]] + set form_redirect [$f pretty_link -query [export_vars { + {m $view_method} return_url template_file title detail_link text + }]] } $package_id returnredirect $form_redirect set package_id $original_package_id Index: openacs-4/packages/xowiki/www/admin/list.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/list.tcl,v diff -u -N -r1.36.2.6 -r1.36.2.7 --- openacs-4/packages/xowiki/www/admin/list.tcl 2 May 2017 13:51:25 -0000 1.36.2.6 +++ openacs-4/packages/xowiki/www/admin/list.tcl 3 May 2017 07:12:52 -0000 1.36.2.7 @@ -123,6 +123,9 @@ ::xo::Package initialize -package_id $package_id -keep_cc true } set page_link [::$package_id pretty_link -parent_id $parent_id $name] + set edit_link [::$package_id pretty_link -parent_id $parent_id \ + -query [export_vars {{m edit} return_url}] \ + $name] set name [::$package_id external_name -parent_id $parent_id $name] ::template::t1 add \ @@ -134,11 +137,11 @@ -syndicated [info exists syndicated($revision_id)] \ -size [expr {$content_length ne "" ? $content_length : 0}] \ -edit "" \ - -edit.href [export_vars -no_base_encode -base $page_link {{m edit} return_url}] \ + -edit.href $edit_link \ -edit.title #xowiki.edit# \ -mod_user [::xo::get_user_name $creation_user] \ -delete "" \ - -delete.href [export_vars -base [$package_id package_url] {{delete 1} item_id name return_url}] \ + -delete.href [export_vars -base [$package_id package_url] {{delete 1} item_id name return_url}] \ -delete.title #xowiki.delete# if {$::individual_permissions} { Index: openacs-4/packages/xowiki/www/portlets/weblog-mini-calendar.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/portlets/weblog-mini-calendar.tcl,v diff -u -N -r1.18.2.9 -r1.18.2.10 --- openacs-4/packages/xowiki/www/portlets/weblog-mini-calendar.tcl 2 May 2017 13:51:25 -0000 1.18.2.9 +++ openacs-4/packages/xowiki/www/portlets/weblog-mini-calendar.tcl 3 May 2017 07:12:52 -0000 1.18.2.10 @@ -4,13 +4,15 @@ set parent_id [$__including_page set parent_id] set including_item_id [$__including_page set item_id] -if {(![info exists base_url] || $base_url eq "")} { - if {![info exists page]} {set page [$package_id get_parameter weblog_page]} - set base_url [$package_id pretty_link -parent_id $parent_id $page] +if {![info exists base_url] || $base_url eq ""} { + if {![info exists page]} { + set page [$package_id get_parameter weblog_page] + } + set base_url [$package_id pretty_link -parent_id $parent_id -path_encode false $page] } set date [ns_queryget date] -if {(![info exists date] || $date eq "")} { +if {$date eq ""} { set date [dt_sysdate] } @@ -84,13 +86,13 @@ set prev_month_url "" } else { set prev_month [clock format $prev_mon -format "%Y-%m-%d"] - set prev_month_url [export_vars -no_base_encode -base $base_url {{date $prev_month} page_num summary}] + set prev_month_url [export_vars -base $base_url {{date $prev_month} page_num summary}] } if {$next_mon > [clock scan $latest_date]} { set next_month_url "" } else { set next_month [clock format $next_mon -format "%Y-%m-%d"] - set next_month_url [export_vars -no_base_encode -base $base_url {{date $next_month} page_num summary}] + set next_month_url [export_vars -base $base_url {{date $next_month} page_num summary}] } @@ -154,7 +156,7 @@ } else { set class inactive } - set url [export_vars -no_base_encode -base $base_url {{date $ansi_date} summary}] + set url [export_vars -base $base_url {{date $ansi_date} summary}] set id minicalendar-$ansi_date if {$count ne ""} { @@ -179,7 +181,7 @@ set sysdate [dt_sysdate] -set today_url [export_vars -no_base_encode -base $base_url {{date $sysdate} page_num}] +set today_url [export_vars -base $base_url {{date $sysdate} page_num}] if {$sysdate eq $date} { set today_p t } else {