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.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.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
}