Index: openacs-4/packages/file-storage/www/copy.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/copy.tcl,v diff -u -N -r1.5 -r1.5.2.1 --- openacs-4/packages/file-storage/www/copy.tcl 20 Mar 2005 15:44:29 -0000 1.5 +++ openacs-4/packages/file-storage/www/copy.tcl 2 Apr 2006 22:11:49 -0000 1.5.2.1 @@ -10,6 +10,7 @@ object_id:notnull,integer,multiple folder_id:integer,optional {return_url ""} + {root_folder_id ""} {redirect_to_folder:boolean 0} {show_items:boolean 0} } @@ -21,6 +22,7 @@ set peer_addr [ad_conn peeraddr] set allowed_count 0 set not_allowed_count 0 +set package_id [ad_conn package_id] db_multirow -extend {copy_message} copy_objects get_copy_objects "" { if {$copy_p} { @@ -53,7 +55,15 @@ template::multirow foreach copy_objects { db_transaction { if {![string equal $type "folder"] } { - db_exec_plsql copy_item {} + set file_rev_id [db_exec_plsql copy_item {}] + set file_id [content::revision::item_id -revision_id $file_rev_id] + set object_rev_id [content::item::get_best_revision -item_id $object_id] + + set object_path "[cr_fs_path][cr_create_content_file_path $object_id $object_rev_id]" + set file_path [cr_create_content_file_path $file_id $file_rev_id] + cr_create_content_file $file_id $file_rev_id $object_path + + callback fs::file_revision_new -package_id $package_id -file_id $file_id -parent_id $folder_id } else { db_exec_plsql copy_folder {} } @@ -87,7 +97,10 @@ display_template {
@folder_tree.label@
} } } - set root_folder_id [fs::get_root_folder] + + if {[empty_string_p $root_folder_id]} { + set root_folder_id [fs::get_root_folder] + } set object_id $objects_to_copy db_multirow -extend {copy_url} folder_tree get_folder_tree "" { set copy_url [export_vars -base "copy" { object_id:multiple folder_id return_url }]