From fe51e17511c54826c64c91792dd37fcf0b32e9f3 Mon Sep 17 00:00:00 2001 From: m-lopez-f Date: Mon, 23 May 2016 09:45:42 +0200 Subject: [PATCH] Feature grouped by agent in event list. Supported to metaconsole. Tiquet: #3079 --- pandora_console/include/functions_events.php | 16 ++++++++++------ .../operation/events/events.build_table.php | 15 ++++++++++----- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 4885090bbe..b4b2347728 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -2959,21 +2959,22 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0, $table = events_get_events_table($meta, $history); if ($meta) { + $fields_extra = ', agent_name'; $groupby_extra = ', server_id'; } else { $groupby_extra = ''; + $fields_extra = ''; } switch ($config["dbtype"]) { case "mysql": if ($total) { - $sql = "SELECT COUNT(*) FROM (select id_agente, - event_type, count(*) as total from $table WHERE 1=1 + $sql = "SELECT COUNT(*) FROM (select id_agente from $table WHERE 1=1 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente ) AS t"; } else { - $sql = "select id_agente, event_type, count(*) as total, id_grupo from $table + $sql = "select id_agente, event_type, count(*) as total, id_grupo$fields_extra from $table WHERE id_agente > 0 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente LIMIT $offset,$pagination"; } break; @@ -2982,7 +2983,7 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0, } else { - $sql = "select id_agente, event_type, count(*), id_grupo as total from $table + $sql = "select id_agente, event_type, count(*) as total, id_grupo$fields_extra from $table WHERE id_agente > 0 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente LIMIT $offset,$pagination"; } break; @@ -2995,7 +2996,7 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0, $set['limit'] = $pagination; $set['offset'] = $offset; - $sql = "select id_agente, event_type, count(*), id_grupo as total from $table + $sql = "select id_agente, event_type, count(*) as total, id_grupo$fields_extra from $table WHERE id_agente > 0 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente "; $sql = oracle_recode_query ($sql, $set); } @@ -3010,7 +3011,10 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0, if ($events) { foreach ($events as $event) { - $id_agente = $event['id_agente']; + if ($meta) + $id_agente = $event['agent_name']; + else + $id_agente = $event['id_agente']; $result[$id_agente][$event['event_type']] = $event['total']; $result[$id_agente]['id_grupo'] = $event['id_grupo']; } diff --git a/pandora_console/operation/events/events.build_table.php b/pandora_console/operation/events/events.build_table.php index c948546e1e..b06717ee38 100644 --- a/pandora_console/operation/events/events.build_table.php +++ b/pandora_console/operation/events/events.build_table.php @@ -64,15 +64,20 @@ if ($group_rep == 2) { "&date_from=" . $date_from . "&date_to=" . $date_to . "&pure=" . $config["pure"]; - if ($meta) { - $params .= "&text_agent=" . $text_agent; - } $url_agente = "index.php?sec=eventos&sec2=operation/events/events&" . $params; foreach ($result as $key => $res) { - $table->data[$key][0] = agents_get_name ($key); + if ($meta) + $table->data[$key][0] = $key; + else + $table->data[$key][0] = agents_get_name ($key); + $key_result = array_keys($res); - $url_agente .= "&id_agent=" . $key; + + if ($meta) + $url_agente .= "&text_agent=" . $key; + else + $url_agente .= "&id_agent=" . $key; $unknown = 0; if (in_array('going_unknown',$key_result))