ad_page_contract { Index page for the package manager. @param orderyby The parameter to order everything in the page by. @param owned_by Display packages owned by whom. @author Jon Salz (jsalz@arsdigita.com) @cvs-id $Id: index.tcl,v 1.30 2017/08/07 23:47:45 gustafn Exp $ } { { orderby:token "package_key" } { owned_by:word "everyone" } { supertype "all" } { reload_links_p:boolean 0 } } set page_title "Package Manager" set context [list [list "../developer" "Developer's Administration"] $page_title] 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 } -default "me"] set dimensional_list { { supertype "Package Type:" all { { apm_application "Applications" { where "[db_map apm_application]" } } { apm_service "Services" { where "t.package_type = 'apm_service'"} } { all "All" {} } } } { 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" 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 use_watches_p [expr {![parameter::get -package_id [ad_acs_kernel_id] -parameter PerformanceModeP -default 1]}] 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 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]] 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 } { set status "Superseded" } else { set status "Uninstalled" } 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 " | "] } # The reload links make the page slow, so make them optional set page_url [export_vars -base [ad_conn url] {orderby owned_by supertype}] set href [export_vars -base [ad_conn url] {orderby owned_by supertype reload_links_p}] if { $reload_links_p } { set reload_filter "Do not check for changed files" } else { set reload_filter "Check for changed files" } # 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 watches_html "