Index: openacs-4/packages/acs-admin/www/install/install.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/install/install.tcl,v diff -u -r1.7.2.2 -r1.7.2.3 --- openacs-4/packages/acs-admin/www/install/install.tcl 12 Oct 2013 14:29:49 -0000 1.7.2.2 +++ openacs-4/packages/acs-admin/www/install/install.tcl 25 Aug 2014 09:27:10 -0000 1.7.2.3 @@ -1,12 +1,34 @@ ad_page_contract { Install from local file system } { - package_type:optional - {upgrade_p 0} + {package_type ""} + {upgrade_p:boolean 0} {repository_url ""} + {channel ""} + {maturity:naturalnum ""} + {current_channel} + {head_channel} } +# +# In upgrade mode, offer per default all maturities, in install-mode, +# start with mature packages. +# +if {$upgrade_p} { + set default_maturity 0 +} else { + set default_maturity 2 +} + +if {$maturity eq ""} { + set maturity $default_maturity +} + +# +# Set page title to reflect install from repository or from file system +# + if { $repository_url ne "" } { set page_title "Install or Upgrade From OpenACS Repository" } else { @@ -26,29 +48,57 @@ set upgrades_p 0 array set package [list] -apm_get_package_repository -repository_url $repository_url -array repository +if {$channel eq ""} {set channel $current_channel} +set fetch_url $repository_url/$channel/ +apm_get_package_repository -repository_url $fetch_url -array repository + foreach package_key [array names repository] { array unset version array set version $repository($package_key) - if { (![info exists package_type] || $package_type eq "") || $version(package.type) eq $package_type } { + if {![info exists version(maturity)] || $version(maturity) eq ""} { + set version(maturity) 0 + } + + #ns_log notice "$version(package.key) $repository($package_key)" + #ns_log notice "compare $version(package.key) $version(maturity) < $maturity" + if {$version(maturity) < $maturity} continue + if {![apm_package_supports_rdbms_p -package_key $package_key]} continue + + if { $package_type eq "" || $version(package.type) eq $package_type } { set package_key $version(package.key) - - # If in upgrade mode, only add to list if it's an upgrade - if { !$upgrade_p || $version(install_type) eq "upgrade" } { - if {(![info exists version(maturity)] || $version(maturity) eq "")} { - set version(maturity) "" + + # + # If in upgrade mode, only add to list if it's an upgrade, in + # install-mode list only installs. + # + if { (!$upgrade_p && $version(install_type) eq "install") + || ($upgrade_p && $version(install_type) eq "upgrade") + } { + + if {[info commands ::apm::package_version::attributes::maturity_int_to_text] ne ""} { + set maturity_text [::apm::package_version::attributes::maturity_int_to_text $version(maturity)] + } else { + set maturity_text "" } + set package([string toupper $version(package-name)]) \ [list \ $version(package.key) \ $version(package-name) \ $version(name) \ $version(package.type) \ $version(install_type) \ - $version(summary) \ - $version(maturity)] + $version(summary) \ + $maturity_text \ + $version(vendor) \ + $version(vendor.url) \ + $version(owner) \ + $version(owner.url) \ + $version(release-date) \ + $version(license) \ + ] } } } @@ -61,36 +111,22 @@ ##### # Sort the list alphabetically (in case package_name and package_key doesn't sort the same) -multirow create packages package_key package_name version_name package_type install_type summary maturity +multirow create packages package_key package_name version_name package_type install_type summary \ + maturity vendor vendor_url owner owner_url release_date license if {[catch {set maturity_label [apm::package_version::attributes::get_pretty_name maturity]} errmsg]} { set maturity_label "Maturity" } foreach name [lsort -ascii [array names package]] { - set row $package($name) - if {[info commands ::apm::package_version::attributes::maturity_int_to_text] ne ""} { - set maturity_text [::apm::package_version::attributes::maturity_int_to_text [lindex $row 6]] - } else { - set maturity_text "" - } - - multirow append packages \ - [lindex $row 0] \ - [lindex $row 1] \ - [lindex $row 2] \ - [lindex $row 3] \ - [lindex $row 4] \ - [lindex $row 5] \ - $maturity_text + multirow append packages {*}$package($name) } multirow extend packages install_url multirow -unclobber foreach packages { - set install_url [export_vars -base install-2 { package_key repository_url }] + set install_url [export_vars -base install-2 { package_key {repository_url $fetch_url}}] } - # Build the list-builder list template::list::create \ -name packages \ @@ -100,7 +136,7 @@ "Install or upgrade checked applications" "install-2" "Install or upgrade checked applications" } \ -bulk_action_export_vars { - repository_url + {repository_url $fetch_url} } \ -elements { package_name { @@ -110,6 +146,13 @@ } summary { label "Summary" + display_template {@packages.summary@
+ Vendor: @packages.vendor@ + @packages.vendor@ + (released on @packages.release_date@, license: @packages.license@) +
+ Details: @packages.package_key@ + } } maturity { label "$maturity_label" @@ -127,6 +170,26 @@ display_eval {[ad_decode $install_type "upgrade" "Upgrade" ""]} } } -filters { + channel { + label "Channel" + values { + {Current $current_channel} + {Head $head_channel} + } + default_value $current_channel + } + + maturity { + label "Maturity at least" + values { + {New 0} + {Immature 1} + {Mature 2} + {"Mature and Standard" 3} + } + default_value default_maturity + } + package_type { label "Type" values { @@ -142,9 +205,9 @@ } default_value 0 } - repository_url { - hide_p 1 - } + repository_url { hide_p 1 } + current_channel { hide_p 1 } + head_channel { hide_p 1 } }