Index: openacs-4/packages/cms/www/modules/sitemap/move.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/cms/www/modules/sitemap/move.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/cms/www/modules/sitemap/move.tcl 20 Apr 2001 20:51:10 -0000 1.1 +++ openacs-4/packages/cms/www/modules/sitemap/move.tcl 24 May 2001 23:57:17 -0000 1.2 @@ -12,9 +12,6 @@ set folder_id $id } - -set db [template::get_db_handle] - # permission check - must have cm_write on the current folder set user_id [User::getID] content::check_access $folder_id cm_new -user_id $user_id @@ -29,15 +26,15 @@ set no_items_on_clipboard "f" } -template::query path onevalue " +template::query get_path path onevalue " select content_item.get_path( :folder_id ) from dual " # get relevant marked items -template::query marked_items multirow " +template::query get_marked marked_items multirow " select content_item.get_title(item_id) title, content_item.get_path(item_id,:root_id) name, @@ -51,7 +48,6 @@ cms_permission.permission_p(item_id, :user_id, 'cm_write') = 't' " -template::release_db_handle form create move element create move mount_point \ @@ -97,41 +93,37 @@ form get_values move id mount_point set moved_items [element get_values move moved_items] + db_transaction { + set folder_flush_list [list] + foreach mv_item_id $moved_items { + set parent_id [element get_values move "parent_id_$mv_item_id"] - set db [template::begin_db_transaction] + set sql - set folder_flush_list [list] - foreach mv_item_id $moved_items { - set parent_id [element get_values move "parent_id_$mv_item_id"] - - set sql " + if { [catch {db_exec_plsql move_items " begin content_item.move( item_id => :mv_item_id, target_folder_id => :folder_id ); - end;" + end;"} errmsg] } { + # possibly a duplicate name + ns_log notice "move.tcl - while moving $errmsg" + } - if { [catch {template::query move_items dml $sql} errmsg] } { - # possibly a duplicate name - ns_log notice "move.tcl - while moving $errmsg" - } + # flush the cache + if { [lsearch -exact $folder_flush_list $parent_id] == -1 } { + lappend folder_flush_list $parent_id + if { $parent_id == $root_id } { + set parent_id "" + } + cms_folder::flush $mount_point $parent_id + } - # flush the cache - if { [lsearch -exact $folder_flush_list $parent_id] == -1 } { - lappend folder_flush_list $parent_id - if { $parent_id == $root_id } { - set parent_id "" - } - cms_folder::flush $mount_point $parent_id - } - + } } - template::end_db_transaction - template::release_db_handle - # flush cache for destination folder if { $folder_id == $root_id } { set folder_id "" @@ -143,4 +135,4 @@ # Specify a null id so that the entire branch will be refreshed template::forward \ "refresh-tree?goto_id=$folder_id&mount_point=$mount_point" -} \ No newline at end of file +}