function requirement_get_children($parent) { global $db; $tbl_req = REQ_TBL; $f_req_id = REQ_ID; $f_req_filename = REQ_FILENAME; $f_req_parent = REQ_PARENT; $children = array(); # retrieve all children of $parent $q = "\tSELECT {$f_req_id}, {$f_req_filename}\n\t\t\tFROM {$tbl_req}\n\t\t\tWHERE {$f_req_parent} = {$parent}"; $result = db_query($db, $q); # display each child while ($row = db_fetch_row($db, $result)) { # call this function again to display this # child's children # we don't need the child's children in this function # for display on the req detail page, we only need immediate children # not sub-children. We'll need sub-children for the tree view $children[] = array("uid" => $row[REQ_ID], "name" => $row[REQ_FILENAME], "children" => requirement_get_children($row[REQ_ID])); } return $children; }
$filter_priority = ""; $order_by = REQ_FILENAME; $order_dir = "ASC"; $page_number = 1; util_set_filter('per_page', $filter_per_page, $_POST); util_set_filter('doc_type', $filter_doc_type, $_POST); util_set_filter('status', $filter_status, $_POST); util_set_filter('area_covered', $filter_area_covered, $_POST); util_set_filter('functionality', $filter_functionality, $_POST); util_set_filter('assign_release', $filter_assign_release, $_POST); util_set_filter('requirement_search', $filter_search, $_POST); util_set_filter('priority', $filter_priority, $_POST); util_set_order_by($order_by, $_POST); util_set_order_dir($order_dir, $_POST); util_set_page_number($page_number, $_POST); $rows_children = requirement_get_children($s_req_id); $selected_rows = array(); foreach ($rows_children as $row_child) { $selected_rows[$row_child["uid"]] = ""; } session_records("requirement_requirement_assoc", $selected_rows); html_window_title(); html_print_body(); html_page_title($project_name . " - " . lang_get("req_req_assoc_page")); html_page_header($db, $project_name); html_print_menu(); requirement_menu_print($page); error_report_check($_GET); $row_requirement = requirement_get_detail($project_id, $s_req_id, $s_req_version_id); foreach ($row_requirement as $row_detail) { $req_name = $row_detail[REQ_FILENAME];
print "<div align=center>" . NEWLINE; html_print_requirements_filter($project_id, $filter_doc_type, $filter_status, $filter_area_covered, $filter_functionality, $filter_assign_release, $filter_per_page = null, $filter_show_versions = null, $filter_search, $filter_priority); print "<br>" . NEWLINE; print "</div>"; print "</form>"; $rows_top_level_requirements = requirement_get($project_id, $page_number = 0, $order_by = REQ_FILENAME, $order_dir = "ASC", $filter_doc_type, $filter_status, $filter_area_covered, $filter_functionality, $filter_assign_release, $filter_show_versions = 'latest', $filter_per_page, $filter_search, $filter_priority, $csv_name = null, $root_node = true); # tree array $tree = array(); if ($rows_top_level_requirements) { # get the children of the top level requirements foreach ($rows_top_level_requirements as $row_req) { $root_node = $row_req[REQ_ID]; $req_version = $row_req[REQ_VERS_VERSION]; $root_node_name = $row_req[REQ_FILENAME]; # build the tree array $tree[] = array("uid" => $root_node, "name" => $root_node_name, "children" => requirement_get_children($root_node)); } # print the tree array as html html_dynamic_tree("requirements", $tree, $root_node = true); } else { html_no_records_found_message(lang_get("no_requirements")); } html_print_footer(); # --------------------------------------------------------------------- # $Log: requirement_associations_page.php,v $ # Revision 1.6 2007/02/03 10:25:53 gth2 # no message # # Revision 1.5 2006/08/05 22:08:37 gth2 # adding NEWLINE constant to support multiple OS newline chars - gth #