Feature grouped by agent in event list. Supported to metaconsole. Tiquet: #3079

This commit is contained in:
m-lopez-f 2016-05-23 09:45:42 +02:00
parent 9f772e5091
commit fe51e17511
2 changed files with 20 additions and 11 deletions

View File

@ -2959,21 +2959,22 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0,
$table = events_get_events_table($meta, $history); $table = events_get_events_table($meta, $history);
if ($meta) { if ($meta) {
$fields_extra = ', agent_name';
$groupby_extra = ', server_id'; $groupby_extra = ', server_id';
} }
else { else {
$groupby_extra = ''; $groupby_extra = '';
$fields_extra = '';
} }
switch ($config["dbtype"]) { switch ($config["dbtype"]) {
case "mysql": case "mysql":
if ($total) { if ($total) {
$sql = "SELECT COUNT(*) FROM (select id_agente, $sql = "SELECT COUNT(*) FROM (select id_agente from $table WHERE 1=1
event_type, count(*) as total from $table WHERE 1=1
$sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente ) AS t"; $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente ) AS t";
} }
else { 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"; WHERE id_agente > 0 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente LIMIT $offset,$pagination";
} }
break; break;
@ -2982,7 +2983,7 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0,
} }
else { 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"; WHERE id_agente > 0 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente LIMIT $offset,$pagination";
} }
break; break;
@ -2995,7 +2996,7 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0,
$set['limit'] = $pagination; $set['limit'] = $pagination;
$set['offset'] = $offset; $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 "; WHERE id_agente > 0 $sql_post GROUP BY id_agente, event_type$groupby_extra ORDER BY id_agente ";
$sql = oracle_recode_query ($sql, $set); $sql = oracle_recode_query ($sql, $set);
} }
@ -3010,7 +3011,10 @@ function events_get_events_grouped_by_agent($sql_post, $offset = 0,
if ($events) { if ($events) {
foreach ($events as $event) { 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][$event['event_type']] = $event['total'];
$result[$id_agente]['id_grupo'] = $event['id_grupo']; $result[$id_agente]['id_grupo'] = $event['id_grupo'];
} }

View File

@ -64,15 +64,20 @@ if ($group_rep == 2) {
"&date_from=" . $date_from . "&date_from=" . $date_from .
"&date_to=" . $date_to . "&date_to=" . $date_to .
"&pure=" . $config["pure"]; "&pure=" . $config["pure"];
if ($meta) {
$params .= "&text_agent=" . $text_agent;
}
$url_agente = "index.php?sec=eventos&sec2=operation/events/events&" . $params; $url_agente = "index.php?sec=eventos&sec2=operation/events/events&" . $params;
foreach ($result as $key => $res) { 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); $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; $unknown = 0;
if (in_array('going_unknown',$key_result)) if (in_array('going_unknown',$key_result))