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 "$notification_text" + } 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 "
\ - [my title]
\ -
[next]
" - } }