mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-30 17:25:26 +02:00
fixed reports events
This commit is contained in:
parent
993bad314d
commit
99aa41b32a
@ -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();
|
||||
|
||||
|
@ -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
|
||||
<?php
|
||||
$valuesSeverity = get_priorities ();
|
||||
html_print_select ($valuesSeverity, 'filter_event_severity[]',
|
||||
$filter_event_severity, '', __('All'), 'all', false, true,
|
||||
false, '', false, false, false, false, false, '');
|
||||
$filter_event_severity, '', __('All'), '-1', false, true,
|
||||
false, '', false, false, false, false, false, '');
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1346,10 +1342,10 @@ You can of course remove the warnings, that's why we include the source and do n
|
||||
<td style="font-weight:bold;"><?php echo __('Event type'); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
$event_types_select = get_event_types();
|
||||
html_print_select ($event_types_select, 'filter_event_type[]',
|
||||
$filter_event_type, '', __('All'), 'all', false, true,
|
||||
false, '', false, false, false, false, false, '');
|
||||
$event_types_select = get_event_types();
|
||||
html_print_select ($event_types_select, 'filter_event_type[]',
|
||||
$filter_event_type, '', __('All'), 'all', false, true,
|
||||
false, '', false, false, false, false, false, '');
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1358,10 +1354,10 @@ You can of course remove the warnings, that's why we include the source and do n
|
||||
<td style="font-weight:bold;"><?php echo __('Event Status'); ?></td>
|
||||
<td>
|
||||
<?php
|
||||
$fields = events_get_all_status(true);
|
||||
html_print_select ($fields, 'filter_event_status[]',
|
||||
$filter_event_status, '', '', '', false, true,
|
||||
false, '', false, false, false, false, false, '');
|
||||
$fields = events_get_all_status(true);
|
||||
html_print_select ($fields, 'filter_event_status[]',
|
||||
$filter_event_status, '', '', '', false, true,
|
||||
false, '', false, false, false, false, false, '');
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -1427,9 +1423,7 @@ You can of course remove the warnings, that's why we include the source and do n
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
<tr id="row_filter_search" style="" class="datos">
|
||||
<td style="font-weight:bold;"><?php echo __('Free search');?></td>
|
||||
<td>
|
||||
@ -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( <?php echo "'" . __('Please select Agent'). "'"; ?> );
|
||||
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( <?php echo "'" . __('Please select Agent'). "'"; ?> );
|
||||
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':
|
||||
|
@ -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':
|
||||
|
@ -75,7 +75,7 @@ if (!defined('METACONSOLE')) {
|
||||
echo '<div id="frame_view" style="width: 100%; height: 500px; overflow: scroll; margin: 0 auto;">';
|
||||
}
|
||||
else {
|
||||
echo '<div id="frame_view" style="width: 919px; height: 500px; overflow: scroll; margin: 0 auto;">';
|
||||
echo '<div id="frame_view" style="overflow: auto; margin: 0px auto; padding: 5px; ">';
|
||||
}
|
||||
echo '<div id="background" class="" style="
|
||||
margin: 0px auto;border: 2px black solid; width: ' . $widthBackground . 'px; height: ' . $heightBackground . 'px;">';
|
||||
|
@ -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)) {
|
||||
|
@ -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)<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;
|
||||
}
|
||||
}
|
||||
|
||||
return $events;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a detailed report of summarized events per agent
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2137,7 +2137,7 @@ function visual_map_print_visual_map ($id_layout, $show_links = true,
|
||||
}
|
||||
|
||||
if (defined('METACONSOLE')) {
|
||||
echo "<div style='width: 920px; overflow:auto; margin: 0 auto;'>";
|
||||
echo "<div style='width: 100%; overflow:auto; margin: 0 auto; padding:5px;'>";
|
||||
}
|
||||
|
||||
echo '<div style="background-color:'.$layout["background_color"].';"><div id="background_'.$id_layout.'"
|
||||
|
@ -3607,4 +3607,10 @@ color:#82b92e;font-family:Nunito;font-size:10pt;position:relative;top:6px;
|
||||
|
||||
.input_error {
|
||||
border: 1px solid red;
|
||||
}
|
||||
|
||||
#filter_event_status,
|
||||
#filter_event_severity,
|
||||
#filter_event_type {
|
||||
width:50%;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user