Index: openacs-4/packages/download/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/download/www/index.tcl,v diff -u -N -r1.8.2.2 -r1.8.2.3 --- openacs-4/packages/download/www/index.tcl 9 Sep 2013 17:34:16 -0000 1.8.2.2 +++ openacs-4/packages/download/www/index.tcl 12 Sep 2013 09:57:38 -0000 1.8.2.3 @@ -67,16 +67,27 @@ set approval " and dar.approved_p = 't' " } +set element_list { + archive_name { + label "Software Name" + display_template { + + +  @downloads_multirow.archive_name@ @downloads_multirow.version_name@ +  (@downloads_multirow.file_size@k)
@downloads_multirow.summary@ + } + orderby "archive_name" + } + archive_type { + label "Software Type" + orderby "archive_type" + } + downloads { + label "# Downloads" + orderby "downloads" + } +} -set table_def [list \ - [list archive_name "[_ download.Software_Name_1]"\ - {lower(archive_name) $order} \ - {  $archive_name $version_name  (${file_size}k)
$summary} - ] \ - [list archive_type "[_ download.Software_Type]" "" ""] \ - [list downloads "[_ download._Downloads]" "" ""] \ - ] - #Setup the metadata set metadata_selects "" db_foreach metadata { @@ -95,67 +106,54 @@ append metadata_selects ", (select $answer_column from download_revision_data where revision_id = dar.revision_id and metadata_id = $metadata_id) as $metadata_select " if { $linked_p == "t" } { - set display "\$$metadata_select" + set display "@downloads_multirow.$metadata_select@" } else { set display "" } - lappend table_def [list $metadata_select $pretty_name {} $display] + lappend element_list $metadata_select [list label $pretty_name display_template $display] } ##Add on the metadata columns if { $admin_p } { - lappend table_def [list dar.approved_p "[_ download.Approval]" \ - {} \ - { \ - [ad_decode $approved_p \ - "t" "approved - \[ - reject\]" \ - "f" "rejected - \[ - approve\]" \ - "pending - \[ - approve | - reject\] - "] - }] + lappend element_list approved_p { + label "[_ download.Approval]" + display_template { + @downloads_multirow.approved_text@ + \[@downloads_multirow.approved_action@\] + } } +} -set sql_query " -select da.archive_id, - dat.pretty_name as archive_type, - da.archive_type_id, - da.archive_name, - da.summary, - dar.revision_id, - dar.file_name, - dar.version_name, - dbms_lob.getlength(dar.content) as file_size, - (select count(*) from download_downloads where revision_id = dar.revision_id) as downloads, - dar.approved_p - $metadata_selects -from download_archives_obj da, - download_archive_types dat, - download_arch_revisions_obj dar -where da.repository_id = :repository_id and - dat.archive_type_id = da.archive_type_id and - da.archive_id = dar.archive_id and - acs_permission.permission_p(dar.revision_id, :user_id, 'read') = 't' - $approval - [ad_dimensional_sql $dimensional where] - [ad_order_by_from_sort_spec $orderby $table_def]" +template::list::create -name download_list \ + -multirow downloads_multirow \ + -elements $element_list \ + -filters {archive_type_id {} query_string {} updated {}} -set dimensional_html [ad_dimensional $dimensional] -set table [ad_table \ - -Torderby $orderby \ - -Tband_colors {{} {\"\#cccccc\"}} \ - -bind [ad_tcl_vars_to_ns_set user_id repository_id] \ - -Ttable_extra_html { cellpadding=3 } \ - download_index_query $sql_query $table_def ] +set img_url "[ad_conn package_url]/graphics/download.gif" +db_multirow -extend {metadata_url download_img revision_url download_url approved_color approved_text approved_url approved_action reject_url} downloads_multirow download_index_query {*} { + set download_img $img_url + if {$approved_p} { + set approved_url [export_vars -base admin/approve-or-reject {{action reject} revision_id return_url}] + set approved_text "approved" + set approved_color green + set approved_action "reject" + } else { + set approved_url [export_vars -base admin/approve-or-reject {{action approve} revision_id return_url}] + set approved_text "rejected" + set approved_action approve + set approved_color red + } + set download_url "download/$file_name?revision_id=$revision_id" + set revision_url "one-revision?revision_id=$revision_id" + set metadata_url [export_vars -base one-metadata {metadata_id}] +} + + +set dimensional_html [ad_dimensional $dimensional] + db_multirow types types_select { select archive_type_id, pretty_name, description from download_archive_types where repository_id = :repository_id } @@ -177,4 +175,4 @@ -ad_return_template \ No newline at end of file +ad_return_template