Working in the refactoring the code of reports (event_report_module).
This commit is contained in:
parent
24e0c6430b
commit
55dc1a278e
|
@ -1342,7 +1342,7 @@ function events_get_module ($id_agent_module, $period, $date = 0) {
|
|||
|
||||
$datelimit = $date - $period;
|
||||
|
||||
$sql_where .= sprintf(' AND id_agentmodule = %d AND utimestamp > %d
|
||||
$sql_where = sprintf(' AND id_agentmodule = %d AND utimestamp > %d
|
||||
AND utimestamp <= %d ', $id_agent_module, $datelimit, $date);
|
||||
|
||||
return events_get_events_grouped($sql_where, 0, 1000);
|
||||
|
|
|
@ -397,12 +397,48 @@ function reporting_make_reporting_data($id_report, $date, $time,
|
|||
$report,
|
||||
$content);
|
||||
break;
|
||||
case 'event_report_module':
|
||||
$report['contents'][] = reporting_event_report_module(
|
||||
$report,
|
||||
$content);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return reporting_check_structure_report($report);
|
||||
}
|
||||
|
||||
function reporting_event_report_module($report, $content) {
|
||||
global $config;
|
||||
|
||||
$return['type'] = 'event_report_module';
|
||||
|
||||
if (empty($content['name'])) {
|
||||
$content['name'] = __('Event Report Module');
|
||||
}
|
||||
|
||||
$return['title'] = $content['name'];
|
||||
$return['subtitle'] = agents_get_name($content['id_agent']) .
|
||||
" - " .
|
||||
io_safe_output(
|
||||
modules_get_agentmodule_name($content['id_agent_module']));
|
||||
$return["description"] = $content["description"];
|
||||
$return["date"] = reporting_get_date_text($report, $content);
|
||||
|
||||
$data = reporting_get_module_detailed_event(
|
||||
$content['id_agent_module'], $content['period'],
|
||||
$report["datetime"], true, false, true);
|
||||
|
||||
if (empty($data)) {
|
||||
$return['failed'] = __('No events');
|
||||
}
|
||||
else {
|
||||
$return['data'] = $data;
|
||||
}
|
||||
|
||||
return reporting_check_structure_content($return);
|
||||
}
|
||||
|
||||
function reporting_inventory_changes($report, $content) {
|
||||
global $config;
|
||||
|
||||
|
@ -3084,6 +3120,116 @@ function reporting_set_conf_charts(&$width, &$height, &$only_image, $type,
|
|||
|
||||
|
||||
|
||||
/**
|
||||
* Get a detailed report of summarized events per agent
|
||||
*
|
||||
* It construct a table object with all the grouped events happened in an agent
|
||||
* during a period of time.
|
||||
*
|
||||
* @param mixed Module id to get the report from.
|
||||
* @param int Period of time (in seconds) to get the report.
|
||||
* @param int Beginning date (unixtime) of the report
|
||||
* @param bool Flag to return or echo the report table (echo by default).
|
||||
* @param bool Flag to return the html or table object, by default html.
|
||||
*
|
||||
* @return mixed A table object (XHTML) or object table is false the html.
|
||||
*/
|
||||
function reporting_get_module_detailed_event ($id_modules, $period = 0,
|
||||
$date = 0, $return = false, $html = true, $only_data = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$id_modules = (array)safe_int ($id_modules, 1);
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
}
|
||||
if (empty ($date)) {
|
||||
$date = get_system_time ();
|
||||
}
|
||||
|
||||
$table->width = '99%';
|
||||
$table->data = array ();
|
||||
$table->head = array ();
|
||||
$table->head[0] = __('Status');
|
||||
$table->head[1] = __('Event name');
|
||||
$table->head[2] = __('Event type');
|
||||
$table->head[3] = __('Criticity');
|
||||
$table->head[4] = __('Count');
|
||||
$table->head[5] = __('Timestamp');
|
||||
$table->style[0] = 'text-align: center;';
|
||||
$table->style[4] = 'text-align: center;';
|
||||
|
||||
$events = array ();
|
||||
|
||||
foreach ($id_modules as $id_module) {
|
||||
$event = events_get_module ($id_module, (int) $period, (int) $date);
|
||||
if (!empty ($event)) {
|
||||
array_push ($events, $event);
|
||||
}
|
||||
}
|
||||
|
||||
if ($only_data) {
|
||||
return $event;
|
||||
}
|
||||
|
||||
if ($events) {
|
||||
$note = '';
|
||||
if (count($events) >= 1000) {
|
||||
$note .= '* ' . __('Maximum of events shown') . ' (1000)<br>';
|
||||
}
|
||||
foreach ($events as $eventRow) {
|
||||
foreach ($eventRow as $k => $event) {
|
||||
//$k = count($table->data);
|
||||
$table->cellclass[$k][1] = $table->cellclass[$k][2] =
|
||||
$table->cellclass[$k][3] = $table->cellclass[$k][4] =
|
||||
$table->cellclass[$k][5] = 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[0] = html_print_image ($img_st, true,
|
||||
array ("class" => "image_status",
|
||||
"width" => 16,
|
||||
"title" => $title_st,
|
||||
"id" => 'status_img_' . $event["id_evento"]));
|
||||
|
||||
$data[1] = io_safe_output($event['evento']);
|
||||
$data[2] = $event['event_type'];
|
||||
$data[3] = get_priority_name ($event['criticity']);
|
||||
$data[4] = $event['event_rep'];
|
||||
$data[5] = date($config['date_format'], $event['timestamp_rep']);
|
||||
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
|
||||
*
|
||||
|
|
|
@ -246,6 +246,9 @@ function reporting_html_print_report($report, $mini = false) {
|
|||
case 'inventory_changes':
|
||||
reporting_html_inventory_changes($table, $item);
|
||||
break;
|
||||
case 'event_report_module':
|
||||
reporting_html_event_report_module($table, $item);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($item['type'] == 'agent_module')
|
||||
|
@ -258,6 +261,72 @@ function reporting_html_print_report($report, $mini = false) {
|
|||
}
|
||||
}
|
||||
|
||||
function reporting_html_event_report_module($table, $item) {
|
||||
|
||||
global $config;
|
||||
|
||||
if (!empty($item['failed'])) {
|
||||
$table->colspan['events']['cell'] = 3;
|
||||
$table->data['events']['cell'] = $item['failed'];
|
||||
}
|
||||
else {
|
||||
$table1->width = '99%';
|
||||
$table1->data = array ();
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Status');
|
||||
$table1->head[1] = __('Event name');
|
||||
$table1->head[2] = __('Event type');
|
||||
$table1->head[3] = __('Criticity');
|
||||
$table1->head[4] = __('Count');
|
||||
$table1->head[5] = __('Timestamp');
|
||||
$table1->style[0] = 'text-align: center;';
|
||||
$table1->style[4] = 'text-align: center;';
|
||||
|
||||
|
||||
foreach ($item['data'] as $i => $event) {
|
||||
$data = array();
|
||||
|
||||
$table1->cellclass[$i][1] =
|
||||
$table1->cellclass[$i][2] =
|
||||
$table1->cellclass[$i][3] =
|
||||
$table1->cellclass[$i][4] =
|
||||
$table1->cellclass[$i][5] = get_priority_class($event["criticity"]);
|
||||
|
||||
// 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[0] = html_print_image ($img_st, true,
|
||||
array ("class" => "image_status",
|
||||
"width" => 16,
|
||||
"title" => $title_st,
|
||||
"id" => 'status_img_' . $event["id_evento"]));
|
||||
$data[1] = io_safe_output($event['evento']);
|
||||
$data[2] = $event['event_type'];
|
||||
$data[3] = get_priority_name ($event['criticity']);
|
||||
$data[4] = $event['event_rep'];
|
||||
$data[5] = date($config['date_format'], $event['timestamp_rep']);
|
||||
|
||||
$table1->data[] = $data;
|
||||
}
|
||||
|
||||
$table->colspan['events']['cell'] = 3;
|
||||
$table->data['events']['cell'] = html_print_table($table1, true);
|
||||
}
|
||||
}
|
||||
|
||||
function reporting_html_inventory_changes($table, $item) {
|
||||
if (!empty($item['failed'])) {
|
||||
$table->colspan['failed']['cell'] = 3;
|
||||
|
@ -3607,109 +3676,6 @@ function reporting_get_group_detailed_event ($id_group, $period = 0,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a detailed report of summarized events per agent
|
||||
*
|
||||
* It construct a table object with all the grouped events happened in an agent
|
||||
* during a period of time.
|
||||
*
|
||||
* @param mixed Module id to get the report from.
|
||||
* @param int Period of time (in seconds) to get the report.
|
||||
* @param int Beginning date (unixtime) of the report
|
||||
* @param bool Flag to return or echo the report table (echo by default).
|
||||
* @param bool Flag to return the html or table object, by default html.
|
||||
*
|
||||
* @return mixed A table object (XHTML) or object table is false the html.
|
||||
*/
|
||||
function reporting_get_module_detailed_event ($id_modules, $period = 0, $date = 0, $return = false, $html = true) {
|
||||
global $config;
|
||||
|
||||
$id_modules = (array)safe_int ($id_modules, 1);
|
||||
|
||||
if (!is_numeric ($date)) {
|
||||
$date = strtotime ($date);
|
||||
}
|
||||
if (empty ($date)) {
|
||||
$date = get_system_time ();
|
||||
}
|
||||
|
||||
$table->width = '99%';
|
||||
$table->data = array ();
|
||||
$table->head = array ();
|
||||
$table->head[0] = __('Status');
|
||||
$table->head[1] = __('Event name');
|
||||
$table->head[2] = __('Event type');
|
||||
$table->head[3] = __('Criticity');
|
||||
$table->head[4] = __('Count');
|
||||
$table->head[5] = __('Timestamp');
|
||||
$table->style[0] = 'text-align: center;';
|
||||
$table->style[4] = 'text-align: center;';
|
||||
|
||||
$events = array ();
|
||||
|
||||
foreach ($id_modules as $id_module) {
|
||||
$event = events_get_module ($id_module, (int) $period, (int) $date);
|
||||
if (!empty ($event)) {
|
||||
array_push ($events, $event);
|
||||
}
|
||||
}
|
||||
|
||||
if ($events) {
|
||||
$note = '';
|
||||
if (count($events) >= 1000) {
|
||||
$note .= '* ' . __('Maximum of events shown') . ' (1000)<br>';
|
||||
}
|
||||
foreach ($events as $eventRow) {
|
||||
foreach ($eventRow as $k => $event) {
|
||||
//$k = count($table->data);
|
||||
$table->cellclass[$k][1] = $table->cellclass[$k][2] =
|
||||
$table->cellclass[$k][3] = $table->cellclass[$k][4] =
|
||||
$table->cellclass[$k][5] = 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[0] = html_print_image ($img_st, true,
|
||||
array ("class" => "image_status",
|
||||
"width" => 16,
|
||||
"title" => $title_st,
|
||||
"id" => 'status_img_' . $event["id_evento"]));
|
||||
|
||||
$data[1] = io_safe_output($event['evento']);
|
||||
$data[2] = $event['event_type'];
|
||||
$data[3] = get_priority_name ($event['criticity']);
|
||||
$data[4] = $event['event_rep'];
|
||||
$data[5] = date($config['date_format'], $event['timestamp_rep']);
|
||||
array_push ($table->data, $data);
|
||||
}
|
||||
}
|
||||
|
||||
if ($html) {
|
||||
return html_print_table ($table, $return) . $note;
|
||||
}
|
||||
else {
|
||||
return $table;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is the callback sorting function for SLA values descending
|
||||
|
@ -4565,27 +4531,6 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||
array_push ($table->data, $data);
|
||||
}
|
||||
break;
|
||||
case 'event_report_module':
|
||||
if (empty($item_title)) {
|
||||
$item_title = __('Module detailed event');
|
||||
}
|
||||
reporting_header_content($mini, $content, $report, $table, $item_title,
|
||||
ui_print_truncate_text($agent_name, 'agent_medium', false) .
|
||||
' <br> ' . ui_print_truncate_text($module_name, 'module_medium', false));
|
||||
|
||||
// Put description at the end of the module (if exists)
|
||||
$table->colspan[1][0] = 3;
|
||||
if ($content["description"] != "") {
|
||||
$data_desc = array();
|
||||
$data_desc[0] = $content["description"];
|
||||
array_push ($table->data, $data_desc);
|
||||
}
|
||||
|
||||
$data = array ();
|
||||
$table->colspan[2][0] = 3;
|
||||
$data[0] = reporting_get_module_detailed_event($content['id_agent_module'], $content['period'], $report["datetime"], true);
|
||||
array_push ($table->data, $data);
|
||||
break;
|
||||
|
||||
case 'top_n':
|
||||
$top_n = $content['top_n'];
|
||||
|
|
Loading…
Reference in New Issue