Index: openacs-4/packages/file-storage/tcl/file-storage-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-procs.tcl,v diff -u -r1.48.2.13 -r1.48.2.14 --- openacs-4/packages/file-storage/tcl/file-storage-procs.tcl 8 Mar 2006 17:11:37 -0000 1.48.2.13 +++ openacs-4/packages/file-storage/tcl/file-storage-procs.tcl 2 Apr 2006 22:11:48 -0000 1.48.2.14 @@ -714,21 +714,40 @@ } set do_notify_here_p "t" } else { + # th: fixed to set old item_id if item already exists and no new item needed to be created + db_1row get_old_item "" set do_notify_here_p "f" } - set revision_id [fs::add_version \ - -name $name \ - -tmp_filename $tmp_filename \ - -package_id $package_id \ - -item_id $item_id \ - -creation_user $creation_user \ - -creation_ip $creation_ip \ - -title $title \ - -description $description \ - -suppress_notify_p $do_notify_here_p \ - -storage_type $storage_type \ - -mime_type $mime_type - ] + if {$no_callback_p} { + set revision_id [fs::add_version \ + -name $name \ + -tmp_filename $tmp_filename \ + -package_id $package_id \ + -item_id $item_id \ + -creation_user $creation_user \ + -creation_ip $creation_ip \ + -title $title \ + -description $description \ + -suppress_notify_p $do_notify_here_p \ + -storage_type $storage_type \ + -mime_type $mime_type \ + -no_callback + ] + } else { + set revision_id [fs::add_version \ + -name $name \ + -tmp_filename $tmp_filename \ + -package_id $package_id \ + -item_id $item_id \ + -creation_user $creation_user \ + -creation_ip $creation_ip \ + -title $title \ + -description $description \ + -suppress_notify_p $do_notify_here_p \ + -storage_type $storage_type \ + -mime_type $mime_type + ] + } if {[string is true $do_notify_here_p]} { fs::do_notifications -folder_id $parent_id -filename $title -item_id $revision_id -action "new_file" -package_id $package_id @@ -836,7 +855,7 @@ if {[empty_string_p $creation_ip]} { set creation_ip [ns_conn peeraddr] } - set parent_id [get_parent -item_id $item_id] + set parent_id [fs::get_parent -item_id $item_id] if {[string equal "" $storage_type]} { set storage_type [db_string get_storage_type "select storage_type from cr_items where item_id=:item_id"] } @@ -922,7 +941,7 @@ } set tmp_size [file size $tmp_filename] - set parent_id [get_parent -item_id $item_id] + set parent_id [fs::get_parent -item_id $item_id] set revision_id [cr_import_content \ -item_id $item_id \ -storage_type $storage_type \ @@ -969,7 +988,7 @@ set version_name [get_object_name -object_id $item_id] if {[empty_string_p $parent_id]} { - set parent_id [get_parent -item_id $item_id] + set parent_id [fs::get_parent -item_id $item_id] } set folder_info [fs::get_folder_package_and_root $parent_id] @@ -995,7 +1014,7 @@ db_exec_plsql delete_folder "" if {[empty_string_p $parent_id]} { - set parent_id [get_parent -item_id $folder_id] + set parent_id [fs::get_parent -item_id $folder_id] } fs::do_notifications -folder_id $parent_id -filename $version_name -item_id $folder_id -action "delete_folder" Index: openacs-4/packages/file-storage/tcl/file-storage-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-procs.xql,v diff -u -r1.16.2.2 -r1.16.2.3 --- openacs-4/packages/file-storage/tcl/file-storage-procs.xql 16 Aug 2005 11:05:23 -0000 1.16.2.2 +++ openacs-4/packages/file-storage/tcl/file-storage-procs.xql 2 Apr 2006 22:11:48 -0000 1.16.2.3 @@ -117,6 +117,14 @@ + + + select item_id from cr_items + where name=:name + and parent_id=:parent_id + + + select parent_id from cr_items where item_id=:item_id Index: openacs-4/packages/file-storage/www/copy-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/copy-postgresql.xql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/file-storage/www/copy-postgresql.xql 20 Mar 2005 15:44:29 -0000 1.4 +++ openacs-4/packages/file-storage/www/copy-postgresql.xql 2 Apr 2006 22:11:49 -0000 1.4.2.1 @@ -60,7 +60,7 @@ where m.object_id = cf.folder_id and m.party_id = :user_id and m.privilege = 'write') - order by tree_level(ci1.tree_sortkey), cf.label + order by ci1.tree_sortkey, cf.label 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 -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 }] Index: openacs-4/packages/file-storage/www/file.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/file.tcl,v diff -u -r1.25 -r1.25.2.1 --- openacs-4/packages/file-storage/www/file.tcl 7 Mar 2005 15:32:12 -0000 1.25 +++ openacs-4/packages/file-storage/www/file.tcl 2 Apr 2006 22:11:49 -0000 1.25.2.1 @@ -96,8 +96,10 @@ } if {![string equal $version_id $live_revision]} { set version_url "view/${file_url}?[export_vars {{revision_id $version_id}}]" + set version_url [export_vars -base "download/$title" {version_id}] } else { set version_url "view/${file_url}" + set version_url [export_vars -base "download/$title" {file_id}] } set version_delete [_ file-storage.Delete_Version] set version_delete_url "version-delete?[export_vars version_id]" 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 -r1.31.2.16 -r1.31.2.17 --- openacs-4/packages/file-storage/www/folder-chunk.tcl 14 Dec 2005 13:55:28 -0000 1.31.2.16 +++ openacs-4/packages/file-storage/www/folder-chunk.tcl 2 Apr 2006 22:11:50 -0000 1.31.2.17 @@ -149,7 +149,6 @@ set bulk_actions "" } - if {$format eq "list"} { set actions {} } @@ -246,6 +245,7 @@ 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}}]" } Index: openacs-4/packages/file-storage/www/move-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/Attic/move-postgresql.xql,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/file-storage/www/move-postgresql.xql 13 Jan 2005 13:58:13 -0000 1.4 +++ openacs-4/packages/file-storage/www/move-postgresql.xql 2 Apr 2006 22:11:50 -0000 1.4.2.1 @@ -47,7 +47,7 @@ where m.object_id = cf.folder_id and m.party_id = :user_id and m.privilege = 'write') - order by tree_level(ci1.tree_sortkey), cf.label + order by ci1.tree_sortkey, cf.label Index: openacs-4/packages/file-storage/www/move.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/move.tcl,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/file-storage/www/move.tcl 13 Jan 2005 13:58:13 -0000 1.5 +++ openacs-4/packages/file-storage/www/move.tcl 2 Apr 2006 22:11:50 -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} } @@ -85,7 +86,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_move db_multirow -extend {move_url level} folder_tree get_folder_tree "" { # teadams 2003-08-22 - change level to level num to avoid Index: openacs-4/packages/file-storage/www/download/index.vuh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/download/index.vuh,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/file-storage/www/download/index.vuh 23 Feb 2006 14:29:35 -0000 1.4.2.2 +++ openacs-4/packages/file-storage/www/download/index.vuh 2 Apr 2006 22:11:50 -0000 1.4.2.3 @@ -29,5 +29,8 @@ ad_require_permission $version_id "read" -# cr_write_content -revision_id $version_id -cr_write_content -item_id $file_id \ No newline at end of file +if {[exists_and_not_null file_id]} { + cr_write_content -item_id $file_id +} else { + cr_write_content -revision_id $version_id +}