#11490 fixed grouped by id in widget status map

This commit is contained in:
Daniel Cebrian 2023-08-17 09:41:46 +02:00
parent 5ee4dbee87
commit 484570aa4c
1 changed files with 8 additions and 12 deletions

View File

@ -281,13 +281,7 @@ class GroupsStatusMapWidget extends Widget
if (is_metaconsole() === true) { if (is_metaconsole() === true) {
$where = ''; $where = '';
if (in_array('0', $groups_array) === false && count($groups_array) > 0) { if (in_array('0', $groups_array) === false && count($groups_array) > 0) {
// Names are used instead of ids because it can't be the same id as in node. $where = ' WHERE g.id_grupo IN ('.implode(',', $groups_array).') ';
$names = [];
foreach ($groups_array as $key => $group) {
$names[] = '\''.groups_get_name($group).'\'';
}
$where = ' WHERE g.nombre IN ('.implode(',', $names).') ';
} }
$servers = metaconsole_get_servers(); $servers = metaconsole_get_servers();
@ -344,6 +338,7 @@ class GroupsStatusMapWidget extends Widget
'children' => [], 'children' => [],
]; ];
$names = [];
foreach ($rows as $key => $row) { foreach ($rows as $key => $row) {
$color = ''; $color = '';
$name_status = ''; $name_status = '';
@ -381,13 +376,13 @@ class GroupsStatusMapWidget extends Widget
continue; continue;
} }
if (empty($level1['children'][$row['nombre']][$row['estado']]['value']) === false) { if (empty($level1['children'][$row['id_grupo']][$row['estado']]['value']) === false) {
$total = ($row['total_modules'] + $level1['children'][$row['nombre']][$row['estado']]['value']); $total = ($row['total_modules'] + $level1['children'][$row['id_grupo']][$row['estado']]['value']);
} else { } else {
$total = $row['total_modules']; $total = $row['total_modules'];
} }
$level1['children'][$row['nombre']][$row['estado']] = [ $level1['children'][$row['id_grupo']][$row['estado']] = [
'id' => uniqid(), 'id' => uniqid(),
'name' => $row['estado'], 'name' => $row['estado'],
'value' => $total, 'value' => $total,
@ -395,16 +390,17 @@ class GroupsStatusMapWidget extends Widget
'tooltip_content' => $total.__(' Modules(%s)', $name_status), 'tooltip_content' => $total.__(' Modules(%s)', $name_status),
'link' => 'index.php?sec=view&sec2=operation/agentes/status_monitor&refr=0&ag_group='.$row['id_grupo'].'&ag_freestring=&module_option=1&ag_modulename=&moduletype=&datatype=&status='.$row['estado'].'&sort_field=&sort=none&pure=', 'link' => 'index.php?sec=view&sec2=operation/agentes/status_monitor&refr=0&ag_group='.$row['id_grupo'].'&ag_freestring=&module_option=1&ag_modulename=&moduletype=&datatype=&status='.$row['estado'].'&sort_field=&sort=none&pure=',
]; ];
$names[$row['id_grupo']] = $row['nombre'];
} }
$level2 = [ $level2 = [
'name' => __('Group status map'), 'name' => __('Group status map'),
'children' => [], 'children' => [],
]; ];
foreach ($level1['children'] as $name => $group) { foreach ($level1['children'] as $id_grupo => $group) {
$level2['children'][] = [ $level2['children'][] = [
'id' => uniqid(), 'id' => uniqid(),
'name' => $name, 'name' => $names[$id_grupo],
'children' => $group, 'children' => $group,
]; ];
} }