Index: openacs-4/packages/acs-admin/www/apm/version-view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/version-view.tcl,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-admin/www/apm/version-view.tcl 13 Apr 2009 23:10:27 -0000 1.20 +++ openacs-4/packages/acs-admin/www/apm/version-view.tcl 27 Oct 2014 16:38:54 -0000 1.21 @@ -4,10 +4,36 @@ @creation-date 17 April 2000 @cvs-id $Id$ } { - {version_id:integer} + {version_id:naturalnum,optional} + {package_key:optional} +} -validate { + version_id_or_package_key { + if {[info exists package_key] && ![info exists version_id]} { + set version_id [apm_version_id_from_package_key $package_key] + if {$version_id eq ""} { + ad_complain "No package with package_key '$package_key' is enabled." + return + } + } + if {![info exists version_id]} { + ad_complain "Specify a valid version_id." + } + } } -db_1row apm_all_version_info {} +db_1row apm_all_version_info { + select version_id, package_key, package_uri, pretty_name, version_name, version_uri, + summary, description_format, description, singleton_p, initial_install_p, + implements_subsite_p, inherit_templates_p, + to_char(release_date, 'Month DD, YYYY') as release_date , vendor, vendor_uri, auto_mount, + enabled_p, installed_p, tagged_p, imported_p, data_model_loaded_p, + to_char(activation_date, 'Month DD, YYYY') as activation_date, + tarball_length, distribution_uri, + to_char(deactivation_date, 'Month DD, YYYY') as deactivation_date, + to_char(distribution_date, 'Month DD, YYYY') as distribution_date + from apm_package_version_info + where version_id = :version_id +} set downloaded_p [ad_decode $version_uri "" 0 1] @@ -16,8 +42,8 @@ # installed and enabled. db_0or1row apm_enabled_version_info { select version_id as installed_version_id, version_name as installed_version_name, - enabled_p as installed_enabled_p, - apm_package_version.version_name_greater(version_name, :version_name) as version_name_greater + enabled_p as installed_enabled_p, + apm_package_version.version_name_greater(version_name, :version_name) as version_name_greater from apm_package_versions where package_key = :package_key and installed_p = 't' @@ -26,11 +52,11 @@ db_0or1row apm_data_model_install_version { select data_model_installed_version from ( - select version_name as data_model_installed_version - from apm_package_versions - where package_key = :package_key - and data_model_loaded_p = 't' - order by apm_package_version.sortable_version_name(version_name) desc + select version_name as data_model_installed_version + from apm_package_versions + where package_key = :package_key + and data_model_loaded_p = 't' + order by apm_package_version.sortable_version_name(version_name) desc ) where rownum = 1 } @@ -39,8 +65,8 @@ set vendor $vendor_uri } foreach field { summary description release_date vendor } { - if { [empty_string_p [set $field]] } { - set $field "-" + if { [set $field] eq "" } { + set $field "-" } } @@ -51,35 +77,43 @@ if { ![info exists installed_version_id] } { if { !$downloaded_p } { - set status "No version of this package is installed: there is no .info file in the -packages/$package_key directory. If you're building the package now, you probably -want to generate one." + set status [subst { + No version of this package is installed: there is no .info file in the + packages/$package_key directory. If you're building the package now, you probably + want to generate one. + }] } else { - set status "No version of this package is installed. You may install this package now." + set status [subst { + No version of this package is installed. You may + install this package now. + }] } lappend prompts $status } elseif { $installed_version_id == $version_id } { set status "This version of the package is installed" - if { $enabled_p eq "t" } { - append status " and enabled." - set can_disable_p 1 + if { $enabled_p == "t" } { + append status " and enabled." + set can_disable_p 1 } else { - append status " but disabled." - set can_enable_p 1 + append status " but disabled." + set can_enable_p 1 } } else { - set status "[ad_decode $version_name_greater -1 "An older" "A newer"] version of this package, -version $installed_version_name, is installed and [ad_decode $installed_enabled_p "t" "enabled" "disabled"]." + set status [subst { + [ad_decode $version_name_greater -1 "An older" "A newer"] version of this package, + version $installed_version_name, is installed and [ad_decode $installed_enabled_p "t" "enabled" "disabled"]. + }] if { $version_name_greater < 0 } { - append body " You may upgrade to this version now." + append body [subst { + You may upgrade to this version now. + }] } } if { ![info exists data_model_installed_version] } { set data_model_status " No version of the data model for this package has been loaded." } elseif {$data_model_installed_version ne $version_name } { - set data_model_status " The data model for version $data_model_installed_version of this package has been -loaded." + set data_model_status " The data model for version $data_model_installed_version of this package has been loaded." } else { set data_model_status " The data model for this version of this package has been loaded." } @@ -97,9 +131,9 @@ select owner_uri, owner_name from apm_package_owners where version_id = :version_id } { if { $owner_uri eq "" } { - lappend owners $owner_name + lappend owners $owner_name } else { - lappend owners "$owner_name ($owner_uri)" + lappend owners "$owner_name ($owner_uri)" } } @@ -113,151 +147,205 @@ set prompt_text "" } -db_release_unused_handles +set title "$pretty_name $version_name" +set context [list \ + [list "../developer" "Developer's Administration"] \ + [list "/acs-admin/apm/" "Package Manager"] \ + $title] -set page_title "$pretty_name $version_name" -set context [list [list "../developer" "Developer's Administration"] [list "/acs-admin/apm/" "Package Manager"] $page_title] +append body [subst { + $prompt_text +

Package Information

-append body " -$prompt_text +
+ + + + + + + + + + +}] -

Package Information

- -
-
Package Name:$pretty_name
Version:$version_name
OpenACS Core:[ad_decode $initial_install_p "t" "Yes" "No"]
Singleton:[ad_decode $singleton_p "t" "Yes" "No"]
Implements Subsite:[ad_decode $implements_subsite_p t Yes No]
Inherit Templates:[ad_decode $inherit_templates_p t Yes No]
Auto-mount:$auto_mount
Status:$status
Data Model:$data_model_status
- - - - - - - - - -" - set supported_databases_list [apm_package_supported_databases $package_key] if { $supported_databases_list eq "" } { set supported_databases "none specified" } else { set supported_databases [join $supported_databases_list ", "] } -append body " - -" +append body [subst { + + + + + + + +}] -append body " - - - - - -" - # Dynamic package version attributes array set all_attributes [apm::package_version::attributes::get_spec] array set attributes [apm::package_version::attributes::get \ -version_id $version_id \ -array attributes] foreach attribute_name [array names attributes] { array set attribute $all_attributes($attribute_name) - - append body "" + append body [subst { + + }] } -append body " - - - - + + + -
Package Name:$pretty_name
Version:$version_name
OpenACS Core:[ad_decode $initial_install_p "t" "Yes" "No"]
Singleton:[ad_decode $singleton_p "t" "Yes" "No"]
Implements Subsite:[ad_decode $implements_subsite_p t Yes No]
Inherit Templates:[ad_decode $inherit_templates_p t Yes No]
Auto-mount:$auto_mount
Status:$status
Data Model:$data_model_status
Database Support:$supported_databases
Database Support:$supported_databases
CVS:$cvs_status
[ad_decode [llength $owners] 1 "Owner" "Owners"]:[join $owners "
"]
Package Key:$package_key
Summary:$summary
Description:$description
Release Date:$release_date
CVS:$cvs_status
[ad_decode [llength $owners] 1 "Owner" "Owners"]:[join $owners "
"]
Package Key:$package_key
Summary:$summary
Description:$description
Release Date:$release_date
$attribute(pretty_name)$attributes($attribute_name)
$attribute(pretty_name):$attributes($attribute_name)
Vendor:[ad_decode $vendor_uri "" $vendor "$vendor"]
Package URL:$package_uri
Version URL:$version_uri
Distribution File:" +set vendorHTML [ad_decode $vendor_uri "" $vendor "$vendor"] +append body [subst { +
Vendor:$vendorHTML
Package URL:$package_uri
Version URL:$version_uri
Distribution File: +}] if { $tarball_length ne "" && $tarball_length > 0 } { - append body "[format "%.1f" [expr { $tarball_length / 1024.0 }]]KB " + append body [subst { + [format "%.1f" [expr { $tarball_length / 1024.0 }]]KB + }] if { $distribution_uri eq "" } { - append body "(generated on this system" - if { $distribution_date ne "" } { - append body " on $distribution_date" - } - append body ")" + append body "(generated on this system" + if { $distribution_date ne "" } { + append body " on $distribution_date" + } + append body ")" + set params [export_vars { {m create-new} {p.description $summary} {title "[file tail $version_uri]"}}] + append body [subst { +

+ In order to contribute this package back to the OpenACS community, +

    +
  1. download the .apm-file to your file system and
  2. +
  3. submit the .apm-file + to + the package repository of OpenACS.
  4. +
+ }] } else { - append body "(downloaded from $distribution_uri" - if { $distribution_date ne "" } { - append body " on $distribution_date" - } - append body ")" + append body "(downloaded from $distribution_uri" + if { $distribution_date ne "" } { + append body " on $distribution_date" + } + append body ")" } } else { append body "None available" - if { $installed_p eq "t" } { - append body " (generate one now from the filesystem)" + if { $installed_p == "t" } { + append body [subst { + (generate one now from the filesystem) + }] } } -append body " -
-" +set nr_instances [apm_num_instances $package_key] +if {$nr_instances > 0} { + set instances [subst { + Installed instances of this package: + $nr_instances + }] +} else { + set instances "No installed instance of this package\n" +} +if {$nr_instances == 0 || ($nr_instances > 0 && !$singleton_p)} { + set query [export_vars { package_key {return_url [ad_return_url]}}] + set instance_create [subst { +
  • Create + (unmounted) instance of this package
  • + }] +} else { + set instance_create "" +} -append body " -
    +append body [subst { + + + - -

    Manage

    - -

    Reload

    - -

    XML .info package specification file

    - +} + +ad_return_template apm + +# +# Local variables: +# mode: tcl +# tcl-indent-level: 4 +# indent-tabs-mode: nil +# End: