From 0ca34c744d7f7c163e590274bfcb8f1fedb18caf Mon Sep 17 00:00:00 2001 From: fermin831 Date: Tue, 16 Oct 2018 13:29:00 +0200 Subject: [PATCH 1/5] Fixed tags filter on Tree tags --- pandora_console/include/class/Tree.class.php | 8 +++++++- pandora_console/include/class/TreeTag.class.php | 6 ++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pandora_console/include/class/Tree.class.php b/pandora_console/include/class/Tree.class.php index 05c994df9e..778a56afbc 100644 --- a/pandora_console/include/class/Tree.class.php +++ b/pandora_console/include/class/Tree.class.php @@ -41,6 +41,8 @@ class Tree { protected $L2conditionInside = ''; protected $L2inner = ''; + protected $L3forceTagCondition = false; + const TV_DEFAULT_AGENT_STATUS = -1; public function __construct($type, $rootType = '', $id = -1, $rootID = -1, $serverID = false, $childrenMethod = "on_demand", $access = 'AR') { @@ -891,7 +893,9 @@ class Tree { $module_status_filter = $this->getModuleStatusFilterFromTestado(); $agent_filter = "AND ta.id_agente = " . $this->id; $tag_condition = $this->getTagCondition(); - $tag_join = empty($tag_condition) ? '' : $this->getTagJoin(); + $tag_join = empty($tag_condition) && (!$this->L3forceTagCondition) + ? '' + : $this->getTagJoin(); $condition = $this->L2condition; $inner = $this->L2inner; @@ -922,6 +926,8 @@ class Tree { $module_search_filter $tag_condition ORDER BY tam.nombre ASC, tam.id_agente_modulo ASC"; + html_debug($sql, true); + html_debug($sql, true, true); return $sql; } diff --git a/pandora_console/include/class/TreeTag.class.php b/pandora_console/include/class/TreeTag.class.php index c02fb7ba4a..374945005c 100644 --- a/pandora_console/include/class/TreeTag.class.php +++ b/pandora_console/include/class/TreeTag.class.php @@ -37,6 +37,8 @@ class TreeTag extends Tree { $this->L2condition = "AND ttm.id_tag = " . $this->rootID; $this->L2inner = $this->L1innerInside; + + $this->L3forceTagCondition = true; } protected function getData() { @@ -52,10 +54,6 @@ class TreeTag extends Tree { protected function getTagJoin () { return ''; } - - protected function getTagCondition () { - return ''; - } } ?> From 9ee64b48944f122eb6ae2e3b56dfbcffabbbd569 Mon Sep 17 00:00:00 2001 From: danielmaya Date: Wed, 17 Oct 2018 08:44:51 +0200 Subject: [PATCH 2/5] Fixed report agent/module --- .../reporting_builder.item_editor.php | 36 ++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index 9a2f5f3018..e7e5965946 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -1087,6 +1087,34 @@ You can of course remove the warnings, that's why we include the source and do n $agents2[$value['id_agente']] = $value['alias']; } + if ((empty($agents2)) || $agents2 == -1) $agents = array(); + + $agents_select = array(); + if (is_array($id_agents) || is_object($id_agents)){ + foreach ($id_agents as $id) { + foreach ($agents2 as $key => $a) { + if ($key == (int)$id) { + $agents_select[$key] = $key; + } + } + } + } + html_print_select($agents2, 'id_agents3[]', $agents_select, $script = '', "", 0, false, true, true, '', false, "min-width: 180px"); + echo ""; + ?> + + + + + + + $value) { + $agents2[$value['id_agente']] = $value['alias']; + } + // $agents = agents_get_group_agents($group); if ((empty($agents2)) || $agents2 == -1) $agents = array(); @@ -1101,7 +1129,6 @@ You can of course remove the warnings, that's why we include the source and do n } } html_print_select($agents2, 'id_agents2[]', $agents_select, $script = '', "", 0, false, true, true, '', false, "min-width: 180px"); - echo ""; ?> @@ -2862,6 +2889,7 @@ function chooseType() { $("#row_percentil").hide(); $("#log_help_tip").css("visibility", "hidden"); $("#agents_row").hide(); + $("#agents_modules_row").hide(); $("#select_agent_modules").hide(); $("#modules_row").hide(); $("#row_show_summary_group").hide(); @@ -3328,7 +3356,7 @@ function chooseType() { $("#row_group").show(); $("#row_module_group").show(); $("#select_agent_modules").show(); - $("#agents_row").show(); + $("#agents_modules_row").show(); $("#modules_row").show(); $("#row_historical_db_check").hide(); break; @@ -3499,7 +3527,7 @@ function set_last_value_period() { } function source_change_agents() { - $("#id_agents2").empty(); + $("#id_agents3").empty(); $("#spinner_hack").show(); jQuery.post ("ajax.php", {"page" : "operation/agentes/ver_agente", @@ -3508,7 +3536,7 @@ function source_change_agents() { }, function (data, status) { for (var clave in data) { - $("#id_agents2").append(''); + $("#id_agents3").append(''); } $("#spinner_hack").hide(); }, From 060e46868d24bffbf0e1dbc98612641f9a11a6ac Mon Sep 17 00:00:00 2001 From: fermin831 Date: Wed, 17 Oct 2018 11:57:22 +0200 Subject: [PATCH 3/5] Fixed tags filter on bulk operation (select module first) --- pandora_console/include/functions_agents.php | 4 +- .../operation/agentes/ver_agente.php | 40 +++++-------------- 2 files changed, 11 insertions(+), 33 deletions(-) diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php index 2e9ef1f55f..a6ba0be9fb 100644 --- a/pandora_console/include/functions_agents.php +++ b/pandora_console/include/functions_agents.php @@ -1069,7 +1069,7 @@ function agents_get_group_agents ( */ function agents_get_modules ($id_agent = null, $details = false, $filter = false, $indexed = true, $get_not_init_modules = true, - $noACLs = false) { + $force_tags = false) { global $config; @@ -1205,7 +1205,7 @@ function agents_get_modules ($id_agent = null, $details = false, } $sql_tags_join = ""; - if (tags_has_user_acl_tags($config['id_user'])){ + if (tags_has_user_acl_tags($config['id_user']) || $force_tags){ $where_tags = tags_get_acl_tags($config['id_user'], $id_groups, 'AR', 'module_condition', 'AND', 'tagente_modulo', false, array(), true); diff --git a/pandora_console/operation/agentes/ver_agente.php b/pandora_console/operation/agentes/ver_agente.php index f98af59772..00d5839046 100644 --- a/pandora_console/operation/agentes/ver_agente.php +++ b/pandora_console/operation/agentes/ver_agente.php @@ -674,24 +674,25 @@ if (is_ajax ()) { } else $search = false; - + + $force_tags = !empty($tags); + if ($force_tags) { + $filter['ttag_module.id_tag IN '] = "(" . implode(",", $tags) . ")"; + } if (is_metaconsole() && !$force_local_modules) { if (enterprise_include_once ('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) { $connection = metaconsole_get_connection($server_name); - - if ($server_id > 0) { $connection = metaconsole_get_connection_by_id($server_id); } - - + if (metaconsole_load_external_db($connection) == NOERR) { /* Get all agents if no agent was given */ if ($id_agent == 0) $id_agent = array_keys( agents_get_group_agents( array_keys (users_get_groups ()), $search, "none")); - $agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, false, $tags); + $agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, $force_tags); } // Restore db connection metaconsole_restore_db(); @@ -703,35 +704,12 @@ if (is_ajax ()) { $id_agent = array_keys( agents_get_group_agents( array_keys(users_get_groups ()), $search, "none")); - $agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, false, $tags); + $agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, $force_tags); } - + if (empty($agent_modules)) $agent_modules = array(); - if (!empty($tags)) { - $implode_tags = implode(",", $tags); - $tag_modules = db_get_all_rows_sql("SELECT DISTINCT id_agente_modulo FROM ttag_module WHERE id_tag IN (" . $implode_tags . ")"); - if ($tag_modules) { - $final_modules = array(); - foreach ($agent_modules as $key => $module) { - $in_array = false; - foreach ($tag_modules as $t_module) { - if ($module['id_agente_modulo'] == $t_module['id_agente_modulo']) { - $in_array = true; - } - } - if ($in_array) { - $final_modules[] = $module; - } - } - $agent_modules = $final_modules; - } - else { - $agent_modules = array(); - } - } - foreach ($agent_modules as $key => $module) { $agent_modules[$key]['nombre'] = io_safe_output($module['nombre']); } From 14afe2ff88273fd55f99532577586f7c251e45a5 Mon Sep 17 00:00:00 2001 From: fermin831 Date: Wed, 17 Oct 2018 12:35:11 +0200 Subject: [PATCH 4/5] Added message 'Please, select an agent first' --- pandora_console/godmode/massive/massive_delete_modules.php | 3 +++ pandora_console/godmode/massive/massive_edit_modules.php | 1 + pandora_console/include/javascript/pandora.js | 6 ++++-- pandora_console/operation/agentes/ver_agente.php | 5 +++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/massive/massive_delete_modules.php b/pandora_console/godmode/massive/massive_delete_modules.php index be10127a80..8725c713aa 100755 --- a/pandora_console/godmode/massive/massive_delete_modules.php +++ b/pandora_console/godmode/massive/massive_delete_modules.php @@ -385,6 +385,9 @@ echo ''; echo ''; ui_require_jquery_file ('form'); +//Hack to translate text "none" in PHP to javascript +echo ''; +echo ''; ui_require_jquery_file ('pandora.controls'); if ($selection_mode == 'modules') { diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index b12093aaf5..a7056636b0 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -709,6 +709,7 @@ echo ''; echo ''; //Hack to translate text "none" in PHP to javascript echo ''; +echo ''; ui_require_jquery_file ('pandora.controls'); if ($selection_mode == 'modules') { diff --git a/pandora_console/include/javascript/pandora.js b/pandora_console/include/javascript/pandora.js index 0788f43c70..2b323a55f1 100644 --- a/pandora_console/include/javascript/pandora.js +++ b/pandora_console/include/javascript/pandora.js @@ -189,8 +189,10 @@ function agent_changed_by_multiple_agents (event, id_agent, selected) { $('#module').empty (); if (isEmptyObject(data)) { - var noneText = $("#none_text").html(); //Trick for catch the translate text. - + //Trick for catch the translate text. + var noneText = $("#id_agents").val() === null + ? $("#select_agent_first_text").html() + : $("#none_text").html(); if (noneText == null) { noneText = 'None'; } diff --git a/pandora_console/operation/agentes/ver_agente.php b/pandora_console/operation/agentes/ver_agente.php index 00d5839046..df7a2777ff 100644 --- a/pandora_console/operation/agentes/ver_agente.php +++ b/pandora_console/operation/agentes/ver_agente.php @@ -340,6 +340,11 @@ if (is_ajax ()) { 'tmetaconsole_setup', 'id', $id_server); } + if (empty($idAgents[0])) { + echo json_encode(array()); + return; + } + $filter = '1 = 1'; $all = (string)get_parameter('all', 'all'); From 2d2c465ff6db4c2ac4967e3bd0a0bed81b1c6445 Mon Sep 17 00:00:00 2001 From: fermin831 Date: Wed, 17 Oct 2018 15:43:26 +0200 Subject: [PATCH 5/5] Removed unwanted traces --- pandora_console/include/class/Tree.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/pandora_console/include/class/Tree.class.php b/pandora_console/include/class/Tree.class.php index 778a56afbc..af7cb2daf3 100644 --- a/pandora_console/include/class/Tree.class.php +++ b/pandora_console/include/class/Tree.class.php @@ -926,8 +926,6 @@ class Tree { $module_search_filter $tag_condition ORDER BY tam.nombre ASC, tam.id_agente_modulo ASC"; - html_debug($sql, true); - html_debug($sql, true, true); return $sql; }