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) + + + +