* **/ require '../../config.inc.php'; require_once 'common.php'; require_once 'exttable.class.php'; testlinkInitPage($db, false, false, "checkRights"); $templateCfg = templateConfiguration(); $args = init_args(); $gui = new stdClass(); $gui->tproject_name = $args->tproject_name; $gui->show_only_active = $args->show_only_active; $gui->warning_msg = ''; list($gui->tplan_metrics, $gui->show_platforms) = getMetrics($db, $args); if (count($gui->tplan_metrics) > 0) { // Create column headers $columns = getColumnsDefinition($gui->show_platforms); // Extract the relevant data and build a matrix $matrixData = array(); foreach ($gui->tplan_metrics as $tplan_metrics) { foreach ($tplan_metrics as $platform_metric) { $rowData = array(); $rowData[] = strip_tags($platform_metric['tplan_name']); if ($gui->show_platforms) { $rowData[] = strip_tags($platform_metric['platform_name']); } $rowData[] = $platform_metric['total']; $rowData[] = $platform_metric['active']; $rowData[] = $platform_metric['executed']; //to be able to properly sort by percentage add html comment //show percentage for platforms/testplan with no executed test cases as 0 $executed_vs_active_string = "<!-- 0 -->0";
$map_statuscode_css[$code]['translation'] = lang_get($label); $map_statuscode_css[$code]['css_class'] = $map_code_status[$code] . '_text'; } } // Get all test cases created by user in the current project $options = new stdClass(); $options->mode = 'full_path'; $gui->resultSet = $tcase_mgr->get_created_per_user($args->tproject_id, $args->tplan_id, $options); if ($doIt = !is_null($gui->resultSet)) { $tables = tlObjectWithDB::getDBTables(array('nodes_hierarchy')); $tplanSet = array_keys($gui->resultSet); $sql = "SELECT name,id FROM {$tables['nodes_hierarchy']} " . "WHERE id IN (" . implode(',', $tplanSet) . ")"; $gui->tplanNames = $db->fetchRowsIntoMap($sql, 'id'); $optColumns = array('priority' => $args->priority_enabled); foreach ($gui->resultSet as $tplan_id => $tcase_set) { list($columns, $sortByColumn) = getColumnsDefinition($optColumns); $rows = array(); foreach ($tcase_set as $tcase_platform) { foreach ($tcase_platform as $tcase) { $current_row = array(); $tcase_id = $tcase['testcase_id']; $tcversion_id = $tcase['tcversion_id']; $current_row[] = htmlspecialchars($tcase['login']); $current_row[] = htmlspecialchars($tcase['tcase_full_path']); // create linked icons $exec_history_link = "<a href=\"javascript:openExecHistoryWindow({$tcase_id});\">" . "<img title=\"{$l18n['execution_history']}\" src=\"{$history_img}\" /></a> "; $edit_link = "<a href=\"javascript:openTCEditWindow({$gui->tproject_id},{$tcase_id});\">" . "<img title=\"{$l18n['design']}\" src=\"{$edit_img}\" /></a> "; $current_row[] = "<!-- " . sprintf("%010d", $tcase['tc_external_id']) . " -->" . $exec_history_link . $edit_link . htmlspecialchars($tcase['prefix']) . $gui->glueChar . $tcase['tc_external_id'] . " : " . htmlspecialchars($tcase['name']) . sprintf($l18n['tcversion_indicator'], $tcase['version']); if ($args->priority_enabled) { //BUGID 4418 - clean up priority usage $current_row[] = "<!-- " . $tcase['priority'] . " -->" . $priority[priority_to_level($tcase['priority'])];
$testcase_bugs[$tc_id] = array($suiteName, $tc_name, array()); } foreach ($bug_urls as $url) { if (!in_array($url, $testcase_bugs[$tc_id][2])) { $testcase_bugs[$tc_id][2][] = $url; } } } } foreach ($testcase_bugs as &$row) { $row[2] = implode("<br/>", $row[2]); } $arrData = array_values($testcase_bugs); if (count($arrData) > 0) { // Create column headers $columns = getColumnsDefinition(); // Extract the relevant data and build a matrix $matrixData = array(); foreach ($arrData as $bugs) { $rowData = array(); $rowData[] = $bugs[0]; $rowData[] = $bugs[1]; $rowData[] = $bugs[2]; $matrixData[] = $rowData; } $table = new tlExtTable($columns, $matrixData, 'tl_table_bugs_per_test_case'); $table->setGroupByColumnName(lang_get('title_test_suite_name')); $table->setSortByColumnName(lang_get('title_test_case_title')); $table->sortDirection = 'ASC'; $table->showToolbar = true; $table->toolbarExpandCollapseGroupsButton = true;
function initializeGuiForResult(&$dbHandler, $argsObj, &$guiObj) { $rcfg = config_get('results'); $map_status_code = $rcfg['status_code']; $map_code_status = $rcfg['code_status']; $map_status_label = $rcfg['status_label']; $map_statuscode_css = array(); foreach ($map_code_status as $code => $status) { if (isset($map_status_label[$status])) { $label = $map_status_label[$status]; $map_statuscode_css[$code] = array(); $map_statuscode_css[$code]['translation'] = lang_get($label); $map_statuscode_css[$code]['css_class'] = $map_code_status[$code] . '_text'; } } $options = array(); // convert starttime to iso format for database usage $dateFormat = config_get('date_format'); $k2l = array('selected_start_date' => 'startTime', 'selected_end_date' => 'endTime'); foreach ($k2l as $in => $opt) { if (isset($argsObj->{$in}) && sizeof($argsObj->{$in}) > 0) { $dd = split_localized_date(current($argsObj->{$in}), $dateFormat); if ($dd != null) { $options[$opt] = $dd['year'] . "-" . $dd['month'] . "-" . $dd['day']; } } } $options['startTime'] .= " " . (isset($argsObj->start_Hour) ? $argsObj->start_Hour : "00") . ":00:00"; $options['endTime'] .= " " . (isset($argsObj->end_Hour) ? $argsObj->end_Hour : "00") . ":59:59"; $mgr = new testproject($dbHandler); $guiObj->resultSet = $mgr->getTestCasesCreatedByUser($argsObj->tproject_id, $argsObj->user_id, $options); if (!is_null($guiObj->resultSet)) { // test case can exist multiple times, due to versions $rows = array(); foreach ($guiObj->resultSet as $idx => $itemInfo) { list($columns, $sortByColumn) = getColumnsDefinition(); foreach ($itemInfo as $tcase) { $current_row = array(); $tcase_id = $tcase['tcase_id']; $tcversion_id = $tcase['tcversion_id']; $current_row[] = htmlspecialchars($tcase['login']); $current_row[] = htmlspecialchars($tcase['path']); // Create linked icons $edit_link = "<a href=\"javascript:openTCEditWindow({$tcase_id},{$tcversion_id});\">" . "<img title=\"{$guiObj->l18n['design']}\" src=\"{$guiObj->images['edit']}\" /></a> "; $current_row[] = "<!-- " . sprintf("%010d", $tcase['external_id']) . " -->" . $edit_link . htmlspecialchars($tcase['external_id']) . " : " . htmlspecialchars($tcase['tcase_name']) . sprintf($guiObj->l18n['tcversion_indicator'], $tcase['version']); $current_row[] = $tcase['importance']; $current_row[] = $tcase['creation_ts']; $current_row[] = $tcase['modification_ts']; $rows[] = $current_row; } } // Different table ID for different reports: $table_id = "tl_table_tc_created_per_user_"; // Add test plan ID to table ID $table_id .= $guiObj->tproject_id; $matrix = new tlExtTable($columns, $rows, $table_id); $matrix->title = $guiObj->l18n['testproject'] . ": " . htmlspecialchars($guiObj->tproject_name); // // @TODO how this work ? // $matrix->addCustomBehaviour(arg1, arg2) // arg1: type that can be user defined, here we use 'importance'. // arg2: array with methods // 'render' => javascript render method (has to be present on inc_ext_table.tpl). // 'filter' => piece of name used on several files // 1. on exttable.class.php is used on buildColumns() to call build{piece}FilterOptions() // 2. on ext_extensions a method named Ext.ux.grid.filter.{piece}Filter // has to exists or rendering will fail // $matrix->addCustomBehaviour('importance', array('render' => 'importanceRenderer', 'filter' => 'Importance')); // Default grouping by first column, which is user for overview, build otherwise $matrix->setGroupByColumnName(lang_get($columns[0]['title_key'])); // Define toolbar $matrix->showToolbar = true; $matrix->toolbarExpandCollapseGroupsButton = true; $matrix->toolbarShowAllColumnsButton = true; // TICKET 5562: Test Cases created per User - toolbar refresh button breaks filter behaivour $matrix->toolbarDefaultStateButton = false; $matrix->toolbarRefreshButton = false; $matrix->setSortByColumnName($sortByColumn); $matrix->sortDirection = 'DESC'; $guiObj->tableSet[$guiObj->tproject_id] = $matrix; } }
$options = new stdClass(); $options->mode = 'full_path'; $filters = initFilters($args); $tplan_param = $args->tplan_id ? array($args->tplan_id) : testcase::ALL_TESTPLANS; $tcase_mgr = new testcase($db); $gui->resultSet = $tcase_mgr->get_assigned_to_user($args->user_id, $args->tproject_id, $tplan_param, $options, $filters); $doIt = !is_null($gui->resultSet); if ($doIt) { $tables = tlObjectWithDB::getDBTables(array('nodes_hierarchy')); $tplanSet = array_keys($gui->resultSet); $sql = "SELECT name,id FROM {$tables['nodes_hierarchy']} " . "WHERE id IN (" . implode(',', $tplanSet) . ")"; $gui->tplanNames = $db->fetchRowsIntoMap($sql, 'id'); $optColumns = array('user' => $args->show_user_column, 'priority' => $args->priority_enabled); $whoiam = $args->show_all_users ? 'tcAssignedToUser' : 'tcAssignedToMe'; foreach ($gui->resultSet as $tplan_id => $tcase_set) { list($columns, $sortByColumn, $show_platforms) = getColumnsDefinition($db, $tplan_id, $optColumns); $rows = array(); foreach ($tcase_set as $tcase_platform) { foreach ($tcase_platform as $tcase) { $current_row = array(); $tcase_id = $tcase['testcase_id']; $tcversion_id = $tcase['tcversion_id']; if ($args->show_user_column) { $current_row[] = htmlspecialchars($args->userSet[$tcase['user_id']]['login']); } $current_row[] = htmlspecialchars($tcase['build_name']); $current_row[] = htmlspecialchars($tcase['tcase_full_path']); // create linked icons $exec_history_link = "<a href=\"javascript:openExecHistoryWindow({$tcase_id});\">" . "<img title=\"{$gui->l18n['execution_history']}\" src=\"{$imgSet['history_small']}\" /></a> "; $exec_link = "<a href=\"javascript:openExecutionWindow(" . "{$tcase_id},{$tcversion_id},{$tcase['build_id']}," . "{$tcase['testplan_id']},{$tcase['platform_id']},'{$whoiam}');\">" . "<img title=\"{$gui->l18n['execution']}\" src=\"{$imgSet['exec_icon']}\" /></a> "; $edit_link = "<a href=\"javascript:openTCEditWindow({$tcase_id});\">" . "<img title=\"{$gui->l18n['design']}\" src=\"{$imgSet['edit_icon']}\" /></a> ";
$gui = new stdClass(); $gui->freeTestCases = $tproject_mgr->getFreeTestCases($args->tproject_id); $gui->path_info = null; $gui->tableSet = null; if (!is_null($gui->freeTestCases['items'])) { if ($gui->freeTestCases['allfree']) { // has no sense display all test cases => display just message. $msg_key = 'all_testcases_are_free'; } else { $msg_key = ''; $tcasePrefix = $tproject_mgr->getTestCasePrefix($args->tproject_id) . $tcase_cfg->glue_character; $tcaseSet = array_keys($gui->freeTestCases['items']); $options = array('output_format' => 'path_as_string'); $tsuites = $tproject_mgr->tree_manager->get_full_path_verbose($tcaseSet, $options); $titleSeperator = config_get('gui_title_separator_1'); $columns = getColumnsDefinition($priorityMgmtEnabled); // Extract the relevant data and build a matrix $matrixData = array(); $impCfg = config_get('importance'); $impCodeVerbose = array_flip($impCfg['verbose_code']); foreach ($impCfg['verbose_label'] as $verbose => $lblkey) { $impCodeLabel[$impCfg['verbose_code'][$verbose]] = lang_get($lblkey); } foreach ($gui->freeTestCases['items'] as $tcases) { $rowData = array(); $rowData[] = strip_tags($tsuites[$tcases['id']]); //build test case link $edit_link = "<a href=\"javascript:openTCEditWindow({$gui->tproject_id},{$tcases['id']});\">" . "<img title=\"{$edit_label}\" src=\"{$edit_img}\" /></a> "; $tcaseName = $tcasePrefix . $tcases['tc_external_id'] . $titleSeperator . strip_tags($tcases['name']); $tcLink = "<!-- " . sprintf("%010d", $tcases['tc_external_id']) . " -->" . $edit_link . $tcaseName; $rowData[] = $tcLink;
// BUGID 3647 if ($args->build_id) { $filters['build_id'] = $args->build_id; } $tplan_param = $args->tplan_id ? array($args->tplan_id) : testcase::ALL_TESTPLANS; $gui->resultSet = $tcase_mgr->get_assigned_to_user($args->user_id, $args->tproject_id, $tplan_param, $options, $filters); $doIt = !is_null($gui->resultSet); if ($doIt) { $tables = tlObjectWithDB::getDBTables(array('nodes_hierarchy')); $tplanSet = array_keys($gui->resultSet); $sql = "SELECT name,id FROM {$tables['nodes_hierarchy']} " . "WHERE id IN (" . implode(',', $tplanSet) . ")"; $gui->tplanNames = $db->fetchRowsIntoMap($sql, 'id'); $optColumns = array('user' => $args->show_user_column, 'priority' => $args->priority_enabled); foreach ($gui->resultSet as $tplan_id => $tcase_set) { $show_platforms = !is_null($tplan_mgr->getPlatforms($tplan_id)); list($columns, $sortByColumn) = getColumnsDefinition($optColumns, $show_platforms); $rows = array(); foreach ($tcase_set as $tcase_platform) { foreach ($tcase_platform as $tcase) { $current_row = array(); $tcase_id = $tcase['testcase_id']; $tcversion_id = $tcase['tcversion_id']; if ($args->show_user_column) { $current_row[] = htmlspecialchars($names[$tcase['user_id']]['login']); } $current_row[] = htmlspecialchars($tcase['build_name']); $current_row[] = htmlspecialchars($tcase['tcase_full_path']); $current_row[] = "<a href=\"lib/testcases/archiveData.php?edit=testcase&id={$tcase_id}\" " . " title=\"{$l18n['goto_testspec']}\">" . htmlspecialchars($tcase['prefix']) . $gui->glueChar . $tcase['tc_external_id'] . ":" . htmlspecialchars($tcase['name']) . sprintf($l18n['tcversion_indicator'], $tcase['version']) . "</a>"; if ($show_platforms) { $current_row[] = htmlspecialchars($tcase['platform_name']); }
require_once "common.php"; require_once 'exttable.class.php'; testlinkInitPage($db, false, false, "checkRights"); $templateCfg = templateConfiguration(); $charset = config_get('charset'); $labels = init_labels(array('design' => null, 'execution' => null, 'no_linked_tc_cf' => null)); $exec_img = TL_THEME_IMG_DIR . "exec_icon.png"; $edit_img = TL_THEME_IMG_DIR . "edit_icon.png"; $tcase_mgr = new testcase($db); $args = init_args($db); $gui = initializeGui($db, $args); if ($args->doIt) { // Get executions with custom field values buildResultSet($db, $gui, $args->tproject_id, $args->tplan_id); // Create column headers $columns = getColumnsDefinition($args->showPlatforms, $gui->cfields); // Extract the relevant data and build a matrix $matrixData = array(); foreach ($gui->resultSet as $item) { $rowData = array(); // Get test suite path $dummy = $tcase_mgr->getPathLayered(array($item['tcase_id'])); $dummy = end($dummy); $rowData[] = $dummy['value']; // create linked icons $exec_link = "<a href=\"javascript:openExecutionWindow(" . "{$item['tcase_id']}, {$item['tcversion_id']}, {$item['builds_id']}, " . "{$args->tplan_id}, {$item['platform_id']});\">" . "<img title=\"{$labels['execution']}\" src=\"{$exec_img}\" /></a> "; $edit_link = "<a href=\"javascript:openTCEditWindow({$item['tcase_id']});\">" . "<img title=\"{$labels['design']}\" src=\"{$edit_img}\" /></a> "; $tcaseName = buildExternalIdString($gui->tcasePrefix, $item['tc_external_id']) . ' : ' . $item['tcase_name']; $tcLink = $exec_link . $edit_link . $tcaseName; $rowData[] = $tcLink; //$rowData[] = '<a href="lib/testcases/archiveData.php?edit=testcase&id=' . $item['tcase_id'] . '">' .
/** * initialize Gui */ function initializeGui(&$db, &$args, $dateFormat) { $gui = new stdClass(); $gui->glueChar = config_get('testcase_cfg')->glue_character; $gui->tproject_id = $args->tproject_id; $gui->tproject_name = $args->tproject_name; $gui->warning_msg = ''; $gui->tableSet = null; $history_img = TL_THEME_IMG_DIR . "history_small.png"; $exec_img = TL_THEME_IMG_DIR . "exec_icon.png"; $edit_img = TL_THEME_IMG_DIR . "edit_icon.png"; $l18n = init_labels(array('tcversion_indicator' => null, 'goto_testspec' => null, 'version' => null, 'testplan' => null, 'assigned_tc_overview' => null, 'testcases_created_per_user' => null, 'design' => null, 'execution' => null, 'execution_history' => null, 'low_priority' => null, 'medium_priority' => null, 'high_priority' => null)); $gui->pageTitle = sprintf($l18n['testcases_created_per_user'], $gui->tproject_name); $results_config = config_get('results'); $map_status_code = $results_config['status_code']; $map_code_status = $results_config['code_status']; $map_status_label = $results_config['status_label']; $map_statuscode_css = array(); foreach ($map_code_status as $code => $status) { if (isset($map_status_label[$status])) { $label = $map_status_label[$status]; $map_statuscode_css[$code] = array(); $map_statuscode_css[$code]['translation'] = lang_get($label); $map_statuscode_css[$code]['css_class'] = $map_code_status[$code] . '_text'; } } $options = new stdClass(); // convert starttime to iso format for database usage if (isset($args->selected_start_date) && sizeof($args->selected_start_date) > 0) { $date_array = split_localized_date($args->selected_start_date[0], $dateFormat); if ($date_array != null) { // set date in iso format $options->startTime = $date_array['year'] . "-" . $date_array['month'] . "-" . $date_array['day']; } } // convert starttime to iso format for database usage if (isset($args->selected_end_date) && sizeof($args->selected_end_date) > 0) { $date_array = split_localized_date($args->selected_end_date[0], $dateFormat); if ($date_array != null) { // set date in iso format $options->endTime = $date_array['year'] . "-" . $date_array['month'] . "-" . $date_array['day']; } } $start_hour = isset($args->start_Hour) ? $args->start_Hour : "00"; $options->startTime = $options->startTime . " " . $start_hour . ":00:00"; $end_hour = isset($args->end_Hour) ? $args->end_Hour : "00"; $options->endTime = $options->endTime . " " . $end_hour . ":59:59"; $options->mode = 'full_path'; // TBD: remove it $options->tplan_id = $args->tplan_id; // used to retrieve test cases from $tcase_mgr = new testcase($db); $gui->resultSet = $tcase_mgr->get_created_per_user($args->user_id, $args->tproject_id, $options); if (!is_null($gui->resultSet)) { $tables = tlObjectWithDB::getDBTables(array('nodes_hierarchy')); $tplanSet = array_keys($gui->resultSet); $sql = "SELECT name,id FROM {$tables['nodes_hierarchy']} " . "WHERE id IN (" . implode(',', $tplanSet) . ")"; $gui->tplanNames = $db->fetchRowsIntoMap($sql, 'id'); $optColumns = array('priority' => $args->priority_enabled); // For each test case set under a test plan ID, create the rows and columns foreach ($gui->resultSet as $tplan_id => $tcase_set) { list($columns, $sortByColumn) = getColumnsDefinition($optColumns); $rows = array(); foreach ($tcase_set as $tcase_platform) { foreach ($tcase_platform as $tcase) { $current_row = array(); $tcase_id = $tcase['testcase_id']; $tcversion_id = $tcase['tcversion_id']; $current_row[] = htmlspecialchars($tcase['login']); $current_row[] = htmlspecialchars($tcase['tcase_full_path']); // Create linked icons $exec_history_link = "<a href=\"javascript:openExecHistoryWindow({$tcase_id});\">" . "<img title=\"{$l18n['execution_history']}\" src=\"{$history_img}\" /></a> "; $edit_link = "<a href=\"javascript:openTCEditWindow({$tcase_id});\">" . "<img title=\"{$l18n['design']}\" src=\"{$edit_img}\" /></a> "; $current_row[] = "<!-- " . sprintf("%010d", $tcase['tc_external_id']) . " -->" . $exec_history_link . $edit_link . htmlspecialchars($tcase['prefix']) . $gui->glueChar . $tcase['tc_external_id'] . " : " . htmlspecialchars($tcase['name']) . sprintf($l18n['tcversion_indicator'], $tcase['version']); $last_execution = $tcase_mgr->get_last_execution($tcase_id, $tcversion_id, $tplan_id, $tcase['build_id'], $tcase['platform_id']); $status = $last_execution[$tcversion_id]['status']; if (!$status) { $status = $map_status_code['not_run']; } $current_row[] = array("value" => $status, "text" => $map_statuscode_css[$status]['translation'], "cssClass" => $map_statuscode_css[$status]['css_class']); $current_row[] = $tcase['creation_ts']; $current_row[] = $tcase['modification_ts']; // add this row to the others $rows[] = $current_row; } } // Different table ID for different reports: $table_id = "tl_table_tc_created_per_user_"; // Add test plan ID to table ID $table_id .= $tplan_id; $matrix = new tlExtTable($columns, $rows, $table_id); $matrix->title = $l18n['testplan'] . ": " . htmlspecialchars($gui->tplanNames[$tplan_id]['name']); // Default grouping by first column, which is user for overview, build otherwise $matrix->setGroupByColumnName(lang_get($columns[0]['title_key'])); // Make table collapsible if more than 1 table is shown and surround by frame if (count($tplanSet) > 1) { $matrix->collapsible = true; $matrix->frame = true; } // Define toolbar $matrix->showToolbar = true; $matrix->toolbarExpandCollapseGroupsButton = true; $matrix->toolbarShowAllColumnsButton = true; $matrix->setSortByColumnName($sortByColumn); $matrix->sortDirection = 'DESC'; $gui->tableSet[$tplan_id] = $matrix; } } return $gui; }
require '../../config.inc.php'; require_once 'common.php'; require_once 'exttable.class.php'; $templateCfg = templateConfiguration(); //testlinkInitPage($db,false,false,"checkRights"); list($args, $gui) = initEnv($db); $result_cfg = config_get('results'); $show_all_status_details = config_get('metrics_dashboard')->show_test_plan_status; $round_precision = config_get('dashboard_precision'); $labels = init_labels(array('overall_progress' => null, 'test_plan' => null, 'progress' => null, 'href_metrics_dashboard' => null, 'progress_absolute' => null, 'no_testplans_available' => null, 'not_aplicable' => null, 'platform' => null, 'th_active_tc' => null, 'in_percent' => null)); list($gui->tplan_metrics, $gui->show_platforms, $platforms) = getMetrics($db, $_SESSION['currentUser'], $args, $result_cfg, $labels); // new dBug($gui->tplan_metrics); if (count($gui->tplan_metrics) > 0) { $statusSetForDisplay = $result_cfg['status_label_for_exec_ui']; $gui->warning_msg = ''; $columns = getColumnsDefinition($gui->show_platforms, $statusSetForDisplay, $labels, $platforms); $matrixData = array(); if (isset($gui->tplan_metrics['testplans'])) { foreach ($gui->tplan_metrics['testplans'] as $tplan_metrics) { foreach ($tplan_metrics['platforms'] as $key => $platform_metric) { //new dBug($platform_metric); $rowData = array(); // if test plan does not use platforms a overall status is not necessary $tplan_string = strip_tags($platform_metric['tplan_name']); if ($show_all_status_details) { // add information for all exec statuses $tplan_string .= "<br>"; foreach ($statusSetForDisplay as $status_verbose => &$status_label) { $tplan_string .= lang_get($status_label) . ": " . $tplan_metrics['overall'][$status_verbose] . " [" . getPercentage($tplan_metrics['overall'][$status_verbose], $tplan_metrics['overall']['active'], $round_precision) . "%], "; } } else {
$templateCfg = templateConfiguration(); $args = init_args($db); checkRights($db, $_SESSION['currentUser'], $args); $gui = new stdClass(); $gui->tproject_name = $args->tproject_name; $gui->show_only_active = $args->show_only_active; $result_cfg = config_get('results'); $show_all_status_details = config_get('metrics_dashboard')->show_test_plan_status; $round_precision = config_get('dashboard_precision'); $labels = init_labels(array('overall_progress' => null, 'test_plan' => null, 'progress' => null, 'href_metrics_dashboard' => null, 'progress_absolute' => null, 'no_testplans_available' => null, 'not_aplicable' => null, 'platform' => null, 'th_active_tc' => null, 'in_percent' => null)); list($gui->tplan_metrics, $gui->show_platforms, $platforms) = getMetrics($db, $_SESSION['currentUser'], $args, $result_cfg, $labels); $gui->warning_msg = $labels['no_testplans_available']; if (count($gui->tplan_metrics) > 0) { $gui->warning_msg = ''; // Create column headers $columns = getColumnsDefinition($gui->show_platforms, $result_cfg, $labels, $platforms); // Extract the relevant data and build a matrix $matrixData = array(); foreach ($gui->tplan_metrics['testplans'] as $tplan_metrics) { foreach ($tplan_metrics['platforms'] as $key => $platform_metric) { $rowData = array(); // if test plan does not use platforms a overall status is not necessary $tplan_string = strip_tags($platform_metric['tplan_name']); if ($show_all_status_details) { // add information for all exec statuses $tplan_string .= "<br>"; foreach ($result_cfg['status_label'] as $key => $status) { $tplan_string .= lang_get($status) . ": " . $tplan_metrics['overall'][$key] . " [" . getPercentage($tplan_metrics['overall'][$key], $tplan_metrics['overall']['active'], $round_precision) . "%], "; } } else { $tplan_string .= " - ";