From 83c6d3735edc06e7d0c9d21afdba963a211f1541 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 26 Dec 2023 17:06:16 +0100 Subject: [PATCH] #12688 fixed filter module status in tree --- pandora_console/include/class/Tree.class.php | 13 +++++++++---- pandora_console/include/class/TreeModule.class.php | 5 ++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/pandora_console/include/class/Tree.class.php b/pandora_console/include/class/Tree.class.php index fc02023b3e..1d8ac12d63 100644 --- a/pandora_console/include/class/Tree.class.php +++ b/pandora_console/include/class/Tree.class.php @@ -303,18 +303,23 @@ class Tree $this->filter['statusModule'] = -1; } + $filter_status = ''; + if ((int) $this->filter['statusModule'] !== -1 && $this->type === 'module') { + $filter_status = ' AND tae.estado = '.$this->filter['statusModule']; + } + $show_init_condition = ($this->filter['show_not_init_agents']) ? '' : ' AND ta.notinit_count <> ta.total_count'; if ($this->getEmptyModuleFilterStatus()) { - return $show_init_condition; + return $show_init_condition.$filter_status; } if ((int) $this->filter['statusModule'] === 6) { - return ' AND (ta.warning_count > 0 OR ta.critical_count > 0)'; + return ' AND (ta.warning_count > 0 OR ta.critical_count > 0)'.$filter_status; } if ($this->filter['statusModule'] === 'fired') { - return ' AND ta.fired_count > 0'; + return ' AND ta.fired_count > 0'.$filter_status; } $field_filter = modules_get_counter_by_states($this->filter['statusModule']); @@ -322,7 +327,7 @@ class Tree return ' AND 1=0'; } - return "AND ta.$field_filter > 0".$show_init_condition; + return "AND ta.$field_filter > 0".$show_init_condition.$filter_status; } diff --git a/pandora_console/include/class/TreeModule.class.php b/pandora_console/include/class/TreeModule.class.php index 46253643a5..94710bfe19 100644 --- a/pandora_console/include/class/TreeModule.class.php +++ b/pandora_console/include/class/TreeModule.class.php @@ -28,9 +28,8 @@ class TreeModule extends Tree $this->L1fieldNameSql = 'tam.nombre'; $this->L1inner = ''; $this->L1orderByFinal = 'name'; - $this->L1innerInside = 'INNER JOIN tagente_modulo tam - ON ta.id_agente = tam.id_agente'; - + $this->L1innerInside = 'INNER JOIN tagente_modulo tam ON ta.id_agente = tam.id_agente + INNER JOIN tagente_estado tae ON tae.id_agente_modulo = tam.id_agente_modulo'; $this->L2condition = "AND tam.nombre = '".$this->symbol2name($this->rootID)."'"; }