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
}
}
}