Index: openacs-4/packages/datamanager/tcl/datamanager-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/tcl/datamanager-callback-procs.tcl,v diff -u -N -r1.1.2.3 -r1.1.2.4 --- openacs-4/packages/datamanager/tcl/datamanager-callback-procs.tcl 10 Oct 2005 12:59:34 -0000 1.1.2.3 +++ openacs-4/packages/datamanager/tcl/datamanager-callback-procs.tcl 2 Nov 2005 17:02:19 -0000 1.1.2.4 @@ -31,6 +31,7 @@ ad_proc -public -callback datamanager::copy_forum { -object_id:required -selected_community:required + {-mode: "empty"} } { } @@ -103,6 +104,7 @@ ad_proc -public -callback datamanager::copy_folder { -object_id:required -selected_community:required + {-mode: "both"} } { } Index: openacs-4/packages/datamanager/tcl/datamanager-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/tcl/datamanager-procs.tcl,v diff -u -N -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/datamanager/tcl/datamanager-procs.tcl 19 Oct 2005 08:14:27 -0000 1.1.2.5 +++ openacs-4/packages/datamanager/tcl/datamanager-procs.tcl 2 Nov 2005 16:57:13 -0000 1.1.2.6 @@ -37,36 +37,36 @@ "faq" { #get faq data db_1row get_data_faq {} - set object_url use-faq + set object_url use-dotlrn_faq set object_type dotlrn_faq } "forums_forum" { db_1row get_data_forum {} - set object_url use-forum + set object_url use-dotlrn_forums set object_type dotlrn_forums } "news" { db_1row get_data_news {} - set object_url use-news + set object_url use-dotlrn_news set object_type dotlrn_news } "static_portal_content" { # db_1row get_data_static_portal {} - set object_url use-static-portlet + set object_url use-dotlrn_static set object_type dotlrn_static } "as_assessments" { # db_1row get_data_assessment {} - set object_url use-assessment + set object_url use-dotlrn_assessment set object_type dotlrn_assessment } "content_folder" { # db_1row get_data_folder {} - set object_url use-folder + set object_url use-dotlrn_fs set object_type dotlrn_fs } @@ -82,23 +82,27 @@ ad_proc -public get_available_communities { -object_type:required + -bulk_action_export_vars + -mode_list {-action_type "move"} } { Get the list of communities, subgroups or classes where an object can be moved } { +set copy_url [join [list use $object_type] "-"] - if {$action_type eq "move"} { set bulk_actions {} + set bulk_action_export_vars {} + set actions {} set elements { selected { label {[_ datamanager.Selected]} display_template { - + } } - community_id { + dest_community_id { hide_p 1 } @@ -112,9 +116,10 @@ } } } else { - set bulk_actions {Copy do-it {Copy cheched objects}} + set bulk_actions [list Copy $copy_url {Copy chequed objects}] + set actions $mode_list set elements { - community_id { + dest_community_id { hide_p 1 } @@ -129,18 +134,26 @@ } } +set my_bulk_action_export_vars [list] +foreach element $bulk_action_export_vars { - + set [lindex $element 0] [lindex $element 1] + lappend my_bulk_action_export_vars [lindex $element 0] +} +set action $action_type - + + #create the template_list template::list::create \ -name available_communities \ -multirow communities \ - -key community_id \ + -key dest_community_id \ + -actions $actions\ -bulk_actions $bulk_actions \ + -bulk_action_export_vars [concat $my_bulk_action_export_vars action]\ -elements $elements set comm_id [dotlrn_community::get_community_id] Index: openacs-4/packages/datamanager/tcl/datamanager-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/tcl/datamanager-procs.xql,v diff -u -N -r1.1.2.4 -r1.1.2.5 --- openacs-4/packages/datamanager/tcl/datamanager-procs.xql 10 Oct 2005 12:59:34 -0000 1.1.2.4 +++ openacs-4/packages/datamanager/tcl/datamanager-procs.xql 2 Nov 2005 17:02:19 -0000 1.1.2.5 @@ -75,7 +75,7 @@ - select community_id, community_type, pretty_name as name, parent_community_id + select community_id as dest_community_id, community_type, pretty_name as name, parent_community_id from dotlrn_communities_all where community_id in ([join $communities_list_p ","]) Index: openacs-4/packages/datamanager/www/one-object-copy.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/www/one-object-copy.tcl,v diff -u -N -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/datamanager/www/one-object-copy.tcl 28 Oct 2005 10:17:37 -0000 1.1.2.5 +++ openacs-4/packages/datamanager/www/one-object-copy.tcl 2 Nov 2005 17:02:19 -0000 1.1.2.6 @@ -52,6 +52,23 @@ [export_vars -base one-object-copy {object_id {mode "all"}}]\ "Select the forums with the threads and replies"] set mode_list [concat $empty_button $threads_button $all_button] +} elseif { $object_type eq "dotlrn_fs"} { + if {$mode == ""} { + set mode "both" + } + set empty_button [list "Empty" \ + [export_vars -base one-object-copy {object_id {mode "empty"}}] \ + "Copy the folders without files and subfolders"] + set subfolders_button [list "Subfolders" \ + [export_vars -base one-object-copy {object_id {mode "subfolders"}}] \ + "Copy the folders and its subfolders, but no files"] + set files_button [list "Files" \ + [export_vars -base one-object-copy {object_id {mode "files"}}] \ + "Copy the folders and its files, but no subfolders"] + set both_button [list "Files and subfolders" \ + [export_vars -base one-object-copy {object_id {mode "both"}}] \ + "Copy the folders with both files and subfolders"] + set mode_list [concat $empty_button $subfolders_button $files_button $both_button] } else { set mode_list {} } Index: openacs-4/packages/datamanager/www/one-object-move.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/www/Attic/one-object-move.tcl,v diff -u -N -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/datamanager/www/one-object-move.tcl 28 Oct 2005 10:17:37 -0000 1.1.2.5 +++ openacs-4/packages/datamanager/www/one-object-move.tcl 2 Nov 2005 16:58:12 -0000 1.1.2.6 @@ -15,10 +15,33 @@ dotlrn::require_user_admin_community -community_id [dotlrn_community::get_community_id] +if { [llength $object_id] > 1 } { + set descendant_ids [list] + set ancestors_ids [list] + set checked_items [list] + + db_multirow tree_sortkey_list get_tree_sortkey {} { +#always add to the list the first element + if {[llength $ancestors_ids]=="0"} { + lappend ancestors_ids $item_id + } else { +#a flag for "descendancy" test. At the begin, item has no ancestors + set descendant_p "f" + foreach c_item $checked_items { + set ancestor_p [db_exec_plsql get_ancestors_p1 {}] + + if {$ancestor_p && $c_item != $tree_sortkey} {set descendant_p "t"} + } + if {$descendant_p eq "f"} {lappend ancestors_ids $item_id} else {lappend descendant_ids $item_id} + } + lappend checked_items $tree_sortkey + } +} + set object_data [list] set object_name [list] -foreach object $object_id { +foreach object $ancestors_ids { set object_type [datamanager::get_object_type -object_id $object] set object_data_temp [datamanager::get_object_data -object_type $object_type -object_id $object] lappend object_data $object_data_temp Index: openacs-4/packages/datamanager/www/one-object-move.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/www/Attic/one-object-move.xql,v diff -u -N -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/datamanager/www/one-object-move.xql 20 Jul 2005 13:49:46 -0000 1.1.2.1 +++ openacs-4/packages/datamanager/www/one-object-move.xql 2 Nov 2005 16:58:12 -0000 1.1.2.2 @@ -80,4 +80,25 @@ + + + select tree_sortkey,item_id,tree_level(tree_sortkey) as tree_level + from cr_items + where item_id in ([join $object_id ","]) + order by item_id + + + + + +select tree_ancestor_p(:c_item,:tree_sortkey) + + + + + +select tree_ancestor_p(:tree_sortkey,:c_item) + + + Index: openacs-4/packages/datamanager/www/use-dotlrn_fs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/datamanager/www/use-dotlrn_fs.tcl,v diff -u -N -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/datamanager/www/use-dotlrn_fs.tcl 31 Oct 2005 12:29:28 -0000 1.1.2.1 +++ openacs-4/packages/datamanager/www/use-dotlrn_fs.tcl 2 Nov 2005 17:02:19 -0000 1.1.2.2 @@ -7,6 +7,7 @@ object_id:notnull action:notnull dest_community_id:multiple + {mode: "both"} } -properties { } @@ -29,7 +30,7 @@ foreach object $object_id { #only administrator or professor must be allowed to enter this page dotlrn::require_user_admin_community -community_id $community - callback -catch datamanager::copy_folder -object_id $object -selected_community $community + callback -catch datamanager::copy_folder -object_id $object -selected_community $community -mode $mode } } }