Index: openacs-4/packages/xowiki-portlet/www/xowiki-admin-portlet.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki-portlet/www/xowiki-admin-portlet.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/xowiki-portlet/www/xowiki-admin-portlet.tcl 27 Feb 2008 09:22:00 -0000 1.3 +++ openacs-4/packages/xowiki-portlet/www/xowiki-admin-portlet.tcl 9 Apr 2008 15:28:03 -0000 1.4 @@ -11,69 +11,75 @@ return_url:optional } -if {![exists_and_not_null package_id]} { - set package_id [dotlrn_community::get_community_id] +if {[exists_and_not_null package_id]} { + set xowiki_package_id $package_id +} elseif {[info exists cf]} { + array set config $cf + set xowiki_package_id $config(package_id) +} else { + ns_return 500 text/html "No package_id for XoWiki provided" + ad_script_abort } -if { $package_id ne "" } { +::xowiki::Package initialize -package_id $xowiki_package_id +set applet_url [::$xowiki_package_id package_url] - if {![exists_and_not_null template_portal_id]} { - set template_portal_id [dotlrn_community::get_portal_id] - } +if {![exists_and_not_null template_portal_id]} { + set template_portal_id [dotlrn_community::get_portal_id] +} - if {[exists_and_not_null return_url]} { - set referer $return_url - } +if {![info exists referer] && [exists_and_not_null return_url]} { + set referer $return_url +} - if {![exists_and_not_null referer]} { - set referer [ad_conn url] - } +if {![info exists referer]} { + set referer [ad_conn url] +} - set element_pretty_name [parameter::get \ - -parameter xowiki_admin_portlet_element_pretty_name \ - -default [_ xowiki-portlet.admin_portlet_element_pretty_name]] +set element_pretty_name [parameter::get \ + -parameter xowiki_admin_portlet_element_pretty_name \ + -default [_ xowiki-portlet.admin_portlet_element_pretty_name]] - db_multirow content select_content \ +db_multirow content select_content \ "select m.element_id, m.pretty_name, pep.value as name from portal_element_map m, portal_pages p, portal_element_parameters pep where m.page_id = p.page_id and p.portal_id = $template_portal_id and m.datasource_id = [portal::get_datasource_id [xowiki_portlet name]] and pep.element_id = m.element_id and pep.key = 'page_name'" {} - - # don't ask to insert same page twice - template::multirow foreach content {set used_page_id($name) 1} - array set config $cf - set options "" - ::xowiki::Package initialize -package_id $config(package_id) - db_foreach instance_select \ - [::xowiki::Page instance_select_query \ - -folder_id [::$package_id folder_id] \ - -with_subtypes true \ - -from_clause ", xowiki_page P" \ - -where_clause "P.page_id = bt.revision_id" \ - -orderby "ci.name" \ - ] { - if {[regexp {^::[0-9]} $name]} continue - if {[info exists used_page_id($name)]} continue - append options "" - } +# don't ask to insert same page twice +template::multirow foreach content {set used_page_id($name) 1} - if {$options ne ""} { - set form [subst { -
- - - #xowiki-portlet.new_xowiki_admin_portlet# - -
- }] - } else { - set form "#xowiki-portlet.all-pages-used#" - } - - set applet_url [$package_id package_url] +set options "" +db_foreach instance_select \ + [::xowiki::Page instance_select_query \ + -folder_id [::$xowiki_package_id folder_id] \ + -with_subtypes true \ + -from_clause ", xowiki_page P" \ + -where_clause "P.page_id = cr.revision_id" \ + -orderby "ci.name" \ + ] { + if {[regexp {^::[0-9]} $name]} continue + if {[info exists used_page_id($name)]} continue + append options "" + } + + + +if {$options ne ""} { + set form [subst { +
+ + + #xowiki-portlet.new_xowiki_admin_portlet# + +
+ }] +} else { + set form "All pages already used" } + +