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 -N -r1.32 -r1.33
--- openacs-4/packages/file-storage/www/folder-chunk.tcl 26 May 2005 08:28:46 -0000 1.32
+++ openacs-4/packages/file-storage/www/folder-chunk.tcl 8 Aug 2006 21:26:49 -0000 1.33
@@ -10,6 +10,7 @@
folder_name:onevalue
contents:multirow
content_size_total:onevalue
+ page_num
}
if {![exists_and_not_null folder_id]} {
@@ -43,7 +44,7 @@
}
if {![exists_and_not_null fs_url]} {
- set fs_url ""
+ set fs_url [ad_conn package_url]
}
set folder_name [lang::util::localize [fs::get_object_name -object_id $folder_id]]
@@ -54,12 +55,16 @@
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 {![exists_and_not_null root_folder_id]} {
- set root_folder_id [fs::get_root_folder]
+ set root_folder_id [lindex $package_and_root 1]
}
if {![string equal $root_folder_id $folder_id]} {
- set folder_path [db_exec_plsql get_folder_path {}]
+ set folder_path "[db_exec_plsql get_folder_path {}]\\"
} else {
set folder_path ""
}
@@ -69,30 +74,40 @@
# for now, invite users to upload, and then they will be asked to
# login if they are not.
-lappend actions "\#file-storage.Add_File\#" ${fs_url}file-add?[export_vars folder_id] "Upload a file in this folder" "\#file-storage.Create_a_URL\#" ${fs_url}simple-add?[export_vars folder_id] "Add a link to a web page" "\#file-storage.New_Folder\#" ${fs_url}folder-create?[export_vars {{parent_id $folder_id}}] "\#file-storage.Create_a_new_folder\#"
+set cancel_url "[ad_conn url]?[ad_conn query]"
+set add_url [export_vars -base "${fs_url}file-add" {folder_id}]
-set expose_rss_p [parameter::get -parameter ExposeRssP -default 0]
+lappend actions "#file-storage.Add_File#" [export_vars -base "${fs_url}file-upload-confirm" {folder_id cancel_url {return_url $add_url}}] "[_ file-storage.lt_Upload_a_file_in_this]" "#file-storage.Create_a_URL#" ${fs_url}simple-add?[export_vars folder_id] "[_ file-storage.lt_Add_a_link_to_a_web_p]" "#file-storage.New_Folder#" ${fs_url}folder-create?[export_vars {{parent_id $folder_id}}] "#file-storage.Create_a_new_folder#" "[_ file-storage.lt_Upload_compressed_fol]" ${fs_url}folder-zip-add?[export_vars folder_id] "[_ file-storage.lt_Upload_a_compressed_f]"
+set expose_rss_p [parameter::get -parameter ExposeRssP -package_id $package_id -default 0]
+set like_filesystem_p [parameter::get -parameter BehaveLikeFilesystemP -default 1]
+
+set target_window_name [parameter::get -parameter DownloadTargetWindowName -package_id $package_id -default ""]
+if { [string equal $target_window_name ""] } {
+ set target_attr ""
+} else {
+ set target_attr "target=\"$target_window_name\""
+}
+
if {$delete_p} {
- lappend actions "\#file-storage.Delete_this_folder\#" ${fs_url}folder-delete?[export_vars folder_id] "\#file-storage.Delete_this_folder\#"
+ lappend actions "#file-storage.Delete_this_folder#" ${fs_url}folder-delete?[export_vars folder_id] "#file-storage.Delete_this_folder#"
}
if {$admin_p} {
- set return_url [ad_conn url]
- lappend actions "\#file-storage.Edit_Folder\#" "${fs_url}folder-edit?folder_id=$folder_id" "\#file-storage.Rename_this_folder\#"
- lappend actions "\#file-storage.lt_Modify_permissions_on_1\#" "${fs_url}permissions?[export_vars -override {{object_id $folder_id}} {return_url}]" "\#file-storage.lt_Modify_permissions_on_1\#"
+ lappend actions "#file-storage.Edit_Folder#" "${fs_url}folder-edit?folder_id=$folder_id" "#file-storage.Rename_this_folder#"
+ lappend actions "#file-storage.lt_Modify_permissions_on_1#" "${fs_url}permissions?[export_vars -override {{object_id $folder_id}} {{return_url "[ad_conn url]"}}]" "#file-storage.lt_Modify_permissions_on_1#"
if { $expose_rss_p } {
lappend actions "Configure RSS" "${fs_url}admin/rss-subscrs?folder_id=$folder_id" "Configure RSS"
}
}
#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 = 0),pretty_type desc} \
- orderby_asc {sort_key, pretty_type asc}] \
+ 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@} \
+ display_template {@contents.name@@contents.title@
@contents.name@} \
orderby_desc {fs_objects.name desc} \
orderby_asc {fs_objects.name asc}] \
short_name \
@@ -115,11 +130,23 @@
link_url_col properties_url] \
new_version_link \
[list label "" \
- link_url_col new_version_url]
+ link_url_col new_version_url] \
+ download_link \
+ [list label "" \
+ link_url_col download_url]
]
+if {![exists_and_not_null return_url]} {
+ set return_url [export_vars -base "index" {folder_id}]
+}
+set vars_to_export [list return_url]
+
if {$allow_bulk_actions} {
- set bulk_actions [list "Move" "move" "Move Checked Items to Another Folder" "Copy" "copy" "Copy Checked Items to Another Folder" "Delete" "delete" "Delete Checked Items"]
+ set bulk_actions [list "[_ file-storage.Move]" "${fs_url}move" "[_ file-storage.lt_Move_Checked_Items_to]" "[_ file-storage.Copy]" "${fs_url}copy" "[_ file-storage.lt_Copy_Checked_Items_to]" "[_ file-storage.Delete]" "${fs_url}delete" "[_ file-storage.Delete_Checked_Items]"]
+ callback fs::folder_chunk::add_bulk_actions \
+ -bulk_variable "bulk_actions" \
+ -folder_id $folder_id \
+ -var_export_list "vars_to_export"
} else {
set bulk_actions ""
}
@@ -128,9 +155,6 @@
set actions {}
}
-set return_url [export_vars -base "index" {folder_id}]
-set vars_to_export [list return_url]
-
template::list::create \
-name contents \
-multirow contents \
@@ -152,8 +176,10 @@
}
}
} \
+ -pass_properties [list target_attr] \
-filters {
folder_id {hide_p 1}
+ page_num
} \
-elements $elements
@@ -163,14 +189,14 @@
set orderby " order by fs_objects.sort_key, fs_objects.name asc"
}
-db_multirow -extend {label icon last_modified_pretty content_size_pretty properties_link properties_url download_url new_version_link new_version_url} contents select_folder_contents {} {
+db_multirow -extend {label icon last_modified_pretty content_size_pretty properties_link properties_url download_link download_url new_version_link new_version_url} 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 "]
+ set last_modified_pretty [lc_time_fmt $last_modified_ansi "%x %X"]
if {[string equal $type "folder"]} {
set content_size_pretty [lc_numeric $content_size]
append content_size_pretty " [_ file-storage.items]"
- set pretty_type "Folder"
+ set pretty_type "#file-storage.Folder#"
} else {
if {$content_size < 1024} {
set content_size_pretty "[lc_numeric $content_size] [_ file-storage.bytes]"
@@ -197,7 +223,8 @@
set new_version_url {}
set icon "/resources/file-storage/folder.gif"
set file_url "${fs_url}index?[export_vars {{folder_id $object_id}}]"
- set download_url $file_url
+ set download_link [_ file-storage.Download]
+ set download_url "${fs_url}download-archive/index?[export_vars {object_id}]"
}
url {
set properties_link [_ file-storage.properties]
@@ -206,16 +233,53 @@
set new_version_url "${fs_url}file-add?[export_vars {{file_id $object_id}}]"
set icon "/resources/acs-subsite/url-button.gif"
set file_url ${url}
- set download_url $file_url
+ set download_url {}
+ set download_link {}
+
}
+ symlink {
+ set properties_link [_ file-storage.properties]
+ set object_id [content::symlink::resolve -item_id $object_id]
+ db_1row file_info {select * from fs_objects where object_id = :object_id}
+ if {[string equal $type "folder"]} {
+ set content_size_pretty [lc_numeric $content_size]
+ 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 properties_url "${fs_url}file?[export_vars {{file_id $object_id}}]"
+ set new_version_link [_ acs-kernel.common_New]
+ set new_version_url "${fs_url}file-add?[export_vars {{file_id $object_id}}]"
+ set icon "/resources/file-storage/file.gif"
+ set file_url "${fs_url}view/${file_url}"
+ set download_link [_ file-storage.Download]
+ if {$like_filesystem_p} {
+ set download_url "${fs_url}download/$title?[export_vars {{file_id $object_id}}]"
+ set file_url $download_url
+ } else {
+ set download_url "${fs_url}download/$name?[export_vars {{file_id $object_id}}]"
+ }
+ }
default {
set properties_link [_ file-storage.properties]
set properties_url "${fs_url}file?[export_vars {{file_id $object_id}}]"
set new_version_link [_ acs-kernel.common_New]
set new_version_url "${fs_url}file-add?[export_vars {{file_id $object_id}}]"
set icon "/resources/file-storage/file.gif"
set file_url "${fs_url}view/${file_url}"
- set download_url "${fs_url}download/?[export_vars {{file_id $object_id}}]"
+ set download_link [_ file-storage.Download]
+ if {$like_filesystem_p} {
+ set download_url "${fs_url}download/$title?[export_vars {{file_id $object_id}}]"
+ set file_url $download_url
+ } else {
+ set download_url "${fs_url}download/$name?[export_vars {{file_id $object_id}}]"
+ }
}
}
@@ -234,4 +298,8 @@
set content_size_total 0
}
+if { $expose_rss_p } {
+ db_multirow feeds select_subscrs {}
+}
+
ad_return_template