Index: openacs-4/packages/acs-subsite/www/admin/site-map/allow-for-view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/admin/site-map/allow-for-view.tcl,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/acs-subsite/www/admin/site-map/allow-for-view.tcl 18 Sep 2018 23:24:16 -0000 1.9 +++ openacs-4/packages/acs-subsite/www/admin/site-map/allow-for-view.tcl 18 Sep 2018 23:38:34 -0000 1.10 @@ -5,8 +5,8 @@ } { checkbox:integer,multiple,optional - return_url:localurl -} + return_url:localurl +} set user_id [auth::require_login] @@ -19,39 +19,38 @@ set check_list [list] -# Here we make sure that when a child node is checked all his parents +# Here we make sure that when a child node is checked all his parents # in the tree are also checked as well foreach check_node $checkbox { if {$main_node eq $check_node} { - - # The main site node is always checked - lappend check_list $check_node - + + # The main site node is always checked + lappend check_list $check_node + } elseif {[site_node::get_parent_id -node_id $check_node] eq $main_node} { - # This node doesn't have a parent node, only the main site node - lappend check_list $check_node + # This node doesn't have a parent node, only the main site node + lappend check_list $check_node } else { - # The node has an immediate parent, we put it on the list and all his parents until the - # node_id equals the main site node_id and is already in the list - lappend check_list $check_node - while { - [site_node::get_parent_id -node_id $check_node] != $main_node + # The node has an immediate parent, we put it on the list and all his parents until the + # node_id equals the main site node_id and is already in the list + lappend check_list $check_node + while { + [site_node::get_parent_id -node_id $check_node] != $main_node && [site_node::get_parent_id -node_id $check_node] ni $check_list - } { + } { set check_node [site_node::get_parent_id -node_id $check_node] lappend check_list $check_node } } } - db_transaction { db_dml delete_nodes {} foreach checkbox $check_list { - db_dml insert_nodes {} + db_dml insert_nodes {} } }