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.9 -r1.10
--- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 10 Aug 2006 12:36:48 -0000 1.9
+++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 17 Aug 2006 01:44:26 -0000 1.10
@@ -55,80 +55,89 @@
set tags ""
set no_tags 1
if {[$package_id get_parameter "use_tags" 1] &&
- ![my exists_query_parameter no_tags]} {
+ ![my exists_query_parameter no_tags]} {
# only activate tags when the user is logged in
- set no_tags [expr {[ad_conn user_id] == 0}]
+ set no_tags [expr {[::xo::cc user_id] == 0}]
set tags ""
if {!$no_tags} {
- ::xowiki::Page requireJS "/resources/xowiki/get-http-object.js"
- set entries [list]
- set tags [lsort [::xowiki::Page get_tags -user_id [ad_conn user_id] \
- -item_id $item_id -package_id $package_id]]
- set href [$package_id package_url]weblog?summary=1
- foreach tag $tags {lappend entries "$tag"}
- set tags_with_links [join $entries {, }]
+ ::xowiki::Page requireJS "/resources/xowiki/get-http-object.js"
+ set entries [list]
+ set tags [lsort [::xowiki::Page get_tags -user_id [::xo::cc user_id] \
+ -item_id $item_id -package_id $package_id]]
+ set href [$package_id package_url]weblog?summary=1
+ foreach tag $tags {lappend entries "$tag"}
+ set tags_with_links [join $entries {, }]
}
}
my log "--after tags"
- set return_url [$package_id url] ;# for the time being
-
- if {[$package_id get_parameter "use_notifications" 1]} {
- set notification_type [notification::type::get_type_id -short_name xowiki_notif]
- set notification_subscribe_link [export_vars -base /notifications/request-new \
- {return_url
- {pretty_name "Subscribe the xowiki instance"} \
- {type_id $notification_type}
- {object_id $package_id}}]
- set notification_image ""
+ #set return_url [$package_id url] ;# for the time being
+ if {[my exists_query_parameter return_url]} {
+ set return_url [my query_parameter return_url]
}
+
+
+ if {[$package_id get_parameter "use_notifications" 1]} {
+ set notification_type [notification::type::get_type_id -short_name xowiki_notif]
+ set notification_text "Subscribe the XoWiki instance"
+ set notification_subscribe_link [export_vars -base /notifications/request-new \
+ {return_url
+ {pretty_name $notification_text}
+ {type_id $notification_type}
+ {object_id $package_id}}]
+ set notification_image ""
+ }
my log "--after notifications [info exists notification_image]"
if {[$package_id get_parameter "show_per_object_categories" 1]} {
set entries [list]
set href [$package_id package_url]weblog?summary=1
foreach cat_id [category::get_mapped_categories $item_id] {
- foreach {category_id category_name tree_id tree_name} [category::get_data $cat_id] break
- my log "--cat $cat_id $category_id $category_name $tree_id $tree_name"
- set entry "$category_name ($tree_name)"
- if {[info exists notification_image]} {
- set cat_notif_link [export_vars -base /notifications/request-new \
- {return_url \
- {pretty_name "Category $category_name in tree $tree_name"} \
- {type_id $notification_type} \
- {object_id $category_id}}]
- append entry "$notification_image"
- }
- lappend entries $entry
+ foreach {category_id category_name tree_id tree_name} [category::get_data $cat_id] break
+ my log "--cat $cat_id $category_id $category_name $tree_id $tree_name"
+ set entry "$category_name ($tree_name)"
+ if {[info exists notification_image]} {
+ set notification_text "Subscribe category $category_name in tree $tree_name"
+ set cat_notif_link [export_vars -base /notifications/request-new \
+ {return_url \
+ {pretty_name $notification_text} \
+ {type_id $notification_type} \
+ {object_id $category_id}}]
+ append entry " " \
+ ""
+ }
+ lappend entries $entry
}
set per_object_categories_with_links [join $entries {, }]
}
my log "--after tags"
if {[$package_id get_parameter "use_gc"] &&
- ![my exists_query_parameter no_gc]} {
- set gc_link [general_comments_create_link -object_name $title $item_id $return_url]
- set gc_comments [general_comments_get_comments $item_id $return_url]
+ ![my exists_query_parameter no_gc]} {
+ set gc_return_url [$package_id url]
+ set gc_link [general_comments_create_link -object_name $title $item_id $gc_return_url]
+ set gc_comments [general_comments_get_comments $item_id $gc_return_url]
} else {
set gc_link ""
set gc_comments ""
}
my log "--after gc title=$title"
-
set header_stuff [::xowiki::Page header_stuff]
set master [my query_parameter "master" 1]
- if {[my exists_query_parameter "edit_return_url"]} {
- set return_url [my query_parameter "edit_return_url"]
- }
+ #if {[my exists_query_parameter "edit_return_url"]} {
+ # set return_url [my query_parameter "edit_return_url"]
+ #}
if {$master} {
set context [list $title]
set object_type [my info class]
set rev_link [my make_link [self] revisions]
set edit_link [my make_link [self] edit return_url]
- set delete_link [my make_link [self] delete]
- set new_link [my make_link $package_id edit-new object_type]
+ set delete_link [my make_link [self] delete return_url]
+ set new_link [my make_link $package_id edit-new object_type return_url]
set admin_link [my make_link -privilege admin -url admin/ $package_id {} {}]
set index_link [my make_link -privilege public -url "" $package_id {} {}]
set save_tag_link [my make_link [self] save-tags]
@@ -139,29 +148,29 @@
set page [self]
if {$template ne ""} {
- set __including_page $page
- set __adp_stub [acs_root_dir]/packages/xowiki/www/view-default
- set template_code [template::adp_compile -string $template]
- if {[catch {set content [template::adp_eval template_code]} errmsg]} {
- set content "Error in Page $name: $errmsg
$content"
- } else {
- ns_return 200 text/html $content
- }
+ set __including_page $page
+ set __adp_stub [acs_root_dir]/packages/xowiki/www/view-default
+ set template_code [template::adp_compile -string $template]
+ if {[catch {set content [template::adp_eval template_code]} errmsg]} {
+ ns_return 200 text/html "Error in Page $name: $errmsg
$template"
+ } else {
+ ns_return 200 text/html $content
+ }
} else {
- # use adp file
- set template_file [my query_parameter "template_file" \
- [$folder_id get_payload template_file view-default]]
- if {![regexp {^[./]} $template_file]} {
- set template_file /packages/xowiki/www/$template_file
- }
- $package_id return_page -adp $template_file -variables {
- references name title item_id page context header_stuff return_url
- content references lang_links package_id
- rev_link edit_link delete_link new_link admin_link index_link
- tags no_tags tags_with_links save_tag_link popular_tags_link
- per_object_categories_with_links
- gc_link gc_comments notification_subscribe_link notification_image
- }
+ # use adp file
+ set template_file [my query_parameter "template_file" \
+ [::$package_id get_parameter template_file view-default]]
+ if {![regexp {^[./]} $template_file]} {
+ set template_file /packages/xowiki/www/$template_file
+ }
+ $package_id return_page -adp $template_file -variables {
+ references name title item_id page context header_stuff return_url
+ content references lang_links package_id
+ rev_link edit_link delete_link new_link admin_link index_link
+ tags no_tags tags_with_links save_tag_link popular_tags_link
+ per_object_categories_with_links
+ gc_link gc_comments notification_subscribe_link notification_image
+ }
}
} else {
ns_return 200 text/html $content
@@ -172,19 +181,11 @@
my instvar package_id item_id revision_id
$package_id instvar folder_id ;# this is the root folder
- #-query {
- # item_id:integer,optional
- # name:optional
- # last_page_id:integer,optional
- # folder_id:integer,optional
- # {object_type:optional ::xowiki::Page}
- # page_template:integer,optional
- # return_url:optional
- #}
-
# set some default values if they are provided
foreach key {name title last_page_id} {
- if {[$package_id exists_query_parameter $key]} {my set $key [$package_id query_parameter $key]}
+ if {[$package_id exists_query_parameter $key]} {
+ my set $key [$package_id query_parameter $key]
+ }
}
set object_type [my info class]
@@ -205,30 +206,33 @@
set fs_folder_id ""
if {[info commands dotlrn_fs::get_community_shared_folder] ne ""} {
set fs_folder_id [dotlrn_fs::get_community_shared_folder \
- -community_id [dotlrn_community::get_community_id]]
+ -community_id [dotlrn_community::get_community_id]]
}
- # the following line is like [$package_id url], but works as well with renames of the object
+ # the following line is like [$package_id url], but works as well with renamed objects
set myurl [expr {$new ? [$package_id url] :
- [Page pretty_link -package_id $package_id [my form_parameter name]]}]
+ [$package_id pretty_link [my form_parameter name]]}]
+
+ set myurl [$package_id pretty_link [my form_parameter name]]
+
if {[my exists_query_parameter "return_url"]} {
set submit_link [my query_parameter "return_url" $myurl]
set return_url $submit_link
} else {
set submit_link $myurl
}
- my log "--u sumit_link=$submit_link qp=[my query_parameter return_url]"
+ #my log "--u sumit_link=$submit_link qp=[my query_parameter return_url]"
# 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
variable ::template::parse_level
lappend parse_level [info level]
set action_vars [expr {$new ? "{edit-new 1} object_type return_url" : "{m edit} return_url"}]
[$object_type getFormClass -data [self]] create ::xowiki::f1 -volatile \
- -action [export_vars -base [$package_id url] $action_vars] \
- -data [self] \
- -folderspec [expr {$fs_folder_id ne "" ?"folder_id $fs_folder_id":""}] \
- -submit_link $submit_link
+ -action [export_vars -base [$package_id url] $action_vars] \
+ -data [self] \
+ -folderspec [expr {$fs_folder_id ne "" ?"folder_id $fs_folder_id":""}] \
+ -submit_link $submit_link
if {[info exists return_url]} {
::xowiki::f1 generate -export [list [list return_url $return_url]]
@@ -247,9 +251,9 @@
set index_link [my make_link -privilege public -url "" $package_id {} {}]
set html [$package_id return_page -adp /packages/xowiki/www/edit \
- -form f1 \
- -variables {item_id edit_form_page_title context formTemplate
- view_link back_link rev_link index_link}]
+ -form f1 \
+ -variables {item_id edit_form_page_title context formTemplate
+ view_link back_link rev_link index_link}]
template::util::lpop parse_level
my log "--e html length [string length $html]"
return $html
@@ -259,9 +263,9 @@
my instvar text mime_type package_id item_id revision_id
$package_id set mime_type $mime_type
set use_bg_delivery [expr {![catch {ns_conn contentsentlength}] &&
- [info command ::throttle] ne ""}]
+ [info command ::throttle] ne ""}]
$package_id set delivery \
- [expr {$use_bg_delivery ? "ns_returnfile" : "ad_returnfile_background"}]
+ [expr {$use_bg_delivery ? "ad_returnfile_background" : "ns_returnfile"}]
#my log "--F FILE=[my full_file_name]"
return [my full_file_name]
}
@@ -284,7 +288,7 @@
set page_id [my query_parameter "page_id"]
ns_cache flush xotcl_object_cache ::$item_id
ad_returnredirect [my query_parameter "return_url" \
- [export_vars -base [$package_id url] {{m revisions}}]]
+ [export_vars -base [$package_id url] {{m revisions}}]]
}
@@ -295,30 +299,18 @@
ns_cache flush xotcl_object_cache ::$item_id
ns_cache flush xotcl_object_cache ::$revision_id
ad_returnredirect [my query_parameter "return_url" \
- [export_vars -base [$package_id url] {{m revisions}}]]
+ [export_vars -base [$package_id url] {{m revisions}}]]
}
Page instproc delete {} {
my instvar package_id item_id name parent_id
- my log "--D trying to delete $item_id"
- ::Generic::CrItem delete -item_id $item_id
- ns_cache flush xotcl_object_cache ::$item_id
- # we should probably flush as well cached revisions
- if {$name eq "::$parent_id"} {
- my log "--D deleting folder object ::$parent_id"
- ns_cache flush xotcl_object_cache ::$parent_id
- ns_cache flush xotcl_object_type_cache item_id-of-$parent_id
- ::$parent_id destroy
- }
- set key link-*-$name-$parent_id
- foreach n [ns_cache names xowiki_cache $key] {ns_cache flush xowiki_cache $n}
- ad_returnredirect [my query_parameter "return_url" [$package_id package_url]]
+ $package_id delete -name $name -item_id $item_id
}
Page instproc save-tags {} {
my instvar package_id item_id
- ::xowiki::Page save_tags -user_id [ad_conn user_id] -item_id $item_id \
- -package_id $package_id [my form_parameter tags]
+ ::xowiki::Page save_tags -user_id [::xo::cc user_id] -item_id $item_id \
+ -package_id $package_id [my form_parameter tags]
ad_returnredirect [my query_parameter "return_url" [$package_id url]]
}
@@ -328,16 +320,11 @@
set href [$package_id package_url]weblog?summary=1
set entries [list]
db_foreach get_popular_tags \
- "select count(*) as nr,tag from xowiki_tags \
+ "select count(*) as nr,tag from xowiki_tags \
where item_id=$item_id group by tag order by nr limit $limit" {
- lappend entries "$tag ($nr)"
- }
+ lappend entries "$tag ($nr)"
+ }
ns_return 200 text/html "[_ xowiki.popular_tags_label]: [join $entries {, }]"
}
- Class Page::skin=portlet -instproc render {} {
- return "