Merge branch '2865-Problema-con-el-filtro-de-grupo-en-Agent-Module-View-dev' into 'develop'

Fixed filter group in agents/modules view

See merge request artica/pandorafms!1892
This commit is contained in:
vgilc 2018-11-07 12:36:10 +01:00
commit ae6f746d41
2 changed files with 10 additions and 70 deletions

View File

@ -921,6 +921,10 @@ function agents_get_group_agents (
unset ($search["alias"]); unset ($search["alias"]);
} }
if (isset($search['id_os'])) {
$filter[] = "id_os = ". $search['id_os'];
}
if (isset($search['status'])) { if (isset($search['status'])) {
switch ($search['status']) { switch ($search['status']) {
case AGENT_STATUS_NORMAL: case AGENT_STATUS_NORMAL:

View File

@ -60,25 +60,8 @@ if (is_ajax ()) {
$keys_prefix = (string) get_parameter ('keys_prefix', ''); $keys_prefix = (string) get_parameter ('keys_prefix', '');
$status_agents = (int)get_parameter('status_agents', AGENT_STATUS_ALL); $status_agents = (int)get_parameter('status_agents', AGENT_STATUS_ALL);
if ($id_group > 0) {
$groups = array($id_group);
if ($recursion === 'true' || $recursion == 1 ) {
$groups = array_merge($groups,
groups_get_id_recursive($id_group, true));
}
}
else {
$groups_orig = users_get_groups(false, $privilege, false);
$groups = array_keys($groups_orig);
}
// Build filter // Build filter
$filter = array(); $filter = array();
// Group filter (primary and secondary)
$filter[] = "(" .db_format_array_where_clause_sql(
array('id_grupo' => $groups, 'id_group' => $groups),
'OR'
) . ")";
if (!empty($id_os)) if (!empty($id_os))
$filter['id_os'] = $id_os; $filter['id_os'] = $id_os;
@ -87,44 +70,7 @@ if (is_ajax ()) {
if (!empty($agent_alias)) if (!empty($agent_alias))
$filter['alias'] = '%' . $agent_alias . '%'; $filter['alias'] = '%' . $agent_alias . '%';
switch ($status_agents) { $filter['status'] = $status_agents;
case AGENT_STATUS_NORMAL:
$filter[] = "(
critical_count = 0
AND warning_count = 0
AND unknown_count = 0
AND normal_count > 0)";
break;
case AGENT_STATUS_WARNING:
$filter[] = "(
critical_count = 0
AND warning_count > 0
AND total_count > 0)";
break;
case AGENT_STATUS_CRITICAL:
$filter[] = "(critical_count > 0)";
break;
case AGENT_STATUS_UNKNOWN:
$filter[] = "(
critical_count = 0
AND warning_count = 0
AND unknown_count > 0)";
break;
case AGENT_STATUS_NOT_NORMAL:
$filter[] = "(
critical_count > 0
OR warning_count > 0
OR unknown_count > 0
OR total_count = 0
OR total_count = notinit_count)";
break;
case AGENT_STATUS_NOT_INIT:
$filter[] = "(
total_count = 0
OR total_count = notinit_count)";
break;
}
$filter['order'] = "alias ASC";
if($cluster_mode){ if($cluster_mode){
@ -162,28 +108,18 @@ if (is_ajax ()) {
} }
} }
$filter['group'] = 'id_agente';
// Build fields
$fields = array('id_agente', 'alias');
// Perform search // Perform search
$agents = db_get_all_rows_filter( $agents = agents_get_group_agents($id_group,$filter,"lower",false,false,false,'|',$cluster_mode);
'tagente LEFT JOIN tagent_secondary_group ON id_agente=id_agent',
$filter,
$fields
);
if (empty($agents)) $agents = array(); if (empty($agents)) $agents = array();
foreach ($agents as $k => $v) {
$agents[$k] = io_safe_output($v);
}
// Add keys prefix // Add keys prefix
if ($keys_prefix !== '') { if ($keys_prefix !== '') {
$i = 0;
foreach ($agents as $k => $v) { foreach ($agents as $k => $v) {
$agents[$keys_prefix . $k] = io_safe_output($v); $agents[$keys_prefix . $i] = array('id_agente' => $k, 'alias' => io_safe_output($v));
unset($agents[$k]); unset($agents[$k]);
$i++;
} }
} }