Index: openacs-4/packages/categories/tcl/category-trees-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/tcl/category-trees-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/categories/tcl/category-trees-procs.tcl 6 Feb 2004 14:06:52 -0000 1.7 +++ openacs-4/packages/categories/tcl/category-trees-procs.tcl 6 Feb 2004 17:19:05 -0000 1.8 @@ -62,6 +62,25 @@ db_exec_plsql unmap_tree "" } + ad_proc -public edit_mapping { + -tree_id:required + -object_id:required + {-assign_single_p f} + {-require_category_p f} + } { + Edit the parameters of a mapped category tree. + + @option tree_id mapped category tree. + @option object_id object the category tree is mapped to. + @option assign_single_p shows if the user will be allowed to assign multiple + categories to objects or only a single one in this subtree. + @option require_category_p shows if the user will have to assign at least one + category to objects. + @author Timo Hentschel (timo@timohentschel.de) + } { + db_dml edit_mapping "" + } + ad_proc -public copy { -source_tree:required -dest_tree:required Index: openacs-4/packages/categories/tcl/category-trees-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/tcl/category-trees-procs.xql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/categories/tcl/category-trees-procs.xql 6 Feb 2004 14:06:52 -0000 1.4 +++ openacs-4/packages/categories/tcl/category-trees-procs.xql 6 Feb 2004 17:19:05 -0000 1.5 @@ -12,6 +12,19 @@ + + + + update category_tree_map + set assign_single_p = :assign_single_p, + require_category_p = :require_category_p + where tree_id = :tree_id + and object_id = :object_id + + + + + Index: openacs-4/packages/categories/www/cadmin/one-object.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/one-object.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/categories/www/cadmin/one-object.tcl 5 Feb 2004 18:58:48 -0000 1.4 +++ openacs-4/packages/categories/www/cadmin/one-object.tcl 6 Feb 2004 17:18:46 -0000 1.5 @@ -26,7 +26,7 @@ set page_title "Category Management" set context_bar [list $context_bar $page_title] -template::multirow create mapped_trees tree_name tree_id site_wide_p assign_single_p require_category_p unmap_url +template::multirow create mapped_trees tree_name tree_id site_wide_p assign_single_p require_category_p unmap_url edit_url db_foreach get_mapped_trees "" { set tree_name [category_tree::get_name $tree_id $locale] @@ -35,7 +35,8 @@ } template::multirow append mapped_trees $tree_name $tree_id $site_wide_p \ $assign_single_p $require_category_p \ - [export_vars -no_empty -base tree-unmap { tree_id locale object_id }] + [export_vars -no_empty -base tree-unmap { tree_id locale object_id }] \ + [export_vars -no_empty -base tree-map { tree_id locale object_id {edit_p 1}}] } @@ -66,10 +67,11 @@ required) optional) } } - unmap { + action { label "Action" display_template { - Unmap + Unmap     + Edit parameters } } } @@ -87,7 +89,7 @@ (Site-Wide Tree) } } - map { + action { label "Action" display_template { Map tree     Index: openacs-4/packages/categories/www/cadmin/tree-map.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/tree-map.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/categories/www/cadmin/tree-map.tcl 1 Feb 2004 19:12:52 -0000 1.2 +++ openacs-4/packages/categories/www/cadmin/tree-map.tcl 6 Feb 2004 17:18:47 -0000 1.3 @@ -13,8 +13,7 @@ {category_id:integer,optional ""} {locale ""} object_id:integer,notnull - {assign_single_p:optional f} - {require_category_p:optional f} + {edit_p 0} } set user_id [ad_maybe_redirect_for_registration] @@ -25,21 +24,35 @@ permission::require_permission -object_id $tree_id -privilege category_tree_read } -set context_bar [list [category::get_object_context $object_id] [list [export_vars -base one-object {locale object_id}]" "Category Management"]] +set context_bar [list [category::get_object_context $object_id] [list [export_vars -base one-object {locale object_id}]" "Category Management"] "Mapping Parameters"] +if {$edit_p} { + # parameters are edited, so get old data + db_1row get_mapped_subtree_id "" +} + if {[empty_string_p $category_id]} { - lappend context_bar "Map tree" - set page_title "Confirm mapping tree \"$tree(tree_name)\"" + set page_title "Parameters of mapping to tree \"$tree(tree_name)\"" } else { - lappend context_bar "Map subtree" - set page_title "Confirm mapping subtree \"$tree(tree_name) :: [category::get_name $category_id $locale]\"" + set page_title "Parameters of mapping to subtree \"$tree(tree_name) :: [category::get_name $category_id $locale]\"" } -ad_form -name tree_map_form -action tree-map -export { tree_id category_id locale object_id } -form { - {assign_single_p:text(radio) {label "Let users assign multiple categories?"} {value f} {options {{"Yes" f} {"No" t}}}} - {require_category_p:text(radio) {label "Require users to assign at least one category?"} {value f} {options {{"Yes" t} {"No" f}}}} +ad_form -name tree_map_form -action tree-map -export { tree_id category_id locale object_id edit_p } -form { + {assign_single_p:text(radio) {label "Let users assign multiple categories?"} {options {{"Yes" f} {"No" t}}}} + {require_category_p:text(radio) {label "Require users to assign at least one category?"} {options {{"Yes" t} {"No" f}}}} +} -on_request { + if {$edit_p} { + db_1row get_mapping_parameters "" + } else { + set assign_single_p f + set require_category_p f + } } -on_submit { - category_tree::map -tree_id $tree_id -subtree_category_id $category_id -object_id $object_id -assign_single_p $assign_single_p -require_category_p $require_category_p + if {$edit_p} { + category_tree::edit_mapping -tree_id $tree_id -object_id $object_id -assign_single_p $assign_single_p -require_category_p $require_category_p + } else { + category_tree::map -tree_id $tree_id -subtree_category_id $category_id -object_id $object_id -assign_single_p $assign_single_p -require_category_p $require_category_p + } } -after_submit { ad_returnredirect [export_vars -base one-object {locale object_id}] ad_script_abort Index: openacs-4/packages/categories/www/cadmin/tree-map.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/cadmin/Attic/tree-map.xql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/categories/www/cadmin/tree-map.xql 6 Feb 2004 17:18:47 -0000 1.1 @@ -0,0 +1,28 @@ + + + + + + + select subtree_category_id as category_id + from category_tree_map + where tree_id = :tree_id + and object_id = :object_id + + + + + + + + + select assign_single_p, require_category_p + from category_tree_map + where tree_id = :tree_id + and object_id = :object_id + + + + + +