Index: openacs-4/packages/categories/catalog/categories.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/catalog/categories.en_US.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/catalog/categories.en_US.ISO-8859-1.xml	6 Jun 2005 09:43:47 -0000	1.1
@@ -0,0 +1,15 @@
+<!--
+ -  This is free software distributed under the terms of the GNU Public
+ -  License.  Full text of the license is available from the GNU Project:
+ -  http://www.fsf.org/copyleft/gpl.html
+-->
+
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="categories" package_version="1.1d3" locale="en_US" charset="ISO-8859-1">
+
+  <msg key="cadmin">Category Management</msg>
+  <msg key="code_export">Export code to recreate category trees</msg>
+  <msg key="code_necessary">Tcl code to recreate selected category trees</msg>
+  <msg key="export">Export</msg>
+
+</message_catalog>
Index: openacs-4/packages/categories/lib/tree-code.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/lib/tree-code.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/lib/tree-code.adp	6 Jun 2005 09:43:47 -0000	1.1
@@ -0,0 +1,11 @@
+
+############
+# Category Tree "@tree.tree_name@"
+############
+category_tree::import \
+       -name {@tree.tree_name@} \
+       -description {@tree.description@} \
+       -locale $default_locale \
+       -categories {<multiple name="categories">
+           @categories.pad;noquote@@categories.level@   {@categories.name@}</multiple>
+       }
Index: openacs-4/packages/categories/lib/tree-code.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/lib/tree-code.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/lib/tree-code.tcl	6 Jun 2005 09:43:47 -0000	1.1
@@ -0,0 +1,9 @@
+set default_locale [lang::system::site_wide_locale]
+
+array set tree [category_tree::get_data $tree_id $default_locale]
+
+multirow create categories name level pad
+foreach category [category_tree::get_tree -all $tree_id $default_locale] {
+    util_unlist $category category_id category_name deprecated_p level
+    multirow append categories $category_name $level [string repeat "&nbsp;" [expr {2 * $level - 2}]]
+}
Index: openacs-4/packages/categories/www/cadmin/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/index.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/categories/www/cadmin/index.tcl	1 Mar 2005 00:01:26 -0000	1.8
+++ openacs-4/packages/categories/www/cadmin/index.tcl	6 Jun 2005 09:43:47 -0000	1.9
@@ -15,7 +15,7 @@
     trees_with_read_permission:multirow
 }
 
-set page_title "Category Management"
+set page_title "[_ categories.cadmin]"
 set context_bar [list $page_title]
 
 set user_id [auth::require_login]
@@ -61,12 +61,15 @@
     }
 }
 
-template::list::create \
+list::create \
     -name trees_with_write_permission \
     -no_data "None" \
-    -elements $elements
+    -elements $elements \
+    -key tree_id \
+    -bulk_action_export_vars {locale} \
+    -bulk_actions [list "[_ categories.export]" trees-code "[_ categories.code_export]"] \
 
-template::list::create \
+list::create \
     -name trees_with_read_permission \
     -no_data "None" \
     -elements $elements
Index: openacs-4/packages/categories/www/cadmin/tree-view.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/tree-view.tcl,v
diff -u -r1.11 -r1.12
--- openacs-4/packages/categories/www/cadmin/tree-view.tcl	1 Mar 2005 00:01:27 -0000	1.11
+++ openacs-4/packages/categories/www/cadmin/tree-view.tcl	6 Jun 2005 09:43:47 -0000	1.12
@@ -31,9 +31,9 @@
 
 set page_title "Category Tree \"$tree_name\""
 if {[info exists object_id]} {
-    set context_bar [list [category::get_object_context $object_id] [list [export_vars -no_empty -base object-map {locale object_id}] "Category Management"] $tree_name]
+    set context_bar [list [category::get_object_context $object_id] [list [export_vars -no_empty -base object-map {locale object_id}] "[_ categories.cadmin]"] $tree_name]
 } else {
-    set context_bar [list [list ".?[export_vars -no_empty {locale}]" "Category Management"] $tree_name]
+    set context_bar [list [list ".?[export_vars -no_empty {locale}]" "[_ categories.cadmin]"] $tree_name]
 }
 
 set can_write_p [permission::permission_p -object_id $tree_id -privilege category_tree_write]
Index: openacs-4/packages/categories/www/cadmin/trees-code.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/trees-code.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/www/cadmin/trees-code.adp	6 Jun 2005 09:43:47 -0000	1.1
@@ -0,0 +1,12 @@
+<master src="master">
+<property name="page_title">@page_title;noquote@</property>
+<property name="context_bar">@context_bar;noquote@</property>
+<property name="change_locale">f</property>
+
+<p>#categories.code_necessary#</p>
+<pre style="border: 1px solid #CCC; background-color: #EEE; padding: 10px;">
+set default_locale [lang::system::site_wide_locale]
+<multiple name=trees>
+<include src="/packages/categories/lib/tree-code" tree_id="@trees.tree_id@">
+</multiple>
+</pre>
Index: openacs-4/packages/categories/www/cadmin/trees-code.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/trees-code.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/categories/www/cadmin/trees-code.tcl	6 Jun 2005 09:43:47 -0000	1.1
@@ -0,0 +1,23 @@
+ad_page_contract {
+
+    @author Timo Hentschel (timo@timohentschel.de)
+    @creation-date 2005-06-05
+    @cvs-id $Id: trees-code.tcl,v 1.1 2005/06/06 09:43:47 timoh Exp $
+
+} {
+    {locale ""}
+    tree_id:multiple
+}
+
+set user_id [auth::require_login]
+permission::require_permission -object_id [ad_conn package_id] -privilege admin
+
+set page_title "[_ categories.code_export]"
+set context_bar [list [list ".?[export_vars -no_empty {locale}]" "[_ categories.cadmin]"] $page_title]
+
+multirow create trees tree_id
+foreach tid $tree_id {
+    multirow append trees $tid
+}
+
+ad_return_template