Index: openacs-4/packages/file-storage/www/folder-chunk.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/folder-chunk.tcl,v diff -u -r1.55 -r1.56 --- openacs-4/packages/file-storage/www/folder-chunk.tcl 16 Jul 2018 13:55:33 -0000 1.55 +++ openacs-4/packages/file-storage/www/folder-chunk.tcl 16 Jul 2018 15:52:44 -0000 1.56 @@ -1,28 +1,34 @@ # file-storage/www/folder-chunk.tcl -ad_page_contract { +ad_include_contract { @author yon (yon@openforce.net) @creation-date Feb 22, 2002 @cvs-id $Id$ -} -query { - {orderby:token,optional} +} { + orderby:token,optional + {folder_id:integer ""} + {allow_bulk_actions:boolean true} + {category_id:integer ""} + {n_past_days:integer 99999} + {fs_url:localurl "[ad_conn package_url]"} + {return_url ""} + {format "table"} + {root_folder_id:integer ""} +} -validate { + folder_id_exists { + if { $folder_id eq "" } { + ad_complain + } + } +} -errors { + folder_id_exists [_ file-storage.lt_bad_folder_id_folder_] } -properties { folder_name:onevalue contents:multirow content_size_total:onevalue page_num } -if {![info exists folder_id] || $folder_id eq ""} { - ad_return_complaint 1 [_ file-storage.lt_bad_folder_id_folder_] - ad_script_abort -} -if {![info exists allow_bulk_actions] || $allow_bulk_actions eq ""} { - set allow_bulk_actions "0" -} -if { ![info exists category_id] } { - set category_id "" -} set viewing_user_id [ad_conn user_id] permission::require_permission -party_id $viewing_user_id -object_id $folder_id -privilege "read" @@ -38,32 +44,22 @@ set delete_p [permission::permission_p -party_id $viewing_user_id -object_id $folder_id -privilege "delete"] } -if {![info exists n_past_days] || $n_past_days eq ""} { - set n_past_days 99999 -} - -if {![info exists fs_url] || $fs_url eq ""} { - set fs_url [ad_conn package_url] -} - set folder_name [lang::util::localize [fs::get_object_name -object_id $folder_id]] set content_size_total 0 -if {![info exists format] || $format eq ""} { - set format table -} - #AG: We're an include file, and we may be included from outside file-storage. #So we need to query for the package_id rather than getting it from ad_conn. set package_and_root [fs::get_folder_package_and_root $folder_id] set package_id [lindex $package_and_root 0] -if {(![info exists root_folder_id] || $root_folder_id eq "")} { +if { $root_folder_id eq "" } { set root_folder_id [lindex $package_and_root 1] } if { $root_folder_id ne $folder_id } { - set folder_path "[db_exec_plsql get_folder_path {}]/" + set folder_path [content::item::get_path \ + -item_id $folder_id \ + -root_folder_id $root_folder_id]/ } else { set folder_path "" } @@ -134,61 +130,63 @@ } #set n_past_filter_values [list [list "Yesterday" 1] [list [_ file-storage.last_week] 7] [list [_ file-storage.last_month] 30]] -set elements [list \ - type \ - [list label [_ file-storage.Type] \ - display_template {@contents.alt_icon@@contents.pretty_type@} \ - orderby_desc {sort_key_desc,fs_objects.pretty_type desc} \ - orderby_asc {fs_objects.sort_key, fs_objects.pretty_type asc}] \ - name \ - [list label [_ file-storage.Name] \ - display_template {@contents.name@@contents.title@
@contents.name@
} \ - orderby_desc {fs_objects.name desc} \ - orderby_asc {fs_objects.name asc}] \ - short_name \ - [list label [_ file-storage.Name] \ - hide_p 1 \ - display_template {@contents.title@} \ - orderby_desc {fs_objects.name desc} \ - orderby_asc {fs_objects.name asc}] \ - content_size_pretty \ - [list label [_ file-storage.Size] \ - display_template {@contents.content_size_pretty;noquote@} \ - orderby_desc {content_size desc} \ - orderby_asc {content_size asc}] \ - last_modified_pretty \ - [list label [_ file-storage.Last_Modified] \ - orderby_desc {last_modified_ansi desc} \ - orderby_asc {last_modified_ansi asc}] \ - properties_link \ - [list label "" \ - link_url_col properties_url \ - link_html { title "[_ file-storage.properties]" }] \ - new_version_link \ - [list label "" \ - link_url_col new_version_url \ - link_html { title "[_ file-storage.Upload_a_new_version]" }] \ - download_link \ - [list label "" \ - link_url_col download_url \ - link_html { title "[_ file-storage.Download]" }] \ - ] +set elements { + type { + label #file-storage.Type# + display_template {@contents.alt_icon@@contents.pretty_type@} + } + name { + label #file-storage.Name# + display_template { + + + @contents.name@ + + + @contents.title@
+ + @contents.name@ + +
+ } + } + content_size_pretty { + label #file-storage.Size# + display_template {@contents.content_size_pretty;noquote@} + } + last_modified_pretty { + label #file-storage.Last_Modified# + } + properties_link { + label "" + link_url_col properties_url + link_html { title "#file-storage.properties#" } + } + new_version_link { + label "" + link_url_col new_version_url + link_html { title "#file-storage.Upload_a_new_version#" } + } + download_link { + label "" + link_url_col download_url + link_html { title "#file-storage.Download#" } + } +} - if { $categories_p } { - lappend elements categories [list label [_ file-storage.Categories] display_col "categories;noquote"] + lappend elements \ + categories [list label [_ file-storage.Categories] display_col "categories;noquote"] } -lappend elements views [list label "Views" ] - - if {[apm_package_installed_p views]} { - concat $elements [list views [list label "Views"]] + lappend elements views [list label "Views"] } -if {![info exists return_url] || $return_url eq ""} { +if { $return_url eq "" } { set return_url [export_vars -base "index" {folder_id}] } + set vars_to_export [list return_url] @@ -238,7 +236,7 @@ } template::list::create \ - -name contents_${folder_id} \ + -name contents \ -multirow contents \ -key object_id \ -actions $actions \ @@ -263,41 +261,62 @@ folder_id {hide_p 1} page_num } \ - -elements $elements + -elements $elements \ + -orderby { + default_value "name,asc" + type { + orderby_desc {fs_objects.sort_key desc, fs_objects.pretty_type desc} + orderby_asc {fs_objects.sort_key asc, fs_objects.pretty_type asc} + } + name { + orderby_desc {fs_objects.sort_key desc, fs_objects.name desc} + orderby_asc {fs_objects.sort_key asc, fs_objects.name asc} + } + content_size_pretty { + orderby_desc {content_size desc} + orderby_asc {content_size asc} + } + last_modified_pretty { + orderby_desc {last_modified_ansi desc} + orderby_asc {last_modified_ansi asc} + } + } -set orderby [template::list::orderby_clause -orderby -name contents_${folder_id}] +set categories_limitation [expr {$categories_p && $category_id ne "" ? + [db_map categories_limitation] : ""}] -if {$orderby eq ""} { - set orderby " order by fs_objects.sort_key, fs_objects.name asc" -} +#"test [template::list::orderby_clause -name contents -orderby]" -if { $categories_p && [info exists category_id] && $category_id ne "" } { - set categories_limitation [db_map categories_limitation] -} else { - set categories_limitation {} -} - -db_multirow \ - -extend {label alt_icon icon last_modified_pretty content_size_pretty - properties_link properties_url download_link download_url - new_version_link new_version_url views categories - } contents select_folder_contents {} { +db_multirow -extend { + label + alt_icon + icon + last_modified_pretty + content_size_pretty + properties_link + properties_url + download_link + download_url + new_version_link + new_version_url + views + categories +} contents select_folder_contents {} { set last_modified_ansi [lc_time_system_to_conn $last_modified_ansi] - set last_modified_pretty [lc_time_fmt $last_modified_ansi "%x %X"] + if {$type eq "folder"} { - set content_size_pretty [lc_numeric $content_size] - append content_size_pretty " [_ file-storage.items]" + set content_size_pretty "[lc_numeric $content_size] [_ file-storage.items]" set pretty_type "#file-storage.Folder#" } else { if { $content_size eq "" } { - set content_size_pretty "" - } elseif {$content_size < 1024} { + set content_size 0 + } + if {$content_size < 1024} { set content_size_pretty "[lc_numeric $content_size] [_ file-storage.bytes]" } else { set content_size_pretty "[lc_numeric [expr {$content_size / 1024 }]] [_ file-storage.kb]" } - } if { $content_size ne "" } { @@ -338,7 +357,6 @@ set file_url ${url} set download_url {} set download_link {} - } symlink { set properties_link [_ file-storage.properties] @@ -370,7 +388,6 @@ } else { set content_size_pretty "[lc_numeric [expr {$content_size / 1024 }]] [_ file-storage.kb]" } - } set properties_url [export_vars -base ${fs_url}file {{file_id $object_id}}] set new_version_link [_ acs-kernel.common_New] @@ -405,7 +422,6 @@ set file_url ${fs_url}view/${folder_path}[ad_urlencode_path $name] } } - } if { $categories_p } { if { $type eq "folder" } { @@ -423,10 +439,6 @@ } -if { $expose_rss_p } { - db_multirow feeds select_subscrs {} -} - if {$format eq "list"} { set content_size_total 0 }