Working in the refactoring the code of reports (event_report_group) and added the filter by text. TICKET: #2066
This commit is contained in:
parent
d947d62b51
commit
bc9918707a
|
@ -104,6 +104,9 @@ $netflow_filter = 0;
|
|||
$max_values = 0;
|
||||
$resolution = 0;
|
||||
|
||||
//Others
|
||||
$filter_search = "";
|
||||
|
||||
switch ($action) {
|
||||
case 'new':
|
||||
$actionParameter = 'save';
|
||||
|
@ -412,6 +415,8 @@ switch ($action) {
|
|||
$event_graph_by_user_validator = $style['event_graph_by_user_validator'];
|
||||
$event_graph_by_criticity = $style['event_graph_by_criticity'];
|
||||
$event_graph_validated_vs_unvalidated = $style['event_graph_validated_vs_unvalidated'];
|
||||
|
||||
$filter_search = $style['event_filter_search'];
|
||||
break;
|
||||
case 'event_report_module':
|
||||
$description = $item['description'];
|
||||
|
@ -1190,6 +1195,14 @@ else
|
|||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="row_filter_search" style="" class="datos">
|
||||
<td><?php echo __('Free search');?></td>
|
||||
<td>
|
||||
<?php
|
||||
html_print_input_text('filter_search', $filter_search);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br />
|
||||
|
@ -2066,6 +2079,7 @@ function chooseType() {
|
|||
$("#row_max_values").hide();
|
||||
$("#row_resolution").hide();
|
||||
$("#row_last_value").hide();
|
||||
$("#row_filter_search").hide();
|
||||
|
||||
// SLA list default state
|
||||
$("#sla_list").hide();
|
||||
|
@ -2094,6 +2108,8 @@ function chooseType() {
|
|||
$("#row_event_graph_by_user").show();
|
||||
$("#row_event_graph_by_criticity").show();
|
||||
$("#row_event_graph_by_validated").show();
|
||||
|
||||
$("#row_filter_search").show();
|
||||
break;
|
||||
case 'simple_graph':
|
||||
$("#row_time_compare_overlapped").show();
|
||||
|
|
|
@ -957,6 +957,8 @@ switch ($action) {
|
|||
$event_graph_by_criticity = get_parameter('event_graph_by_criticity', 0);
|
||||
$event_graph_validated_vs_unvalidated = get_parameter('event_graph_validated_vs_unvalidated', 0);
|
||||
|
||||
$event_filter_search = get_parameter('filter_search', '');
|
||||
|
||||
// If metaconsole is activated
|
||||
if ($config['metaconsole'] == 1 && defined('METACONSOLE')) {
|
||||
if (($values['type'] == 'custom_graph') or ($values['type'] == 'automatic_custom_graph')) {
|
||||
|
@ -1023,6 +1025,13 @@ switch ($action) {
|
|||
$style['event_graph_by_user_validator'] = $event_graph_by_user_validator;
|
||||
$style['event_graph_by_criticity'] = $event_graph_by_criticity;
|
||||
$style['event_graph_validated_vs_unvalidated'] = $event_graph_validated_vs_unvalidated;
|
||||
|
||||
switch ($values['type']) {
|
||||
case 'event_report_group':
|
||||
$style['event_filter_search'] =
|
||||
$event_filter_search;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'simple_graph':
|
||||
// Warning. We are using this column to hold this value to avoid
|
||||
|
@ -1243,6 +1252,9 @@ switch ($action) {
|
|||
$event_graph_by_user_validator = get_parameter('event_graph_by_user_validator', 0);
|
||||
$event_graph_by_criticity = get_parameter('event_graph_by_criticity', 0);
|
||||
$event_graph_validated_vs_unvalidated = get_parameter('event_graph_validated_vs_unvalidated', 0);
|
||||
|
||||
$event_filter_search = get_parameter('filter_search', '');
|
||||
|
||||
//Added for events items
|
||||
$style['filter_event_no_validated'] = $filter_event_no_validated;
|
||||
$style['filter_event_validated'] = $filter_event_validated;
|
||||
|
@ -1253,6 +1265,14 @@ switch ($action) {
|
|||
$style['event_graph_by_user_validator'] = $event_graph_by_user_validator;
|
||||
$style['event_graph_by_criticity'] = $event_graph_by_criticity;
|
||||
$style['event_graph_validated_vs_unvalidated'] = $event_graph_validated_vs_unvalidated;
|
||||
|
||||
switch ($values['type']) {
|
||||
case 'event_report_group':
|
||||
$style['event_filter_search'] =
|
||||
$event_filter_search;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
case 'simple_graph':
|
||||
// Warning. We are using this column to hold this value to avoid
|
||||
|
|
|
@ -109,7 +109,9 @@ function events_get_event ($id, $fields = false) {
|
|||
return $event;
|
||||
}
|
||||
|
||||
function events_get_events_grouped($sql_post, $offset = 0, $pagination = 1, $meta = false, $history = false, $total = false) {
|
||||
function events_get_events_grouped($sql_post, $offset = 0,
|
||||
$pagination = 1, $meta = false, $history = false, $total = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$table = events_get_events_table($meta, $history);
|
||||
|
@ -1174,7 +1176,8 @@ function events_print_type_description ($type, $return = false) {
|
|||
*/
|
||||
function events_get_group_events ($id_group, $period, $date,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
|
@ -1204,8 +1207,17 @@ function events_get_group_events ($id_group, $period, $date,
|
|||
if ($filter_event_no_validated) {
|
||||
$sql_where .= ' AND estado = 0 ';
|
||||
}
|
||||
$sql_where .= sprintf(' AND id_grupo IN (%s) AND utimestamp > %d
|
||||
AND utimestamp <= %d ', implode (",", $id_group), $datelimit, $date);
|
||||
|
||||
if (!empty($filter_event_search)) {
|
||||
$sql_where .= ' AND (evento LIKE "%'. io_safe_input($filter_event_search) . '%"'.
|
||||
' OR id_evento LIKE "%' . io_safe_input($filter_event_search) . '%")';
|
||||
}
|
||||
|
||||
$sql_where .= sprintf('
|
||||
AND id_grupo IN (%s)
|
||||
AND utimestamp > %d
|
||||
AND utimestamp <= %d ',
|
||||
implode (",", $id_group), $datelimit, $date);
|
||||
|
||||
return events_get_events_grouped($sql_where, 0, 1000);
|
||||
}
|
||||
|
@ -2523,7 +2535,9 @@ function events_clean_tags ($tags) {
|
|||
*/
|
||||
function events_get_count_events_by_agent ($id_group, $period, $date,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$id_group = groups_safe_acl ($config["id_user"], $id_group, "AR");
|
||||
|
@ -2554,6 +2568,11 @@ function events_get_count_events_by_agent ($id_group, $period, $date,
|
|||
$sql_where .= ' AND estado = 0 ';
|
||||
}
|
||||
|
||||
if (!empty($filter_event_search)) {
|
||||
$sql_where .= ' AND (evento LIKE "%%'. io_safe_input($filter_event_search) . '%%"'.
|
||||
' OR id_evento LIKE "%%' . io_safe_input($filter_event_search) . '%%")';
|
||||
}
|
||||
|
||||
$sql = sprintf ('SELECT id_agente,
|
||||
(SELECT t2.nombre
|
||||
FROM tagente AS t2
|
||||
|
@ -2595,7 +2614,9 @@ function events_get_count_events_by_agent ($id_group, $period, $date,
|
|||
*/
|
||||
function events_get_count_events_validated_by_user ($filter, $period, $date,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$sql_filter = ' AND 1=1 ';
|
||||
|
@ -2636,6 +2657,11 @@ function events_get_count_events_validated_by_user ($filter, $period, $date,
|
|||
$sql_where .= ' AND estado = 0 ';
|
||||
}
|
||||
|
||||
if (!empty($filter_event_search)) {
|
||||
$sql_where .= ' AND (evento LIKE "%%'. io_safe_input($filter_event_search) . '%%"'.
|
||||
' OR id_evento LIKE "%%' . io_safe_input($filter_event_search) . '%%")';
|
||||
}
|
||||
|
||||
$sql = sprintf ('SELECT id_usuario,
|
||||
(SELECT t2.fullname
|
||||
FROM tusuario AS t2
|
||||
|
@ -2677,7 +2703,9 @@ function events_get_count_events_validated_by_user ($filter, $period, $date,
|
|||
*/
|
||||
function events_get_count_events_by_criticity ($filter, $period, $date,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$sql_filter = ' AND 1=1 ';
|
||||
|
@ -2718,6 +2746,11 @@ function events_get_count_events_by_criticity ($filter, $period, $date,
|
|||
$sql_where .= ' AND estado = 0 ';
|
||||
}
|
||||
|
||||
if (!empty($filter_event_search)) {
|
||||
$sql_where .= ' AND (evento LIKE "%%'. io_safe_input($filter_event_search) . '%%"'.
|
||||
' OR id_evento LIKE "%%' . io_safe_input($filter_event_search) . '%%")';
|
||||
}
|
||||
|
||||
$sql = sprintf ('SELECT criticity,
|
||||
COUNT(*) AS count
|
||||
FROM tevento
|
||||
|
@ -2752,7 +2785,9 @@ function events_get_count_events_by_criticity ($filter, $period, $date,
|
|||
*/
|
||||
function events_get_count_events_validated ($filter, $period, $date,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$sql_filter = ' AND 1=1 ';
|
||||
|
@ -2793,6 +2828,11 @@ function events_get_count_events_validated ($filter, $period, $date,
|
|||
$sql_where .= ' AND estado = 0 ';
|
||||
}
|
||||
|
||||
if (!empty($filter_event_search)) {
|
||||
$sql_where .= ' AND (evento LIKE "%%'. io_safe_input($filter_event_search) . '%%"'.
|
||||
' OR id_evento LIKE "%%' . io_safe_input($filter_event_search) . '%%")';
|
||||
}
|
||||
|
||||
$sql = sprintf ('SELECT estado,
|
||||
COUNT(*) AS count
|
||||
FROM tevento
|
||||
|
|
|
@ -104,6 +104,11 @@ function reporting_make_reporting_data($id_report, $date, $time,
|
|||
$return = array();
|
||||
|
||||
$report = db_get_row ('treport', 'id_report', $id_report);
|
||||
$report["group"] = $report['id_group'];
|
||||
$report["group_name"] = groups_get_name ($report['id_group']);
|
||||
$report['contents'] = array();
|
||||
$datetime = strtotime($date . ' ' . $time);
|
||||
$report["datetime"] = $datetime;
|
||||
|
||||
switch ($config["dbtype"]) {
|
||||
case "mysql":
|
||||
|
@ -120,16 +125,9 @@ function reporting_make_reporting_data($id_report, $date, $time,
|
|||
break;
|
||||
}
|
||||
if ($contents === false) {
|
||||
return $return;
|
||||
return reporting_check_structure_report($report);
|
||||
}
|
||||
|
||||
$report["group"] = $report['id_group'];
|
||||
$report["group_name"] = groups_get_name ($report['id_group']);
|
||||
|
||||
$datetime = strtotime($date . ' ' . $time);
|
||||
$report["datetime"] = $datetime;
|
||||
|
||||
$report['contents'] = array();
|
||||
|
||||
foreach ($contents as $content) {
|
||||
if (!empty($period)) {
|
||||
|
@ -402,12 +400,136 @@ function reporting_make_reporting_data($id_report, $date, $time,
|
|||
$report,
|
||||
$content);
|
||||
break;
|
||||
case 'event_report_group':
|
||||
$report['contents'][] = reporting_event_report_group(
|
||||
$report,
|
||||
$content);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return reporting_check_structure_report($report);
|
||||
}
|
||||
|
||||
function reporting_event_report_group($report, $content) {
|
||||
global $config;
|
||||
|
||||
$return['type'] = 'event_report_group';
|
||||
|
||||
if (empty($content['name'])) {
|
||||
$content['name'] = __('Event Report Group');
|
||||
}
|
||||
|
||||
$return['title'] = $content['name'];
|
||||
$return['subtitle'] = groups_get_name($content['id_group'], true);
|
||||
if (!empty($content['style']['event_filter_search'])) {
|
||||
$return['subtitle'] .= " (" . $content['style']['event_filter_search'] . ")";
|
||||
}
|
||||
$return["description"] = $content["description"];
|
||||
$return["date"] = reporting_get_date_text($report, $content);
|
||||
|
||||
|
||||
$filter_event_no_validated = $content['style']['filter_event_no_validated'];
|
||||
$filter_event_validated = $content['style']['filter_event_validated'];
|
||||
$filter_event_critical = $content['style']['filter_event_critical'];
|
||||
$filter_event_warning = $content['style']['filter_event_warning'];
|
||||
$filter_event_filter_search = $content['style']['event_filter_search'];
|
||||
|
||||
$event_graph_by_agent = $content['style']['event_graph_by_agent'];
|
||||
$event_graph_by_user_validator = $content['style']['event_graph_by_user_validator'];
|
||||
$event_graph_by_criticity = $content['style']['event_graph_by_criticity'];
|
||||
$event_graph_validated_vs_unvalidated = $content['style']['event_graph_validated_vs_unvalidated'];
|
||||
|
||||
|
||||
$data = reporting_get_group_detailed_event(
|
||||
$content['id_group'], $content['period'], $report["datetime"],
|
||||
true, true, $filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated,
|
||||
$filter_event_filter_search, 'hash');
|
||||
|
||||
if (empty($data)) {
|
||||
$return['failed'] = __('No events');
|
||||
}
|
||||
else {
|
||||
$return['data'] = $data;
|
||||
}
|
||||
|
||||
$return['chart']['by_agent'] = null;
|
||||
$return['chart']['by_user_validator'] = null;
|
||||
$return['chart']['by_criticity'] = null;
|
||||
$return['chart']['validated_vs_unvalidated'] = null;
|
||||
|
||||
if ($event_graph_by_agent) {
|
||||
$data_graph = reporting_get_count_events_by_agent(
|
||||
$content['id_group'], $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated,
|
||||
$filter_event_filter_search);
|
||||
|
||||
$return['chart']['by_agent']= pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size']);
|
||||
}
|
||||
|
||||
if ($event_graph_by_user_validator) {
|
||||
$data_graph =
|
||||
reporting_get_count_events_validated_by_user(
|
||||
array('id_group' => $content['id_group']), $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated,
|
||||
$filter_event_filter_search);
|
||||
|
||||
$return['chart']['by_user_validator'] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size']);
|
||||
}
|
||||
|
||||
if ($event_graph_by_criticity) {
|
||||
$data_graph = reporting_get_count_events_by_criticity(
|
||||
array('id_group' => $content['id_group']), $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated,
|
||||
$filter_event_filter_search);
|
||||
|
||||
$colors = get_criticity_pie_colors($data_graph);
|
||||
|
||||
$return['chart']['by_criticity'] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size'], 1, false, $colors);
|
||||
}
|
||||
|
||||
if ($event_graph_validated_vs_unvalidated) {
|
||||
$data_graph =
|
||||
reporting_get_count_events_validated(
|
||||
array('id_group' => $content['id_group']), $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated,
|
||||
$filter_event_filter_search);
|
||||
|
||||
$return['chart']['validated_vs_unvalidated'] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size']);
|
||||
}
|
||||
|
||||
return reporting_check_structure_content($return);
|
||||
}
|
||||
|
||||
function reporting_event_report_module($report, $content) {
|
||||
global $config;
|
||||
|
||||
|
@ -3119,6 +3241,129 @@ function reporting_set_conf_charts(&$width, &$height, &$only_image, $type,
|
|||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
* Gets a detailed reporting of groups's events.
|
||||
*
|
||||
* @param unknown_type $id_group Id of the group.
|
||||
* @param unknown_type $period Time period of the report.
|
||||
* @param unknown_type $date Date of the report.
|
||||
* @param unknown_type $return Whether to return or not.
|
||||
* @param unknown_type $html Whether to return HTML code or not.
|
||||
*
|
||||
* @return string Report of groups's events
|
||||
*/
|
||||
function reporting_get_group_detailed_event ($id_group, $period = 0,
|
||||
$date = 0, $return = false, $html = true,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_filter_search = null, $return_type = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
}
|
||||
if (empty ($date)) {
|
||||
$date = get_system_time ();
|
||||
}
|
||||
|
||||
$table->width = '99%';
|
||||
|
||||
$table->align = array();
|
||||
$table->align[0] = 'center';
|
||||
$table->align[2] = 'center';
|
||||
|
||||
$table->data = array ();
|
||||
|
||||
$table->head = array ();
|
||||
$table->head[0] = __('Status');
|
||||
$table->head[1] = __('Name');
|
||||
$table->head[2] = __('Type');
|
||||
$table->head[3] = __('Agent');
|
||||
$table->head[4] = __('Criticity');
|
||||
$table->head[5] = __('Val. by');
|
||||
$table->head[6] = __('Timestamp');
|
||||
|
||||
$events = events_get_group_events($id_group, $period, $date,
|
||||
$filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated,
|
||||
$filter_event_filter_search);
|
||||
|
||||
if ($return_type === 'hash') {
|
||||
return $events;
|
||||
}
|
||||
|
||||
if ($events) {
|
||||
$note = '';
|
||||
if (count($events) >= 1000) {
|
||||
$note .= '* ' . __('Maximum of events shown') . ' (1000)<br>';
|
||||
}
|
||||
foreach ($events as $k => $event) {
|
||||
//First pass along the class of this row
|
||||
$table->cellclass[$k][1] = $table->cellclass[$k][3] =
|
||||
$table->cellclass[$k][4] = $table->cellclass[$k][5] =
|
||||
$table->cellclass[$k][6] =
|
||||
get_priority_class ($event["criticity"]);
|
||||
|
||||
$data = array ();
|
||||
|
||||
// Colored box
|
||||
switch ($event['estado']) {
|
||||
case 0:
|
||||
$img_st = "images/star.png";
|
||||
$title_st = __('New event');
|
||||
break;
|
||||
case 1:
|
||||
$img_st = "images/tick.png";
|
||||
$title_st = __('Event validated');
|
||||
break;
|
||||
case 2:
|
||||
$img_st = "images/hourglass.png";
|
||||
$title_st = __('Event in process');
|
||||
break;
|
||||
}
|
||||
$data[] = html_print_image ($img_st, true,
|
||||
array ("class" => "image_status",
|
||||
"width" => 16,
|
||||
"title" => $title_st,
|
||||
"id" => 'status_img_' . $event["id_evento"]));
|
||||
|
||||
$data[] = ui_print_truncate_text(
|
||||
io_safe_output($event['evento']),
|
||||
140, false, true);
|
||||
|
||||
//$data[1] = $event['event_type'];
|
||||
$data[] = events_print_type_img ($event["event_type"], true);
|
||||
|
||||
if (!empty($event['id_agente']))
|
||||
$data[] = agents_get_name($event['id_agente']);
|
||||
else
|
||||
$data[] = __('Pandora System');
|
||||
$data[] = get_priority_name ($event['criticity']);
|
||||
if (empty($event['id_usuario']) && $event['estado'] == EVENT_VALIDATE) {
|
||||
$data[] = '<i>' . __('System') . '</i>';
|
||||
}
|
||||
else {
|
||||
$user_name = db_get_value ('fullname', 'tusuario', 'id_user', $event['id_usuario']);
|
||||
$data[] = io_safe_output($user_name);
|
||||
}
|
||||
$data[] = '<font style="font-size: 6pt;">' .
|
||||
date($config['date_format'], $event['timestamp_rep']) .
|
||||
'</font>';
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
|
||||
if ($html) {
|
||||
return html_print_table ($table, $return) . $note;
|
||||
}
|
||||
else {
|
||||
return $table;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a detailed report of summarized events per agent
|
||||
|
|
|
@ -249,6 +249,9 @@ function reporting_html_print_report($report, $mini = false) {
|
|||
case 'event_report_module':
|
||||
reporting_html_event_report_module($table, $item);
|
||||
break;
|
||||
case 'event_report_group':
|
||||
reporting_html_event_report_group($table, $item);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($item['type'] == 'agent_module')
|
||||
|
@ -261,6 +264,141 @@ function reporting_html_print_report($report, $mini = false) {
|
|||
}
|
||||
}
|
||||
|
||||
function reporting_html_event_report_group($table, $item) {
|
||||
global $config;
|
||||
|
||||
if (!empty($item['failed'])) {
|
||||
$table->colspan['events']['cell'] = 3;
|
||||
$table->data['events']['cell'] = $item['failed'];
|
||||
}
|
||||
else {
|
||||
$table1->width = '99%';
|
||||
|
||||
$table1->align = array();
|
||||
$table1->align[0] = 'center';
|
||||
$table1->align[2] = 'center';
|
||||
|
||||
$table1->data = array ();
|
||||
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Status');
|
||||
$table1->head[1] = __('Name');
|
||||
$table1->head[2] = __('Type');
|
||||
$table1->head[3] = __('Agent');
|
||||
$table1->head[4] = __('Criticity');
|
||||
$table1->head[5] = __('Val. by');
|
||||
$table1->head[6] = __('Timestamp');
|
||||
|
||||
foreach ($item['data'] as $k => $event) {
|
||||
//First pass along the class of this row
|
||||
$table1->cellclass[$k][1] = $table1->cellclass[$k][3] =
|
||||
$table1->cellclass[$k][4] = $table1->cellclass[$k][5] =
|
||||
$table1->cellclass[$k][6] =
|
||||
get_priority_class ($event["criticity"]);
|
||||
|
||||
$data = array ();
|
||||
|
||||
// Colored box
|
||||
switch ($event['estado']) {
|
||||
case 0:
|
||||
$img_st = "images/star.png";
|
||||
$title_st = __('New event');
|
||||
break;
|
||||
case 1:
|
||||
$img_st = "images/tick.png";
|
||||
$title_st = __('Event validated');
|
||||
break;
|
||||
case 2:
|
||||
$img_st = "images/hourglass.png";
|
||||
$title_st = __('Event in process');
|
||||
break;
|
||||
}
|
||||
$data[] = html_print_image ($img_st, true,
|
||||
array ("class" => "image_status",
|
||||
"width" => 16,
|
||||
"title" => $title_st,
|
||||
"id" => 'status_img_' . $event["id_evento"]));
|
||||
|
||||
$data[] = ui_print_truncate_text(
|
||||
io_safe_output($event['evento']),
|
||||
140, false, true);
|
||||
|
||||
//$data[1] = $event['event_type'];
|
||||
$data[] = events_print_type_img ($event["event_type"], true);
|
||||
|
||||
if (!empty($event['id_agente']))
|
||||
$data[] = agents_get_name($event['id_agente']);
|
||||
else
|
||||
$data[] = __('Pandora System');
|
||||
$data[] = get_priority_name ($event['criticity']);
|
||||
if (empty($event['id_usuario']) && $event['estado'] == EVENT_VALIDATE) {
|
||||
$data[] = '<i>' . __('System') . '</i>';
|
||||
}
|
||||
else {
|
||||
$user_name = db_get_value ('fullname', 'tusuario', 'id_user', $event['id_usuario']);
|
||||
$data[] = io_safe_output($user_name);
|
||||
}
|
||||
$data[] = '<font style="font-size: 6pt;">' .
|
||||
date($config['date_format'], $event['timestamp_rep']) .
|
||||
'</font>';
|
||||
array_push ($table1->data, $data);
|
||||
}
|
||||
|
||||
$table->colspan['events']['cell'] = 3;
|
||||
$table->data['events']['cell'] = html_print_table($table1, true);
|
||||
|
||||
|
||||
|
||||
if (!empty($item['chart']['by_agent'])) {
|
||||
$table1 = null;
|
||||
$table1->width = '99%';
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Events by agent');
|
||||
$table1->data[0][0] = $item['chart']['by_agent'];
|
||||
|
||||
$table->colspan['chart_by_agent']['cell'] = 3;
|
||||
$table->cellstyle['chart_by_agent']['cell'] = 'text-align: center;';
|
||||
$table->data['chart_by_agent']['cell'] = html_print_table($table1, true);
|
||||
}
|
||||
|
||||
if (!empty($item['chart']['by_user_validator'])) {
|
||||
$table1 = null;
|
||||
$table1->width = '99%';
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Events by user validator');
|
||||
$table1->data[0][0] = $item['chart']['by_user_validator'];
|
||||
|
||||
$table->colspan['chart_by_user_validator']['cell'] = 3;
|
||||
$table->cellstyle['chart_by_user_validator']['cell'] = 'text-align: center;';
|
||||
$table->data['chart_by_user_validator']['cell'] = html_print_table($table1, true);
|
||||
}
|
||||
|
||||
if (!empty($item['chart']['by_criticity'])) {
|
||||
$table1 = null;
|
||||
$table1->width = '99%';
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Events by criticity');
|
||||
$table1->data[0][0] = $item['chart']['by_criticity'];
|
||||
|
||||
$table->colspan['chart_by_criticity']['cell'] = 3;
|
||||
$table->cellstyle['chart_by_criticity']['cell'] = 'text-align: center;';
|
||||
$table->data['chart_by_criticity']['cell'] = html_print_table($table1, true);
|
||||
}
|
||||
|
||||
if (!empty($item['chart']['validated_vs_unvalidated'])) {
|
||||
$table1 = null;
|
||||
$table1->width = '99%';
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Events validated vs unvalidated');
|
||||
$table1->data[0][0] = $item['chart']['validated_vs_unvalidated'];
|
||||
|
||||
$table->colspan['chart_validated_vs_unvalidated']['cell'] = 3;
|
||||
$table->cellstyle['chart_validated_vs_unvalidated']['cell'] = 'text-align: center;';
|
||||
$table->data['chart_validated_vs_unvalidated']['cell'] = html_print_table($table1, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function reporting_html_event_report_module($table, $item) {
|
||||
|
||||
global $config;
|
||||
|
@ -3557,123 +3695,6 @@ function reporting_agents_get_group_agents_detailed ($id_group, $period = 0, $da
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets a detailed reporting of groups's events.
|
||||
*
|
||||
* @param unknown_type $id_group Id of the group.
|
||||
* @param unknown_type $period Time period of the report.
|
||||
* @param unknown_type $date Date of the report.
|
||||
* @param unknown_type $return Whether to return or not.
|
||||
* @param unknown_type $html Whether to return HTML code or not.
|
||||
*
|
||||
* @return string Report of groups's events
|
||||
*/
|
||||
function reporting_get_group_detailed_event ($id_group, $period = 0,
|
||||
$date = 0, $return = false, $html = true,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
}
|
||||
if (empty ($date)) {
|
||||
$date = get_system_time ();
|
||||
}
|
||||
|
||||
$table->width = '99%';
|
||||
|
||||
$table->align = array();
|
||||
$table->align[0] = 'center';
|
||||
$table->align[2] = 'center';
|
||||
|
||||
$table->data = array ();
|
||||
|
||||
$table->head = array ();
|
||||
$table->head[0] = __('Status');
|
||||
$table->head[1] = __('Name');
|
||||
$table->head[2] = __('Type');
|
||||
$table->head[3] = __('Agent');
|
||||
$table->head[4] = __('Criticity');
|
||||
$table->head[5] = __('Val. by');
|
||||
$table->head[6] = __('Timestamp');
|
||||
|
||||
$events = events_get_group_events($id_group, $period, $date,
|
||||
$filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated);
|
||||
|
||||
if ($events) {
|
||||
$note = '';
|
||||
if (count($events) >= 1000) {
|
||||
$note .= '* ' . __('Maximum of events shown') . ' (1000)<br>';
|
||||
}
|
||||
foreach ($events as $k => $event) {
|
||||
//First pass along the class of this row
|
||||
$table->cellclass[$k][1] = $table->cellclass[$k][3] =
|
||||
$table->cellclass[$k][4] = $table->cellclass[$k][5] =
|
||||
$table->cellclass[$k][6] =
|
||||
get_priority_class ($event["criticity"]);
|
||||
|
||||
$data = array ();
|
||||
|
||||
// Colored box
|
||||
switch ($event['estado']) {
|
||||
case 0:
|
||||
$img_st = "images/star.png";
|
||||
$title_st = __('New event');
|
||||
break;
|
||||
case 1:
|
||||
$img_st = "images/tick.png";
|
||||
$title_st = __('Event validated');
|
||||
break;
|
||||
case 2:
|
||||
$img_st = "images/hourglass.png";
|
||||
$title_st = __('Event in process');
|
||||
break;
|
||||
}
|
||||
$data[] = html_print_image ($img_st, true,
|
||||
array ("class" => "image_status",
|
||||
"width" => 16,
|
||||
"title" => $title_st,
|
||||
"id" => 'status_img_' . $event["id_evento"]));
|
||||
|
||||
$data[] = ui_print_truncate_text(
|
||||
io_safe_output($event['evento']),
|
||||
140, false, true);
|
||||
|
||||
//$data[1] = $event['event_type'];
|
||||
$data[] = events_print_type_img ($event["event_type"], true);
|
||||
|
||||
if (!empty($event['id_agente']))
|
||||
$data[] = agents_get_name($event['id_agente']);
|
||||
else
|
||||
$data[] = __('Pandora System');
|
||||
$data[] = get_priority_name ($event['criticity']);
|
||||
if (empty($event['id_usuario']) && $event['estado'] == EVENT_VALIDATE) {
|
||||
$data[] = '<i>' . __('System') . '</i>';
|
||||
}
|
||||
else {
|
||||
$user_name = db_get_value ('fullname', 'tusuario', 'id_user', $event['id_usuario']);
|
||||
$data[] = io_safe_output($user_name);
|
||||
}
|
||||
$data[] = '<font style="font-size: 6pt;">' .
|
||||
date($config['date_format'], $event['timestamp_rep']) .
|
||||
'</font>';
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
|
||||
if ($html) {
|
||||
return html_print_table ($table, $return) . $note;
|
||||
}
|
||||
else {
|
||||
return $table;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -4379,158 +4400,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||
break;
|
||||
|
||||
|
||||
case 'event_report_group':
|
||||
if (empty($item_title)) {
|
||||
$item_title = __('Group detailed event');
|
||||
}
|
||||
reporting_header_content($mini, $content, $report, $table, $item_title,
|
||||
ui_print_truncate_text(groups_get_name($content['id_group'], true), 60, false));
|
||||
|
||||
$next_row = 1;
|
||||
|
||||
// Put description at the end of the module (if exists)
|
||||
if ($content["description"] != "") {
|
||||
$data_desc = array();
|
||||
$data_desc[0] = $content["description"];
|
||||
array_push ($table->data, $data_desc);
|
||||
$table->colspan[$next_row][0] = 3;
|
||||
$next_row++;
|
||||
}
|
||||
|
||||
$data = array ();
|
||||
|
||||
$style = json_decode(io_safe_output($content['style']), true);
|
||||
|
||||
$filter_event_no_validated = $style['filter_event_no_validated'];
|
||||
$filter_event_validated = $style['filter_event_validated'];
|
||||
$filter_event_critical = $style['filter_event_critical'];
|
||||
$filter_event_warning = $style['filter_event_warning'];
|
||||
|
||||
$event_graph_by_agent = $style['event_graph_by_agent'];
|
||||
$event_graph_by_user_validator = $style['event_graph_by_user_validator'];
|
||||
$event_graph_by_criticity = $style['event_graph_by_criticity'];
|
||||
$event_graph_validated_vs_unvalidated = $style['event_graph_validated_vs_unvalidated'];
|
||||
|
||||
$data[0] = reporting_get_group_detailed_event(
|
||||
$content['id_group'], $content['period'],
|
||||
$report["datetime"], true, true,
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated);
|
||||
if(!empty($data[0])) {
|
||||
array_push ($table->data, $data);
|
||||
|
||||
$table->colspan[$next_row][0] = 3;
|
||||
$next_row++;
|
||||
}
|
||||
|
||||
if ($event_graph_by_agent) {
|
||||
$data_graph = reporting_get_count_events_by_agent(
|
||||
$content['id_group'], $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated);
|
||||
|
||||
$table_event_graph = null;
|
||||
$table_event_graph->width = '100%';
|
||||
$table_event_graph->style[0] = 'text-align: center;';
|
||||
$table_event_graph->head[0] = __('Events by agent');
|
||||
|
||||
$table_event_graph->data[0][0] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size']);
|
||||
|
||||
$data[0] = html_print_table($table_event_graph, true);
|
||||
|
||||
$table->colspan[$next_row][0] = 3;
|
||||
$next_row++;
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
|
||||
if ($event_graph_by_user_validator) {
|
||||
$data_graph = reporting_get_count_events_validated_by_user(
|
||||
array('id_group' => $content['id_group']), $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated);
|
||||
|
||||
$table_event_graph = null;
|
||||
$table_event_graph->head[0] = __('Events validated by user');
|
||||
$table_event_graph->width = '100%';
|
||||
$table_event_graph->style[0] = 'text-align: center;';
|
||||
|
||||
$table_event_graph->data[0][0] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size']);
|
||||
|
||||
$data[0] = html_print_table($table_event_graph, true);
|
||||
|
||||
$table->colspan[$next_row][0] = 3;
|
||||
$next_row++;
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
|
||||
if ($event_graph_by_criticity) {
|
||||
$data_graph = reporting_get_count_events_by_criticity(
|
||||
array('id_group' => $content['id_group']), $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated);
|
||||
|
||||
$colors = get_criticity_pie_colors($data_graph);
|
||||
|
||||
$table_event_graph = null;
|
||||
$table_event_graph->head[0] = __('Events by criticity');
|
||||
$table_event_graph->width = '100%';
|
||||
$table_event_graph->style[0] = 'text-align: center;';
|
||||
|
||||
$table_event_graph->data[0][0] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size'], 1, false, $colors);
|
||||
|
||||
$data[0] = html_print_table($table_event_graph, true);
|
||||
|
||||
$table->colspan[$next_row][0] = 3;
|
||||
$next_row++;
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
|
||||
if ($event_graph_validated_vs_unvalidated) {
|
||||
$data_graph = reporting_get_count_events_validated(
|
||||
array('id_group' => $content['id_group']), $content['period'],
|
||||
$report["datetime"],
|
||||
$filter_event_validated,
|
||||
$filter_event_critical,
|
||||
$filter_event_warning,
|
||||
$filter_event_no_validated);
|
||||
|
||||
$table_event_graph = null;
|
||||
$table_event_graph->head[0] = __('Amount events validated');
|
||||
$table_event_graph->width = '100%';
|
||||
$table_event_graph->style[0] = 'text-align: center;';
|
||||
|
||||
$table_event_graph->data[0][0] = pie3d_graph(
|
||||
false, $data_graph, 500, 150, __("other"), "",
|
||||
ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png",
|
||||
$config['fontpath'], $config['font_size']);
|
||||
|
||||
$data[0] = html_print_table($table_event_graph, true);
|
||||
|
||||
$table->colspan[$next_row][0] = 3;
|
||||
$next_row++;
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'top_n':
|
||||
$top_n = $content['top_n'];
|
||||
|
@ -4942,7 +4812,8 @@ function reporting_template_graphs_get_user ($id_user = 0, $only_names = false,
|
|||
function reporting_get_count_events_by_agent ($id_group, $period = 0,
|
||||
$date = 0,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_filter_search = null) {
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
|
@ -4953,7 +4824,8 @@ function reporting_get_count_events_by_agent ($id_group, $period = 0,
|
|||
|
||||
return events_get_count_events_by_agent($id_group, $period, $date,
|
||||
$filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated);
|
||||
$filter_event_warning, $filter_event_no_validated,
|
||||
$filter_event_filter_search);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4970,7 +4842,8 @@ function reporting_get_count_events_by_agent ($id_group, $period = 0,
|
|||
function reporting_get_count_events_validated_by_user ($filter, $period = 0,
|
||||
$date = 0,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
|
@ -4981,7 +4854,7 @@ function reporting_get_count_events_validated_by_user ($filter, $period = 0,
|
|||
|
||||
return events_get_count_events_validated_by_user($filter, $period, $date,
|
||||
$filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated);
|
||||
$filter_event_warning, $filter_event_no_validated, $filter_event_search);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4998,7 +4871,8 @@ function reporting_get_count_events_validated_by_user ($filter, $period = 0,
|
|||
function reporting_get_count_events_by_criticity ($filter, $period = 0,
|
||||
$date = 0,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
|
@ -5009,7 +4883,8 @@ function reporting_get_count_events_by_criticity ($filter, $period = 0,
|
|||
|
||||
return events_get_count_events_by_criticity($filter, $period, $date,
|
||||
$filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated);
|
||||
$filter_event_warning, $filter_event_no_validated,
|
||||
$filter_event_search);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5026,7 +4901,8 @@ function reporting_get_count_events_by_criticity ($filter, $period = 0,
|
|||
function reporting_get_count_events_validated ($filter, $period = 0,
|
||||
$date = 0,
|
||||
$filter_event_validated = false, $filter_event_critical = false,
|
||||
$filter_event_warning = false, $filter_event_no_validated = false) {
|
||||
$filter_event_warning = false, $filter_event_no_validated = false,
|
||||
$filter_event_search = false) {
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
|
@ -5037,7 +4913,8 @@ function reporting_get_count_events_validated ($filter, $period = 0,
|
|||
|
||||
return events_get_count_events_validated($filter, $period, $date,
|
||||
$filter_event_validated, $filter_event_critical,
|
||||
$filter_event_warning, $filter_event_no_validated);
|
||||
$filter_event_warning, $filter_event_no_validated,
|
||||
$filter_event_search);
|
||||
}
|
||||
|
||||
function reporting_get_agents_by_status ($data, $graph_width = 250, $graph_height = 150, $links = false) {
|
||||
|
|
Loading…
Reference in New Issue