From 99aa41b32a20f53a571051f1a8e10d5f539e0a02 Mon Sep 17 00:00:00 2001 From: daniel Date: Fri, 13 Jan 2017 14:09:56 +0100 Subject: [PATCH] fixed reports events --- pandora_console/general/shortcut_bar.php | 3 +- .../reporting_builder.item_editor.php | 107 ++++++--- .../godmode/reporting/reporting_builder.php | 6 +- .../visual_console_builder.editor.php | 2 +- pandora_console/include/functions_events.php | 76 +++---- .../include/functions_reporting.php | 215 +++++++++++------- .../include/functions_reporting_html.php | 182 ++++++++++----- .../include/functions_visual_map.php | 2 +- pandora_console/include/styles/pandora.css | 6 + 9 files changed, 372 insertions(+), 227 deletions(-) diff --git a/pandora_console/general/shortcut_bar.php b/pandora_console/general/shortcut_bar.php index 5be87f3e70..f37915b110 100644 --- a/pandora_console/general/shortcut_bar.php +++ b/pandora_console/general/shortcut_bar.php @@ -102,7 +102,8 @@ function sc_get_critical_events () { $own_groups = array_keys(users_get_groups($config['id_user'], "IR", false)); // Get events in the last 8 hours - $shortcut_events_update = events_get_group_events($own_groups, 28800, time()); + $shortcut_events_update = events_get_agent (false, 28800, time(), false, false, false, false, + false, false, $own_groups, true); if ($shortcut_events_update == false) $shortcut_events_update = array(); diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index cdb9961af9..2aa6c11774 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -400,11 +400,13 @@ switch ($action) { break; case 'event_report_agent': case 'event_report_group': + case 'event_report_module': $description = $item['description']; $period = $item['period']; $group = $item['id_group']; $idAgent = $item['id_agent']; - + $idAgentModule = $item['id_agent_module']; + //Added for events items $show_summary_group = $style['show_summary_group']; $filter_event_severity = json_decode($style['filter_event_severity'], true); @@ -418,14 +420,6 @@ switch ($action) { $filter_search = $style['event_filter_search']; break; - case 'event_report_module': - $description = $item['description']; - $idAgentModule = $item['id_agent_module']; - $idAgent = db_get_value_filter('id_agente', - 'tagente_modulo', - array('id_agente_modulo' => $idAgentModule)); - $period = $item['period']; - break; case 'general': $description = $item['description']; $group_by_agent = $item['group_by_agent']; @@ -981,10 +975,12 @@ You can of course remove the warnings, that's why we include the source and do n if ((empty($agents)) || $agents == -1) $agents = array(); $agents_select = array(); - foreach ($id_agents as $id) { - foreach ($agents as $key => $a) { - if ($key == (int)$id) { - $agents_select[$key] = $key; + if (is_array($id_agents) || is_object($id_agents)){ + foreach ($id_agents as $id) { + foreach ($agents as $key => $a) { + if ($key == (int)$id) { + $agents_select[$key] = $key; + } } } } @@ -1336,8 +1332,8 @@ You can of course remove the warnings, that's why we include the source and do n @@ -1346,10 +1342,10 @@ You can of course remove the warnings, that's why we include the source and do n @@ -1358,10 +1354,10 @@ You can of course remove the warnings, that's why we include the source and do n @@ -1427,9 +1423,7 @@ You can of course remove the warnings, that's why we include the source and do n ?> - - - + @@ -1983,7 +1977,7 @@ $(document).ready (function () { switch (data) { case 'boolean': case 'sparse': - $("#row_percentil").show(); + //$("#row_percentil").show(); break; default: $("#row_percentil").hide(); @@ -1993,6 +1987,47 @@ $(document).ready (function () { }); }); + + + $("#submit-create_item").click(function () { + var type = $('#type').val(); + switch (type){ + case 'alert_report_module': case 'alert_report_agent': case 'alert_report_group': + case 'event_report_agent': case 'event_report_module': case 'event_report_group': + case 'simple_graph': case 'simple_baseline_graph': case 'TTRT': case 'TTO': + case 'MTBF': case 'MTTR': case 'prediction_date': case 'projection_graph': + case 'avg_value': case 'max_value': case 'min_value': case 'monitor_report': + case 'database_serialized': case 'sumatory': case 'historical_data': + case 'agent_configuration': + if ($("#hidden-id_agent").val() == 0) { + alert( ); + return false; + } + break; + default: + break; + } + }); + + $("#submit-edit_item").click(function () { + var type = $('#type').val(); + switch (type){ + case 'alert_report_module': case 'alert_report_agent': case 'alert_report_group': + case 'event_report_agent': case 'event_report_module': case 'event_report_group': + case 'simple_graph': case 'simple_baseline_graph': case 'TTRT': case 'TTO': + case 'MTBF': case 'MTTR': case 'prediction_date': case 'projection_graph': + case 'avg_value': case 'max_value': case 'min_value': case 'monitor_report': + case 'database_serialized': case 'sumatory': case 'historical_data': + case 'agent_configuration': + if ($("#hidden-id_agent").val() == 0) { + alert( ); + return false; + } + break; + default: + break; + } + }); }); @@ -2770,13 +2805,10 @@ function chooseType() { $("#row_period").show(); $("#row_servers").show(); $("#row_group").show(); - $("#row_show_in_two_columns").show(); $("#row_event_severity").show(); $("#row_event_status").show(); $("#row_show_summary_group").show(); - $("#row_event_graphs").show(); - $("#row_event_graph_by_agent").show(); $("#row_event_graph_by_user").show(); $("#row_event_graph_by_criticity").show(); @@ -2791,16 +2823,17 @@ function chooseType() { $("#row_description").show(); $("#row_agent").show(); $("#row_period").show(); - $("#row_show_in_two_columns").show(); $("#row_event_severity").show(); $("#row_event_status").show(); $("#row_show_summary_group").show(); $("#row_event_graphs").show(); + $("#row_event_type").show(); + $("#row_event_graph_by_user").show(); $("#row_event_graph_by_criticity").show(); $("#row_event_graph_by_validated").show(); - $("#row_event_type").show(); + $('#agent_autocomplete').hide(); $('#agent_autocomplete_events').show(); @@ -2812,15 +2845,19 @@ function chooseType() { $("#row_agent").show(); $("#row_module").show(); $("#row_period").show(); - $("#row_show_in_two_columns").show(); - - $("#row_event_graph_by_agent").show(); + $("#row_event_severity").show(); + $("#row_event_status").show(); + $("#row_show_summary_group").show(); + $("#row_event_graphs").show(); + $("#row_event_type").show(); + $("#row_event_graph_by_user").show(); $("#row_event_graph_by_criticity").show(); $("#row_event_graph_by_validated").show(); $('#agent_autocomplete').hide(); $('#agent_autocomplete_events').show(); + $("#row_filter_search").show(); break; case 'general': diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index 349484b772..d63128770d 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -1134,6 +1134,7 @@ switch ($action) { switch ($values['type']) { case 'event_report_agent': case 'event_report_group': + case 'event_report_module': //Added for events items $style['show_summary_group'] = $show_summary_group; $style['filter_event_severity'] = json_encode($filter_event_severity); @@ -1167,7 +1168,6 @@ switch ($action) { $style['label'] = ''; break; case 'agent_configuration': - case 'event_report_module': case 'alert_report_agent': case 'alert_report_module': case 'historical_data': @@ -1446,7 +1446,8 @@ switch ($action) { switch ($values['type']) { case 'event_report_agent': - case 'event_report_group': + case 'event_report_group': + case 'event_report_module': $show_summary_group = get_parameter('show_summary_group', 0); $filter_event_severity = get_parameter('filter_event_severity', ''); $filter_event_type = get_parameter('filter_event_type', ''); @@ -1494,7 +1495,6 @@ switch ($action) { $style['label'] = ''; break; case 'agent_configuration': - case 'event_report_module': case 'alert_report_agent': case 'alert_report_module': case 'historical_data': diff --git a/pandora_console/godmode/reporting/visual_console_builder.editor.php b/pandora_console/godmode/reporting/visual_console_builder.editor.php index 2468cef5cf..1f86475a36 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.editor.php +++ b/pandora_console/godmode/reporting/visual_console_builder.editor.php @@ -75,7 +75,7 @@ if (!defined('METACONSOLE')) { echo '
'; } else { - echo '
'; + echo '
'; } echo '
'; diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index a4ce09480b..ae089f2fa0 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -1261,7 +1261,7 @@ function events_get_group_events_steps ($begin, &$result, $id_group, $period, $d function events_get_agent ($id_agent, $period, $date = 0, $history = false, $show_summary_group = false, $filter_event_severity = false, $filter_event_type = false, $filter_event_status = false, $filter_event_filter_search=false, - $id_group = false, $events_group = false) { + $id_group = false, $events_group = false, $id_agent_module = false, $events_module = false) { global $config; if (!is_numeric ($date)) { @@ -1350,15 +1350,19 @@ function events_get_agent ($id_agent, $period, $date = 0, ' OR id_evento LIKE "%' . io_safe_input($filter_event_filter_search) . '%")'; } - if(!$events_group){ - $sql_where .= sprintf(' AND id_agente = %d AND utimestamp > %d - AND utimestamp <= %d ', $id_agent, $datelimit, $date); - } - else{ + if($events_group){ $sql_where .= sprintf(' AND id_grupo IN (%s) AND utimestamp > %d AND utimestamp <= %d ', implode (",", $id_group), $datelimit, $date); } - + elseif($events_module){ + $sql_where .= sprintf(' AND id_agentmodule = %d AND utimestamp > %d + AND utimestamp <= %d ', $id_agent_module, $datelimit, $date); + } + else{ + $sql_where .= sprintf(' AND id_agente = %d AND utimestamp > %d + AND utimestamp <= %d ', $id_agent, $datelimit, $date); + } + if($show_summary_group){ return events_get_events_grouped($sql_where, 0, 1000, is_metaconsole(), false, false, $history); @@ -1369,43 +1373,6 @@ function events_get_agent ($id_agent, $period, $date = 0, } } -/** - * Get all the events happened in an Agent during a period of time. - * - * The returned events will be in the time interval ($date - $period, $date] - * - * @param int $id_agent_module Module id to get events. - * @param int $period Period of time in seconds to get events. - * @param int $date Beginning date to get events. - * - * @return array An array with all the events happened. - */ -function events_get_module ($id_agent_module, $period, $date = 0, $history = false, $show_summary_group = false) { - global $config; - - if (!is_numeric ($date)) { - $date = strtotime ($date); - } - if (empty ($date)) { - $date = get_system_time (); - } - - $datelimit = $date - $period; - - $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, false, - false, false, $history); - - $sql = sprintf ('SELECT evento, event_type, criticity, count(*) as count_rep, max(timestamp) AS time2 - FROM tevento - WHERE id_agentmodule = %d AND utimestamp > %d AND utimestamp <= %d - GROUP BY id_agentmodule, evento ORDER BY time2 DESC', $id_agent_module, $datelimit, $date); - - return db_get_all_rows_sql ($sql); -} - /** * Decode a numeric type into type description. * @@ -2757,7 +2724,6 @@ function events_get_count_events_by_agent ($id_group, $period, $date, function events_get_count_events_validated_by_user ($filter, $period, $date, $filter_event_severity = false, $filter_event_type = false, $filter_event_status = false, $filter_event_filter_search = false) { - global $config; //group $sql_filter = ' AND 1=1 '; @@ -2772,11 +2738,17 @@ function events_get_count_events_validated_by_user ($filter, $period, $date, $sql_filter .= sprintf(' AND id_grupo IN (%s) ', implode (",", $id_group)); } + if (!empty($filter['id_agent'])) { $sql_filter .= sprintf(' AND id_agente = %d ', $filter['id_agent']); } + if(!empty($filter['id_agentmodule'])){ + $sql_filter .= + sprintf(' AND id_agentmodule = %d ', $filter['id_agentmodule']); + } + //date if (!is_numeric ($date)) { $date = strtotime ($date); @@ -2865,7 +2837,6 @@ function events_get_count_events_validated_by_user ($filter, $period, $date, %s %s GROUP BY id_usuario', $datelimit, $date, $sql_filter, $sql_where); - $rows = db_get_all_rows_sql ($sql); if ($rows == false) @@ -2879,7 +2850,6 @@ function events_get_count_events_validated_by_user ($filter, $period, $date, } $return[$user_name] = $row['count']; } - return $return; } @@ -2912,11 +2882,17 @@ function events_get_count_events_by_criticity ($filter, $period, $date, $sql_filter .= sprintf(' AND id_grupo IN (%s) ', implode (",", $id_group)); } + if (!empty($filter['id_agent'])) { $sql_filter .= sprintf(' AND id_agente = %d ', $filter['id_agent']); } + if(!empty($filter['id_agentmodule'])){ + $sql_filter .= + sprintf(' AND id_agentmodule = %d ', $filter['id_agentmodule']); + } + if (!is_numeric ($date)) { $date = strtotime ($date); } @@ -3045,10 +3021,16 @@ function events_get_count_events_validated ($filter, $period = null, $date = nul $sql_filter .= sprintf(" AND id_grupo IN (%s) ", implode (",", $id_group)); } + //agent if (!empty($filter['id_agent'])) { $sql_filter .= sprintf(" AND id_agente = %d ", $filter['id_agent']); } + //module + if(!empty($filter['id_agentmodule'])){ + $sql_filter .= + sprintf(' AND id_agentmodule = %d ', $filter['id_agentmodule']); + } //date if (!is_numeric ($date)) { diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 2a55275a3e..b31a5ee9e7 100644 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -447,7 +447,10 @@ function reporting_make_reporting_data($report = null, $id_report, case 'event_report_module': $report['contents'][] = reporting_event_report_module( $report, - $content); + $content, + $type, + $force_width_chart, + $force_height_chart); break; case 'event_report_group': $report['contents'][] = reporting_event_report_group( @@ -1413,15 +1416,25 @@ function reporting_event_report_group($report, $content, metaconsole_restore_db(); } - $return['total_events'] = count($return['data']); + //total_events + if(isset($return['data'])){ + $return['total_events'] = count($return['data']); + } + else{ + $return['total_events'] = 0; + } return reporting_check_structure_content($return); } -function reporting_event_report_module($report, $content) { +function reporting_event_report_module($report, $content, + $type = 'dinamic', $force_width_chart = null, + $force_height_chart = null) { global $config; + $ttl = 1; + $return['type'] = 'event_report_module'; if (empty($content['name'])) { @@ -1445,23 +1458,39 @@ function reporting_event_report_module($report, $content) { $return["date"] = reporting_get_date_text($report, $content); $return['label'] = (isset($content['style']['label'])) ? $content['style']['label'] : ''; - $data = reporting_get_module_detailed_event( - $content['id_agent_module'], $content['period'], - $report["datetime"], true, false, true); + $event_filter = $content['style']; + $return['show_summary_group'] = $event_filter['show_summary_group']; + //filter + $show_summary_group = $event_filter['show_summary_group']; + $filter_event_severity = json_decode($event_filter['filter_event_severity'],true); + $filter_event_type = json_decode($event_filter['filter_event_type'],true); + $filter_event_status = json_decode($event_filter['filter_event_status'],true); + $filter_event_filter_search = $event_filter['event_filter_search']; + //graphs + $event_graph_by_user_validator = $event_filter['event_graph_by_user_validator']; + $event_graph_by_criticity = $event_filter['event_graph_by_criticity']; + $event_graph_validated_vs_unvalidated = $event_filter['event_graph_validated_vs_unvalidated']; + + //data events + $data = reporting_get_module_detailed_event ( + $content['id_agent_module'], $content['period'], $report["datetime"], + $show_summary_group, $filter_event_severity, $filter_event_type, + $filter_event_status, $filter_event_filter_search, $force_width_chart, + $event_graph_by_user_validator, $event_graph_by_criticity, + $event_graph_validated_vs_unvalidated, $ttl); + if (empty($data)) { $return['failed'] = __('No events'); } else { $return['data'] = array_reverse($data); - } - + } + if ($config['metaconsole']) { metaconsole_restore_db(); } - $return['total_events'] = count($return['data']); - return reporting_check_structure_content($return); } @@ -2268,8 +2297,14 @@ function reporting_event_report_agent($report, $content, metaconsole_restore_db(); } - $return['total_events'] = count($return['data']); - + //total_events + if(isset($return['data'])){ + $return['total_events'] = count($return['data']); + } + else{ + $return['total_events'] = 0; + } + return reporting_check_structure_content($return); } @@ -5987,13 +6022,6 @@ function reporting_set_conf_charts(&$width, &$height, &$only_image, $type, } } - - - - - - - //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// @@ -6017,7 +6045,11 @@ function reporting_set_conf_charts(&$width, &$height, &$only_image, $type, * @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) { + $date = 0, $show_summary_group = false, $filter_event_severity = false, + $filter_event_type = false, $filter_event_status = false, + $filter_event_filter_search = false, $force_width_chart = false, + $event_graph_by_user_validator = false, $event_graph_by_criticity = false, + $event_graph_validated_vs_unvalidated = false, $ttl = 1) { global $config; @@ -6037,72 +6069,93 @@ function reporting_get_module_detailed_event ($id_modules, $period = 0, $events = array (); foreach ($id_modules as $id_module) { - $event = events_get_module ($id_module, (int) $period, (int) $date, $history, $show_summary_group); + $event['data'] = events_get_agent (false, (int) $period, (int) $date, + $history, $show_summary_group, $filter_event_severity, + $filter_event_type, $filter_event_status, $filter_event_filter_search, + false, false, $id_module, true); + + //total_events + if(isset($event['data'])){ + $event['total_events'] = count($event['data']); + } + else{ + $event['total_events'] = 0; + } + + //graphs + if (!empty($force_width_chart)) { + $width = $force_width_chart; + } + + if (!empty($force_height_chart)) { + $height = $force_height_chart; + } + + if ($event_graph_by_user_validator) { + $data_graph = events_get_count_events_validated_by_user( + array('id_agentmodule' => $id_module), $period, $date, $filter_event_severity, + $filter_event_type, $filter_event_status, $filter_event_filter_search); + + $event['chart']['by_user_validator'] = pie3d_graph( + false, + $data_graph, + 500, + 150, + __("other"), + ui_get_full_url(false, false, false, false), + ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png", + $config['fontpath'], + $config['font_size'], + $ttl); + } + + if ($event_graph_by_criticity) { + $data_graph = events_get_count_events_by_criticity( + array('id_agentmodule' => $id_module), $period, $date, $filter_event_severity, + $filter_event_type, $filter_event_status, $filter_event_filter_search); + + $colors = get_criticity_pie_colors($data_graph); + + $event['chart']['by_criticity'] = pie3d_graph( + false, + $data_graph, + 500, + 150, + __("other"), + ui_get_full_url(false, false, false, false), + ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png", + $config['fontpath'], + $config['font_size'], + $ttl, + false, + $colors); + } + + if ($event_graph_validated_vs_unvalidated) { + $data_graph = events_get_count_events_validated( + array('id_agentmodule' => $id_module), $period, $date, $filter_event_severity, + $filter_event_type, $filter_event_status, $filter_event_filter_search); + + $event['chart']['validated_vs_unvalidated'] = pie3d_graph( + false, + $data_graph, + 500, + 150, + __("other"), + ui_get_full_url(false, false, false, false), + ui_get_full_url(false, false, false, false) . "/images/logo_vertical_water.png", + $config['fontpath'], + $config['font_size'], + $ttl); + } + 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)
'; - } - 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; - } -} + return $events; +} /** * Get a detailed report of summarized events per agent diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index 5a1a6c2386..e72c5b557e 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -130,17 +130,13 @@ function reporting_html_print_report($report, $mini = false) { $table->data['description_row']['description'] = $item['description']; - if($item['type']=='event_report_agent' || $item['type']=='event_report_module' || $item['type']=='event_report_group'){ - + if($item['type']=='event_report_agent' || $item['type']=='event_report_group'){ if($item['description'] != '' && $item['description'] != null){ $table->data['description_row']['description'] .= " - "; } - $table->data['description_row']['description'] .= "Total events: ".$item["total_events"]; - - } $table->colspan['description_row']['description'] = 3; @@ -916,69 +912,139 @@ function reporting_html_event_report_group($table, $item) { } function reporting_html_event_report_module($table, $item) { - global $config; - + $show_summary_group = $item['show_summary_group']; if (!empty($item['failed'])) { $table->colspan['events']['cell'] = 3; $table->data['events']['cell'] = $item['failed']; } else { - $table1 = new stdClass(); - $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] = __('Severity'); - $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; + foreach ($item['data'] as $item) { + $table1 = new stdClass(); + $table1->width = '99%'; + $table1->data = array (); + $table1->head = array (); + if($show_summary_group){ + $table1->head[0] = __('Status'); + $table1->head[1] = __('Event name'); + $table1->head[2] = __('Event type'); + $table1->head[3] = __('Severity'); + $table1->head[4] = __('Count'); + $table1->head[5] = __('Timestamp'); + $table1->style[0] = 'text-align: center;'; + } + else{ + $table1->head[0] = __('Status'); + $table1->head[1] = __('Event name'); + $table1->head[2] = __('Event type'); + $table1->head[3] = __('Severity'); + $table1->head[4] = __('Timestamp'); + $table1->style[0] = 'text-align: center;'; + } + $table->data['tatal_events']['cell'] = "Total events: ".$item["total_events"]; + if (is_array($item['data']) || is_object($item['data'])){ + $item_data = array_reverse($item['data']); } - $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']); + if (is_array($item_data) || is_object($item_data)){ + foreach ($item_data as $i => $event) { + $data = array(); + if($show_summary_group){ + $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"]); + } + else{ + $table1->cellclass[$i][1] = $table1->cellclass[$i][2] = + $table1->cellclass[$i][3] = + $table1->cellclass[$i][4] = 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']); + if($show_summary_group){ + $data[4] = $event['event_rep']; + $data[5] = date($config['date_format'], $event['timestamp_rep']); + } + else{ + $data[4] = date($config['date_format'], strtotime($event['timestamp'])); + } + $table1->data[] = $data; + } + } + + $table->colspan['events']['cell'] = 3; + $table->data['events']['cell'] = html_print_table($table1, true); + + if (!empty($item['chart']['by_agent'])) { + $table1 = new stdClass(); + $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); + } - $table1->data[] = $data; + if (!empty($item['chart']['by_user_validator'])) { + $table1 = new stdClass(); + $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 = new stdClass(); + $table1->width = '99%'; + $table1->head = array (); + $table1->head[0] = __('Events by Severity'); + $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 = new stdClass(); + $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); + } } - - $table->colspan['events']['cell'] = 3; - $table->data['events']['cell'] = html_print_table($table1, true); } } diff --git a/pandora_console/include/functions_visual_map.php b/pandora_console/include/functions_visual_map.php index b27154c6c6..90c5c86089 100755 --- a/pandora_console/include/functions_visual_map.php +++ b/pandora_console/include/functions_visual_map.php @@ -2137,7 +2137,7 @@ function visual_map_print_visual_map ($id_layout, $show_links = true, } if (defined('METACONSOLE')) { - echo "
"; + echo "
"; } echo '