From 7890c4269cae537e21c3053ff2dc0669c04978c4 Mon Sep 17 00:00:00 2001 From: Calvo Date: Wed, 14 Jul 2021 18:00:07 +0200 Subject: [PATCH 1/4] Added checkbox for group recursion in network maps --- pandora_console/include/class/NetworkMap.class.php | 10 ++++++++++ .../include/javascript/functions_pandora_networkmap.js | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/class/NetworkMap.class.php b/pandora_console/include/class/NetworkMap.class.php index fb17914079..c974ef10eb 100644 --- a/pandora_console/include/class/NetworkMap.class.php +++ b/pandora_console/include/class/NetworkMap.class.php @@ -3216,6 +3216,16 @@ class NetworkMap -1, true ); + + $table->data[0][2] = html_print_checkbox( + 'group_recursion', + 0, + false, + true, + false, + 'choose_group_for_show_agents()' + ).__('Recursion'); + $table->data[1][0] = __('Agents'); $table->data[1][1] = html_print_select( [-1 => __('None')], diff --git a/pandora_console/include/javascript/functions_pandora_networkmap.js b/pandora_console/include/javascript/functions_pandora_networkmap.js index 23e7f0cb57..70c630eb4b 100644 --- a/pandora_console/include/javascript/functions_pandora_networkmap.js +++ b/pandora_console/include/javascript/functions_pandora_networkmap.js @@ -4119,7 +4119,9 @@ function get_node_name_ov(data) { function choose_group_for_show_agents() { if (enterprise_installed) { - group = $("#group_for_show_agents option:selected").val(); + var group = $("#group_for_show_agents option:selected").val(); + var group_recursion = + $("#checkbox-group_recursion").prop("checked") === true ? 1 : 0; $("#agents_filter_group").attr("disabled", true); $("#spinner_group").css("display", ""); @@ -4135,6 +4137,7 @@ function choose_group_for_show_agents() { params.push("get_agents_in_group=1"); params.push("id=" + networkmap_id); params.push("group=" + group); + params.push("group_recursion=" + group_recursion); params.push("page=enterprise/operation/agentes/pandora_networkmap.view"); jQuery.ajax({ data: params.join("&"), From 91cd12c715c6fdeeb649b55fd95d73cfad67919c Mon Sep 17 00:00:00 2001 From: Calvo Date: Mon, 27 Sep 2021 11:25:54 +0200 Subject: [PATCH 2/4] fix networkmap node group recursion --- pandora_console/include/functions_networkmap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/functions_networkmap.php b/pandora_console/include/functions_networkmap.php index 805f8853bb..ed99ee7781 100644 --- a/pandora_console/include/functions_networkmap.php +++ b/pandora_console/include/functions_networkmap.php @@ -4062,7 +4062,7 @@ function networkmap_get_new_nodes_and_links($networkmap, $x, $y) true ); } else { - if ($map_filter['dont_show_subgroups'] == 'true') { + if ($map_filter['dont_show_subgroups'] == 'true' && $map_filter['dont_show_subgroups'] !== 0) { // Show only current selected group. $filter['id_grupo'] = $networkmap['id_group']; } else { From 90ac62c0cc40b9b1571c1ecc6d68cba1014a1fdf Mon Sep 17 00:00:00 2001 From: Calvo Date: Mon, 27 Sep 2021 16:14:07 +0200 Subject: [PATCH 3/4] Fix recursion on networkmap nodes --- .../agentes/pandora_networkmap.view.php | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/pandora_console/operation/agentes/pandora_networkmap.view.php b/pandora_console/operation/agentes/pandora_networkmap.view.php index 09baf79f6b..4f8ba82521 100644 --- a/pandora_console/operation/agentes/pandora_networkmap.view.php +++ b/pandora_console/operation/agentes/pandora_networkmap.view.php @@ -55,6 +55,7 @@ if (is_ajax()) { $process_migration = (bool) get_parameter('process_migration', false); $get_agent_info = (bool) get_parameter('get_agent_info', false); $update_node = (bool) get_parameter('update_node', false); + $get_agents_in_group = (bool) get_parameter('get_agents_in_group', false); if ($update_node) { $node_json = io_safe_output(get_parameter('node', '')); @@ -80,6 +81,65 @@ if (is_ajax()) { return; } + + if ($get_agents_in_group) { + $id = (int) get_parameter('id', 0); + $group = (int) get_parameter('group', -1); + $group_recursion = (int) get_parameter('group_recursion', 0); + + $return = []; + $return['correct'] = false; + + if ($group != -1) { + $where_id_agente = ' 1=1 '; + + $agents_in_networkmap = db_get_all_rows_filter( + 'titem', + [ + 'id_map' => $id, + 'deleted' => 0, + ] + ); + if ($agents_in_networkmap !== false) { + $ids = []; + foreach ($agents_in_networkmap as $agent) { + if ($agent['type'] == 0) { + $ids[] = $agent['source_data']; + } + } + + if (empty($ids) === false) { + $where_id_agente = 'AND id_agente NOT IN ('.implode(',', $ids).')'; + } + } + + if ($group_recursion !== 0) { + $group_tree = groups_get_children_ids($group); + $group = implode(',', $group_tree); + } + + $sql = 'SELECT id_agente, alias + FROM tagente + WHERE id_grupo IN ('.$group.') AND '.$where_id_agente.' + ORDER BY alias ASC'; + + $agents = db_get_all_rows_sql($sql); + + if ($agents !== false) { + $return['agents'] = []; + foreach ($agents as $agent) { + $return['agents'][$agent['id_agente']] = $agent['alias']; + } + + $return['correct'] = true; + } + } + + echo json_encode($return); + + return; + } + if ($module_get_status) { $id = (int) get_parameter('id', 0); From 849ce30da5f273d01d61e021697b4117b7b58983 Mon Sep 17 00:00:00 2001 From: Luis Date: Tue, 28 Sep 2021 08:50:00 +0000 Subject: [PATCH 4/4] Update pandora_networkmap.view.php --- pandora_console/operation/agentes/pandora_networkmap.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/operation/agentes/pandora_networkmap.view.php b/pandora_console/operation/agentes/pandora_networkmap.view.php index 4f8ba82521..3316c1c765 100644 --- a/pandora_console/operation/agentes/pandora_networkmap.view.php +++ b/pandora_console/operation/agentes/pandora_networkmap.view.php @@ -109,7 +109,7 @@ if (is_ajax()) { } if (empty($ids) === false) { - $where_id_agente = 'AND id_agente NOT IN ('.implode(',', $ids).')'; + $where_id_agente = 'id_agente NOT IN ('.implode(',', $ids).')'; } }