Index: openacs-4/packages/file-storage/lib/folder-admin.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/folder-admin.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-admin.adp 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,2 @@
+#acs-kernel.common_Add#
+
\ No newline at end of file
Index: openacs-4/packages/file-storage/lib/folder-admin.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/folder-admin.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-admin.tcl 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,5 @@
+set admin_p [permission::permission_p -object_id $folder_id -party_id [ad_conn user_id] -privilege "admin"]
+set return_url [ad_return_url]
+foreach { package_id root_folder_id } [fs::get_folder_package_and_root $folder_id] break
+set fs_url [site_node::get_url_from_object_id -object_id $package_id]
+set folder_url [export_vars -base $fs_url {folder_id return_url}]
\ No newline at end of file
Index: openacs-4/packages/file-storage/lib/folder-links-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/folder-links-oracle.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-links-oracle.xql 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,59 @@
+
+
+
+ oracle8.1.6
+
+
+
+ fs_objects.object_id in (select item_id from cr_items
+ connect by prior parent_id=item_id
+ start with parent_id=:folder_id)
+
+
+
+
+
+
+ select fs_objects.object_id,
+ fs_objects.name,
+ fs_objects.live_revision,
+ fs_objects.type,
+ fs_objects.pretty_type,
+ to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified_ansi,
+ fs_objects.content_size,
+ fs_objects.url,
+ fs_objects.sort_key,
+ fs_objects.file_upload_name,
+ nvl(fs_objects.title,fs_objects.name) as title,
+ fs_objects.description,
+ case
+ when :folder_path is null
+ then fs_objects.file_upload_name
+ else :folder_path || '/' || fs_objects.file_upload_name
+ end as file_url,
+ fs_objects.html_description
+ from fs_objects
+ where fs_objects.parent_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_objects.object_id
+ and m.party_id = :viewing_user_id
+ and m.privilege = 'read')
+ and fs_objects.approved_p = 't'
+ and ((fs_objects.active_date_start is null) or (sysdate >= fs_objects.active_date_start))
+ and ((fs_objects.active_date_end is null) or (sysdate <= fs_objects.active_date_end))
+ $object_list_where
+ order by fs_objects.sort_key, fs_objects.order_n, fs_objects.name
+
+
+
+
+
+
+ declare begin
+ :1 := content_item.get_path(:folder_id, :root_folder_id);
+ end;
+
+
+
+
Index: openacs-4/packages/file-storage/lib/folder-links-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/folder-links-postgresql.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-links-postgresql.xql 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,58 @@
+
+
+
+ postgresql7.3D
+
+
+ fs_objects.object_id in (select item_id from cr_items where
+ tree_sortkey between (select tree_sortkey from cr_items where
+ item_id = :folder_id) and (select tree_right(tree_sortkey) from
+ cr_items where item_id = :folder_id)
+
+
+
+
+
+
+ select fs_objects.object_id,
+ fs_objects.name,
+ fs_objects.live_revision,
+ fs_objects.type,
+ fs_objects.pretty_type,
+ to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified_ansi,
+ fs_objects.content_size,
+ fs_objects.url,
+ fs_objects.sort_key,
+ fs_objects.file_upload_name,
+ coalesce(fs_objects.title,fs_objects.name) as title,
+ -- fs_objects.description,
+ case
+ when :folder_path is null
+ then fs_objects.file_upload_name
+ else :folder_path || '/' || fs_objects.file_upload_name
+ end as file_url --,
+-- fs_objects.html_description
+ from fs_objects
+ where fs_objects.parent_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_objects.object_id
+ and m.party_id = :viewing_user_id
+ and m.privilege = 'read')
+-- and fs_objects.approved_p = 't'
+-- and ((fs_objects.active_date_start is null) or (current_timestamp >= fs_objects.active_date_start))
+-- and ((fs_objects.active_date_end is null) or (current_timestamp <= fs_objects.active_date_end))
+ $object_list_where
+ order by fs_objects.sort_key, fs_objects.name
+-- order by fs_objects.sort_key, fs_objects.order_n, fs_objects.name
+
+
+
+
+
+
+ select content_item__get_path(:folder_id, :root_folder_id)
+
+
+
+
Index: openacs-4/packages/file-storage/lib/folder-links.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/folder-links.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-links.adp 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,7 @@
+
+
+
+@contents.title@ #acs-kernel.common_Edit#
+
+
+
\ No newline at end of file
Index: openacs-4/packages/file-storage/lib/folder-links.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/folder-links.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-links.tcl 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,112 @@
+# shows a list of links from a file-storage folder.
+
+# @param base_url URL to prepend to the relative URL from file-storage
+# used to deliver content from another index.vuh than
+# file-storage/view/
+if {![exists_and_not_null base_url]} {
+ set base_url "/view/"
+}
+# @param object_list restrict results to object_ids in object_list
+if {![exists_and_not_null object_list]} {
+ set object_list {}
+}
+# @param show_all_p include subfolders and contents? default 0
+if {![exists_and_not_null show_all_p]} {
+ set show_all_p 0
+}
+# @param admin_p show links to properties page for a file? default 0
+if {![exists_and_not_null admin_p]} {
+ set admin_p 0
+}
+# @param return_url URL to add to admin links
+if {![exists_and_not_null return_url]} {
+ set return_url [ad_return_url]
+}
+
+if {$show_all_p} {
+ set parent_context_where [db_map parent_context_all]
+} else {
+ set parent_context_where " fs_objects.parent_id = :folder_id"
+}
+
+set object_list_where ""
+
+set viewing_user_id [ad_conn user_id]
+
+permission::require_permission -party_id $viewing_user_id -object_id $folder_id -privilege "read"
+
+set folder_name [lang::util::localize [fs::get_object_name -object_id $folder_id]]
+
+foreach { package_id root_folder_id } [fs::get_folder_package_and_root $folder_id] break
+
+set fs_url [site_node::get_url_from_object_id -object_id $package_id]
+if {![string equal $root_folder_id $folder_id] && [string equal "/view/" $base_url]} {
+ set folder_path [db_exec_plsql get_folder_path {}]
+} else {
+ set folder_path ""
+}
+
+if {[llength $object_list]} {
+ set object_list_where " and fs_objects.object_id in ([join $object_list ", "])"
+}
+
+db_multirow -extend { edit_url icon last_modified_pretty content_size_pretty properties_link properties_url download_url target_tag } 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 {![empty_string_p $description]} {
+# set description " - $description"
+# }
+
+ if {[string equal $type "folder"]} {
+ set content_size_pretty [lc_numeric $content_size]
+ append content_size_pretty " [_ file-storage.items]"
+ set pretty_type "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 file_upload_name [fs::remove_special_file_system_characters -string $file_upload_name]
+
+ set name [lang::util::localize $name]
+
+ if {![info exists download_base_url] } {
+ set download_base_url ""
+ }
+ switch -- $type {
+ folder {
+ set properties_link ""
+ set properties_url ""
+ set icon ""
+ set file_url ""
+ set download_url ""
+ }
+ url {
+ set properties_link "properties"
+ set properties_url "${fs_url}simple?[export_vars {object_id return_url}]"
+ set icon "/resources/acs-subsite/url-button.gif"
+ set file_url ${url}
+ set download_url $file_url
+ }
+ default {
+
+ set properties_link [_ file-storage.properties]
+ set properties_url "${fs_url}file?[export_vars {{file_id $object_id} return_url}]"
+ set icon "/resources/file-storage/file.gif"
+ set file_url "${base_url}${file_url}"
+ set download_url "${fs_url}download/?[export_vars {{file_id $object_id}}]"
+ }
+ }
+
+
+ # We need to encode the hashes in any i18n message keys (.LRN plays this trick on some of its folders).
+ # If we don't, the hashes will cause the path to be chopped off (by ns_conn url) at the leftmost hash.
+ regsub -all {#} $file_url {%23} file_url
+}
+
+ad_return_template
Index: openacs-4/packages/file-storage/lib/folder-links.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/lib/Attic/folder-links.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/file-storage/lib/folder-links.xql 21 Jul 2005 18:46:20 -0000 1.1.2.1
@@ -0,0 +1,13 @@
+
+
+
+
+
+ select subscr_id, short_name, folder_id
+ from fs_rss_subscrs
+ where folder_id = :folder_id
+ order by upper(short_name)
+
+
+
+