Index: openacs-4/packages/acs-admin/www/apm/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/index.tcl,v
diff -u -r1.24 -r1.25
--- openacs-4/packages/acs-admin/www/apm/index.tcl 29 Sep 2008 08:40:33 -0000 1.24
+++ openacs-4/packages/acs-admin/www/apm/index.tcl 27 Oct 2014 16:38:51 -0000 1.25
@@ -15,11 +15,11 @@
set page_title "Package Manager"
set context [list [list "../developer" "Developer's Administration"] $page_title]
-set user_id [ad_get_user_id]
+set user_id [ad_conn user_id]
# Determine the user's email address. If its not registered, put in a default.
set my_email [db_string email_by_user_id {
- select email from parties where party_id = :user_id
+ select email from parties where party_id = :user_id
} -default "me"]
set dimensional_list {
@@ -31,83 +31,94 @@
}
}
{
-
owned_by "Owned by:" everyone {
{ me "Me" {where "[db_map everyone]"} }
{ everyone "Everyone" {where "1 = 1"} }
}
}
{
status "Status:" latest {
- {
- latest "Latest" {where "[db_map latest]" }
- }
- { all "All" {where "1 = 1"} }
+ {latest "Latest" {where "[db_map latest]" } }
+ {all "All" {where "1 = 1"} }
}
}
}
# "latest" means that a version is installed or enabled, or there is no more latest version
# which is installed or enabled. Basically, any relevant package on the system.
+set filter_where_clause [ad_dimensional_sql $dimensional_list where and]
+set dimensional_list [ad_dimensional $dimensional_list]
-set missing_text "No packages match criteria."
+set missing_text "No packages match criteria."
+set use_watches_p [expr {![parameter::get -package_id [ad_acs_kernel_id] -parameter PerformanceModeP -default 1]}]
-append body "
[ad_dimensional $dimensional_list] |
"
+template::list::create -name package_list \
+ -multirow packages \
+ -no_data $missing_text \
+ -key package_key \
+ -elements {
+ package_key {
+ label "Key"
+ link_url_col package_url
+ orderby "package_key"
+ }
+ pretty_name {
+ label "Name"
+ link_url_col package_url
+ orderby "pretty_name"
+ }
+ version_name {
+ label "Ver."
+ orderby "version_name"
+ }
+ release_date {
+ label "Released"
+ orderby "release_date"
+ }
+ status {
+ label "Status"
+ }
+ maintained {
+ label "Maintained"
+ }
+ action {
+ label ""
+ display_template {@packages.action_html;noquote@}
+ }
+ } -filters {owned_by {} supertype {} status {}}
-set use_watches_p [expr {![parameter::get -package_id [ad_acs_kernel_id] -parameter PerformanceModeP -default 1]}]
+set performance_p [parameter::get -package_id [ad_acs_kernel_id] -parameter PerformanceModeP -default 1]
+set reload_links_p [ad_decode [ns_set iget [rp_getform] reload_links_p] \
+ "" 0 [ns_set iget [rp_getform] reload_links_p]]
-set table_def {
- { package_key "Key" "" "$package_key | " }
- { pretty_name "Name" "" "$pretty_name | " }
- { version_name "Ver." "" "" }
- {
- status "Status" "" { [eval {
- if { $installed_p eq "t" } {
- if { $enabled_p eq "t" } {
+db_multirow -extend {package_url maintained status action_html} packages apm_table {} {
+ set package_url [export_vars -base version-view {version_id}]
+ set maintained [ad_decode $distribution_uri "" "Locally" "Externally"]
+
+ if { $installed_p == "t" } {
+ if { $enabled_p == "t" } {
set status "Enabled"
} else {
set status "Disabled"
}
- } elseif { $superseded_p } {
+ } elseif { $superseded_p } {
set status "Superseded"
- } else {
+ } else {
set status "Uninstalled"
- }
- format $status
- }] | }
}
- { maintained "Maintained" "" {[ad_decode $distribution_uri "" "Locally" "Externally"] | } }
- {
- action "" "" { [eval {
-
- set file_link_list [list]
- lappend file_link_list "view files"
-
- if { $installed_p eq "t" && $enabled_p eq "t" } {
- if {![parameter::get -package_id [ad_acs_kernel_id] -parameter PerformanceModeP -default 1]} {
- lappend file_link_list "watch all files"
- }
-
- set reload_links_p [ad_decode [ns_set iget [rp_getform] reload_links_p] \
- "" 0 [ns_set iget [rp_getform] reload_links_p]]
- if { !$reload_links_p || [string equal [apm_version_load_status $version_id] "needs_reload"]} {
- lappend file_link_list "reload changed"
- }
- }
-
- set format_string [join $file_link_list " | "]
- format $format_string
-
-
- }] | }
- }
+
+ set file_link_list [list]
+ lappend file_link_list "view files"
+ if { $installed_p == "t" && $enabled_p == "t" } {
+ if {!$performance_p} {
+ lappend file_link_list "watch all files"
+ }
+ if { !$reload_links_p || [apm_version_load_status $version_id] eq "needs_reload"} {
+ lappend file_link_list "reload changed"
+ }
+ }
+ set action_html [join $file_link_list " | "]
}
-doc_body_flush
-
-set table [ad_table -Torderby $orderby -Tmissing_text $missing_text "apm_table" "" $table_def]
-
-db_release_unused_handles
-
# The reload links make the page slow, so make them optional
set page_url "[ad_conn url]?[export_vars -url {orderby owned_by supertype}]"
if { $reload_links_p } {
@@ -116,54 +127,23 @@
set reload_filter "Check for changed files"
}
-append body "Packages
-
-
-
-$table
-
-
-"
-
# Build the list of files we're watching.
+set watches_html ""
if { $use_watches_p } {
set watch_files [nsv_array names apm_reload_watch]
if { [llength $watch_files] > 0 } {
- append body "Watches
+ append watches_html "Watches
\n"
+ append watches_html "
\n"
}
} else {
set kernel_id [ad_acs_kernel_id]
- append body "Watches
-Watching of files is not enabled in performance mode (see the PerformanceModeP parameter on the ACS Kernel parameter page)"
+ append watches_html "Watches
+Watching of files is not enabled in performance mode (see the PerformanceModeP parameter on the ACS Kernel parameter page)"
}
-append body "
-Help
-
-
-A package is enabled if it is scheduled to run at server startup
-and is deliverable by the request processor.
-
-If a Tcl library file (*-procs.tcl) or query file (*.xql) is being
-watched, the request processor monitors it, reloading it into running interpreters
-whenever it is changed. This is useful during development
-(so you don't have to restart the server for your changes to take
-effect). To watch a file, click its package key above, click Manage file
-information on the next screen, and click watch next to
-the file's name on the following screen.
-
-"