/** * Folds a given node and returns the HTML of the folded node. */ public static function tree_fold_node() { parent::$json_data += array('folded_node' => '', 'folded_sub_tree_nodes' => array(), 'folded_sub_tree' => '', 'total_displayed_nodes' => 0); $tree = new ApmTreeData(); $tree->load_last_tree(); if (isset($_POST['node_to_fold']) && is_numeric($_POST['node_to_fold'])) { $node_to_fold = $_POST['node_to_fold']; $tree->fold_node($node_to_fold); parent::$json_data['folded_node'] = $node_to_fold; parent::$json_data['folded_sub_tree_nodes'] = $tree->get_tree_nodes($node_to_fold); //TODO: return only the visible nodes //Retrieve folded subtree to return it: $tree_nodes = $tree->get_ready_to_display_tree($node_to_fold); parent::$json_data['folded_sub_tree'] = self::get_html_tree($tree_nodes); parent::$json_data['total_displayed_nodes'] = $tree->get_visible_nodes_number(); } else { parent::add_error("Please send a \"node_to_fold\" as POST variable."); } parent::send_json(); }