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.62 -r1.63 --- openacs-4/packages/file-storage/www/folder-chunk.tcl 14 Jan 2019 14:07:50 -0000 1.62 +++ openacs-4/packages/file-storage/www/folder-chunk.tcl 3 Sep 2024 15:37:38 -0000 1.63 @@ -1,15 +1,13 @@ -# file-storage/www/folder-chunk.tcl - ad_include_contract { @author yon (yon@openforce.net) @creation-date Feb 22, 2002 @cvs-id $Id$ } { orderby:token,optional {folder_id:integer ""} - {allow_bulk_actions:boolean true} + {allow_bulk_actions:boolean,notnull true} {category_id:integer ""} - {n_past_days:integer 99999} + {n_past_days:naturalnum ""} {fs_url:localurl "[ad_conn package_url]"} {return_url ""} {format "table"} @@ -29,6 +27,12 @@ page_num } +if {$n_past_days eq ""} { + set n_past_days 99999 +} + +set this_page [ad_return_url] + set viewing_user_id [ad_conn user_id] permission::require_permission -party_id $viewing_user_id -object_id $folder_id -privilege "read" @@ -88,6 +92,12 @@ } set expose_rss_p [parameter::get -parameter ExposeRssP -package_id $package_id -default 0] + +# Disable RSS exposure if the RSS generation is disabled +if {![parameter::get_global_value -package_key rss-support -parameter RssGenActiveP -default 1]} { + set expose_rss_p 0 +} + set like_filesystem_p [parameter::get -parameter BehaveLikeFilesystemP -package_id $package_id -default 1] set target_window_name [parameter::get -parameter DownloadTargetWindowName -package_id $package_id -default ""] @@ -133,23 +143,35 @@ set elements { type { label #file-storage.Type# - display_template {@contents.alt_icon@@contents.pretty_type@} + display_template { @contents.pretty_type@} } name { label #file-storage.Name# display_template { - @contents.name@ + @contents.name;noi18n@ @contents.title@
- @contents.name@ + @contents.name;noi18n@
} } + short_name { + label #file-storage.Name# + hide_p 1 + display_template { + + @contents.name;noi18n@ + @contents.title@ + + } + orderby_desc {fs_objects.name desc} + orderby_asc {fs_objects.name asc} + } content_size_pretty { label #file-storage.Size# display_template {@contents.content_size_pretty;noquote@} @@ -179,24 +201,26 @@ categories [list label [_ file-storage.Categories] display_col "categories;noquote"] } -if {[apm_package_installed_p views]} { +set views_installed_p [expr {[namespace which ::views::get] ne ""}] +if { $views_installed_p } { lappend elements views [list label "Views"] } if { $return_url eq "" } { set return_url [export_vars -base "index" {folder_id}] } -set vars_to_export [list return_url] +set vars_to_export [list return_url:sign(max_age=300)] set bulk_actions {} if {$allow_bulk_actions} { set user_id [ad_conn user_id] set bulk_delete_p [db_string some_deletables { - select exists (select 1 from fs_objects - where parent_id = :folder_id - and acs_permission__permission_p(object_id, :viewing_user_id, 'delete')) + select case when exists (select 1 from fs_objects + where parent_id = :folder_id + and acs_permission.permission_p(object_id, :viewing_user_id, 'delete')) then 1 else 0 end + from dual }] set bulk_copy_p [permission::permission_p -object_id $folder_id -privilege write] @@ -221,8 +245,9 @@ [_ file-storage.Delete] ${fs_url}delete [_ file-storage.Delete_Checked_Items] } + set zip_url ${fs_url}download-zip lappend bulk_actions \ - [_ file-storage.Download_ZIP] ${fs_url}download-zip [_ file-storage.Download_ZIP_Checked_Items] + [_ file-storage.Download_ZIP] $zip_url [_ file-storage.Download_ZIP_Checked_Items] callback fs::folder_chunk::add_bulk_actions \ -bulk_variable "bulk_actions" \ @@ -287,9 +312,6 @@ set orderby [template::list::orderby_clause -name contents_${folder_id} -orderby] -set categories_limitation [expr {$categories_p && $category_id ne "" ? - [db_map categories_limitation] : ""}] - db_multirow -extend { label alt_icon @@ -312,47 +334,39 @@ 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 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]" - } + set content_size_pretty [lc_content_size_pretty -size $content_size] } if { $content_size ne "" } { incr content_size_total $content_size } set views "" - if {[apm_package_installed_p views]} { + if { $views_installed_p } { array set views_arr [views::get -object_id $object_id] if {$views_arr(views_count) ne ""} { set views " $views_arr(views_count) / $views_arr(unique_views)" } } - set name [lang::util::localize $name] switch -- $type { folder { set properties_link "" set properties_url "" set new_version_link {} set new_version_url {} - set icon "/resources/file-storage/folder.gif" + set icon [::template::icon::name folder] set alt_icon #file-storage.folder# set file_url [export_vars -base "${fs_url}index" {{folder_id $object_id}}] set download_link [_ file-storage.Download] - set download_url "[export_vars -base "${fs_url}download-zip" -url {object_id}]" + set download_url [export_vars -base "${fs_url}download-zip" -url {object_id {return_url:sign(max_age=300) $this_page}}] } url { set properties_link [_ file-storage.properties] set properties_url [export_vars -base "${fs_url}simple" {object_id}] set new_version_link [_ acs-kernel.common_New] set new_version_url [export_vars -base "${fs_url}file-add" {{file_id $object_id}}] - set icon "/resources/acs-subsite/url-button.gif" + set icon [::template::icon::name link] # DRB: This alt text somewhat sucks, but the message key already exists in # the language catalog files we care most about and we want to avoid a new # round of translation work for this minor release if possible ... @@ -386,16 +400,12 @@ append content_size_pretty " [_ file-storage.items]" set pretty_type "#file-storage.Folder#" } else { - 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]" - } + set content_size_pretty [lc_content_size_pretty -size $content_size] } set properties_url [export_vars -base ${fs_url}file {{file_id $object_id}}] set new_version_link [_ acs-kernel.common_New] set new_version_url [export_vars -base ${fs_url}file-add {{file_id $object_id}}] - set icon "/resources/file-storage/file.gif" + set icon [::template::icon::name file] set alt_icon #file-storage.file# set download_link [_ file-storage.Download] if {$like_filesystem_p} { @@ -414,11 +424,11 @@ set new_version_link [_ acs-kernel.common_New] set new_version_url [export_vars -base ${fs_url}file-add {{file_id $object_id}}] } - set icon "/resources/file-storage/file.gif" - set alt_icon "#file-storage.file#" + set icon [::template::icon::name file] + set alt_icon #file-storage.file# set download_link [_ file-storage.Download] if {$like_filesystem_p} { - set download_url /file/$object_id/[ad_urlencode_path $title][file extension $name] + set download_url /file/$object_id/[ad_urlencode_path $title][ad_file extension $name] set file_url [export_vars -base ${fs_url}download/[ad_urlencode_path $title] {{file_id $object_id}}] } else { set download_url /file/$object_id/[ad_urlencode_path $name] @@ -451,7 +461,7 @@ } if {$content_size_total > 0} { - set compressed_url [export_vars -base ${fs_url}download-zip -url {{object_id $folder_id}}] + set compressed_url [export_vars -base ${fs_url}download-zip -url {{object_id $folder_id} {return_url:sign(max_age=300) $this_page}}] } # Local variables: