Index: openacs-4/packages/file-storage/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/index.tcl,v diff -u -r1.28 -r1.29 --- openacs-4/packages/file-storage/www/index.tcl 26 May 2005 08:28:46 -0000 1.28 +++ openacs-4/packages/file-storage/www/index.tcl 8 Aug 2006 21:26:49 -0000 1.29 @@ -9,6 +9,7 @@ {folder_id:integer [fs_get_root_folder]} {n_past_days:integer "99999"} {orderby:optional} + {return_url ""} } -validate { valid_folder -requires {folder_id:integer} { if {![fs_folder_p $folder_id]} { @@ -91,6 +92,34 @@ set context [fs_context_bar_list -root_folder_id $root_folder_id $folder_id] +# Try to find a linked project so you can display a back link. +# This should become a callback in the long run. +# For now I leave it in as it is. + +set project_item_id [application_data_link::get_linked -from_object_id $folder_id -to_object_type "content_item"] +if {[exists_and_not_null project_item_id]} { + set project_url [pm::project::url -project_item_id $project_item_id] + set project_name [pm::project::name -project_item_id $project_item_id] +} else { + + # The folder itself was not linked. Let's try the parent folder. + set parent_folder [content::item::get_parent_folder -item_id $folder_id] + set project_item_id [application_data_link::get_linked -from_object_id $parent_folder -to_object_type "content_item"] + if {[exists_and_not_null project_item_id]} { + set project_url [pm::project::url -project_item_id $project_item_id] + set project_name [pm::project::name -project_item_id $project_item_id] + } else { + + # Neither this folder nor the parent folder was linked. Don't care... + set project_url {} + } +} + +# Check if the user has permissions. If not, don't care +if {![empty_string_p $project_item_id] && ![permission::permission_p -object_id $project_item_id -privilege "read"]} { + set project_url {} +} + set up_url {} if { !${root_folder_p}} { if {[llength $context] == 1} { @@ -100,16 +129,19 @@ set up_url [lindex [lindex $context end-1] 0] set up_name [lindex [lindex $context end-1] 1] } + set up_name [lang::util::localize $up_name] } set use_webdav_p [ad_parameter "UseWebDavP"] if { $use_webdav_p == 1} { set webdav_url [fs::webdav_url -item_id $folder_id] + regsub -all {/\$} $webdav_url {/\\$} webdav_url } # FIXME make this a parameter! set allow_bulk_actions 1 + ad_return_template