$data, 'recordsTotal' => $count, 'recordsFiltered' => $count, ] ); } // AJAX section ends. exit; } // TAGS. // Get the tags where the user have permissions in Events reading tasks. $tags = tags_get_user_tags($config['id_user'], $access); $tags_select_with = []; $tags_select_without = []; $tag_with_temp = []; $tag_without_temp = []; foreach ($tags as $id_tag => $tag) { if ((array_search($id_tag, $tag_with) === false) || (array_search($id_tag, $tag_with) === null) ) { $tags_select_with[$id_tag] = ui_print_truncate_text($tag, 50, true); } else { $tag_with_temp[$id_tag] = ui_print_truncate_text($tag, 50, true); } if ((array_search($id_tag, $tag_without) === false) || (array_search($id_tag, $tag_without) === null) ) { $tags_select_without[$id_tag] = ui_print_truncate_text($tag, 50, true); } else { $tag_without_temp[$id_tag] = ui_print_truncate_text($tag, 50, true); } } $add_with_tag_disabled = empty($tags_select_with); $remove_with_tag_disabled = empty($tag_with_temp); $add_without_tag_disabled = empty($tags_select_without); $remove_without_tag_disabled = empty($tag_without_temp); $tabletags_with = html_get_predefined_table('transparent', 2); $tabletags_with->id = 'filter_events_tags_with'; $tabletags_with->width = '100%'; $tabletags_with->cellspacing = 4; $tabletags_with->cellpadding = 4; $tabletags_with->class = 'noshadow'; $tabletags_with->styleTable = 'border: 0px;'; if (is_metaconsole()) { $tabletags_with->class = 'nobady'; $tabletags_with->cellspacing = 0; $tabletags_with->cellpadding = 0; } $data = []; $data[0] = html_print_select( $tags_select_with, 'select_with', '', '', '', 0, true, true, true, '', false, 'width: 200px;' ); $data[1] = html_print_image( 'images/darrowright.png', true, [ 'id' => 'button-add_with', 'style' => 'cursor: pointer;', 'title' => __('Add'), ] ); $data[1] .= html_print_input_hidden( 'tag_with', $tag_with_base64, true ); $data[1] .= '

'.html_print_image( 'images/darrowleft.png', true, [ 'id' => 'button-remove_with', 'style' => 'cursor: pointer;', 'title' => __('Remove'), ] ); $data[2] = html_print_select( $tag_with_temp, 'tag_with_temp', [], '', '', 0, true, true, true, '', false, 'width: 200px;' ); $tabletags_with->data[] = $data; $tabletags_with->rowclass[] = ''; $tabletags_without = html_get_predefined_table('transparent', 2); $tabletags_without->id = 'filter_events_tags_without'; $tabletags_without->width = '100%'; $tabletags_without->cellspacing = 4; $tabletags_without->cellpadding = 4; $tabletags_without->class = 'noshadow'; if (is_metaconsole()) { $tabletags_without->class = 'nobady'; $tabletags_without->cellspacing = 0; $tabletags_without->cellpadding = 0; } $tabletags_without->styleTable = 'border: 0px;'; $data = []; $data[0] = html_print_select( $tags_select_without, 'select_without', '', '', '', 0, true, true, true, '', false, 'width: 200px;' ); $data[1] = html_print_image( 'images/darrowright.png', true, [ 'id' => 'button-add_without', 'style' => 'cursor: pointer;', 'title' => __('Add'), ] ); $data[1] .= html_print_input_hidden( 'tag_without', $tag_without_base64, true ); $data[1] .= '

'.html_print_image( 'images/darrowleft.png', true, [ 'id' => 'button-remove_without', 'style' => 'cursor: pointer;', 'title' => __('Remove'), ] ); $data[2] = html_print_select( $tag_without_temp, 'tag_without_temp', [], '', '', 0, true, true, true, '', false, 'width: 200px;' ); $tabletags_without->data[] = $data; $tabletags_without->rowclass[] = ''; if (io_safe_output($tag_with) == '["0"]') { $tag_with = '[]'; } if (io_safe_output($tag_without) == '["0"]') { $tag_without = '[]'; } /* * END OF TAGS. */ // View. $pure = get_parameter('pure', 0); $url = ui_get_full_url('index.php?sec=eventos&sec2=operation/events/events'); // Concatenate parameters. $url .= ''; if (is_metaconsole()) { // Load metaconsole frame. enterprise_hook('open_meta_frame'); } else if ($pure) { // Fullscreen. // Floating menu - Start. echo '
'; echo ''; echo '
'; // Floating menu - End. ui_require_jquery_file('countdown'); } else { // Header. $pss = get_user_info($config['id_user']); $hashup = md5($config['id_user'].$pss['password']); // Fullscreen. $fullscreen['active'] = false; $fullscreen['text'] = ''.html_print_image('images/full_screen.png', true, ['title' => __('Full screen')]).''; // Event list. $list['active'] = false; $list['text'] = ''.html_print_image('images/events_list.png', true, ['title' => __('Event list')]).''; // History event list. $history_list['active'] = false; $history_list['text'] = ''.html_print_image('images/books.png', true, ['title' => __('History event list')]).''; // RSS. $rss['active'] = false; $rss['text'] = ''.html_print_image('images/rss.png', true, ['title' => __('RSS Events')]).''; // Marquee. $marquee['active'] = false; $marquee['text'] = ''.html_print_image('images/heart.png', true, ['title' => __('Marquee display')]).''; // CSV. $csv['active'] = false; $csv['text'] = ''.html_print_image('images/csv_mc.png', true, ['title' => __('Export to CSV file')]).''; // Sound events. $sound_event['active'] = false; $sound_event['text'] = ''.html_print_image('images/sound.png', true, ['title' => __('Sound events')]).''; // If the user has administrator permission display manage tab. if (check_acl($config['id_user'], 0, 'EW') || check_acl($config['id_user'], 0, 'EM')) { // Manage events. $manage_events['active'] = false; $manage_events['text'] = ''.html_print_image('images/setup.png', true, ['title' => __('Manage events')]).''; $manage_events['godmode'] = true; $onheader = [ 'manage_events' => $manage_events, 'fullscreen' => $fullscreen, 'list' => $list, 'history' => $history_list, 'rss' => $rss, 'marquee' => $marquee, 'csv' => $csv, 'sound_event' => $sound_event, ]; } else { $onheader = [ 'fullscreen' => $fullscreen, 'list' => $list, 'history' => $history_list, 'rss' => $rss, 'marquee' => $marquee, 'csv' => $csv, 'sound_event' => $sound_event, ]; } // If the history event is not enabled, dont show the history tab. if (!isset($config['metaconsole_events_history']) || $config['metaconsole_events_history'] != 1) { unset($onheader['history']); } switch ($section) { case 'sound_event': $onheader['sound_event']['active'] = true; $section_string = __('Sound events'); break; case 'history': $onheader['history']['active'] = true; $section_string = __('History'); break; default: $onheader['list']['active'] = true; $section_string = __('List'); break; } if (! defined('METACONSOLE')) { unset($onheader['history']); ui_print_page_header( __('Events'), 'images/op_events.png', false, 'eventview', false, $onheader, true, 'eventsmodal' ); } else { unset($onheader['rss']); unset($onheader['marquee']); unset($onheader['csv']); unset($onheader['sound_event']); unset($onheader['fullscreen']); ui_meta_print_header(__('Events'), $section_string, $onheader); } ?> "; echo ''; // Controls. if (is_metaconsole() !== true) { if (isset($config['event_replication']) && $config['event_replication'] == 1 ) { if ($config['show_events_in_local'] == 0) { db_pandora_audit( 'ACL Violation', 'Trying to access event viewer. View disabled due event replication.' ); ui_print_info_message( [ 'message' => __( 'Event viewer is disabled due event replication. For more information, please contact with the administrator' ), 'no_close' => true, ] ); return; } else { $readonly = true; } } } /* * Load filter form. */ // Group. $user_groups_array = users_get_groups_for_select( $config['id_user'], $access, true, true, false ); $data = html_print_select( $user_groups_array, 'id_group_filter', $id_group_filter, '', '', 0, true, false, false, 'w130' ); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Event type. $types = get_event_types(); $types['not_normal'] = __('Not normal'); $data = html_print_select( $types, 'event_type', $event_type, '', __('All'), '', true ); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Criticity - severity. $severity_select .= html_print_select( get_priorities(), 'severity', $severity, '', __('All'), '-1', true, false, false ); $in = '
'; $in .= $severity_select.'
'; $inputs[] = $in; // Event status. $data = html_print_select( events_get_all_status(), 'status', $status, '', '', '', true ); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Max hours old. $data = html_print_input_text( 'event_view_hr', $event_view_hr, '', 5, 255, true ); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Duplicates group { events | agents }. $data = html_print_select( [ 0 => __('All events'), 1 => __('Group events'), 2 => __('Group agents'), ], 'group_rep', $group_rep, '', '', 0, true ); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Source. $data = html_print_input_text('source', $source, '', '', 255, true); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Extra ID. $data = html_print_input_text('id_extra', $id_extra, '', 11, 255, true); $in = '
'; $in .= $data.'
'; $inputs[] = $in; // Comment. $data = html_print_input_text( 'user_comment', $user_comment, '', '', 255, true ); $in = '
'; $in .= $data.'
'; $inputs[] = $in; /* * Advanced filter. */ $adv_inputs = []; // Free search. $data = html_print_input_text('search', $search, '', '', 255, true); $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Agent search. $params = []; $params['show_helptip'] = true; $params['input_name'] = 'text_agent'; $params['value'] = $text_agent; $params['return'] = true; if ($meta) { $params['javascript_page'] = 'enterprise/meta/include/ajax/events.ajax'; } $params['print_hidden_input_idagent'] = true; $params['hidden_input_idagent_name'] = 'id_agent'; $params['hidden_input_idagent_value'] = $id_agent; $params['size'] = ''; $data = ui_print_agent_autocomplete_input($params); $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Mixed. Metaconsole => server, Console => module. if (is_metaconsole()) { $title = __('Server'); $data = html_print_select_from_sql( 'SELECT id, server_name FROM tmetaconsole_setup', 'server_id', $server_id, 'script', __('All'), '0', true ); } else { $title = __('Module search'); $data = html_print_autocomplete_modules( 'module_search', $text_module, false, true, '', [], true, $id_agent_module, '' ); } $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // User ack. $user_users = users_get_user_users( $config['id_user'], $access, users_can_manage_group_all() ); $data = html_print_select( $user_users, 'id_user_ack', $id_user_ack, '', __('Any'), 0, true ); $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Only alert events. $data = html_print_select( [ '-1' => __('All'), '0' => __('Filter alert events'), '1' => __('Only alert events'), ], 'filter_only_alert', $filter_only_alert, '', '', '', true ); $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Gap. $adv_inputs[] = '
'; // Date from. $data = html_print_input_text( 'date_from', $date_from, '', false, 10, true, // Disabled. false, // Required. false, // Function. '', // Class. '', // OnChange. '', // Autocomplete. 'off' ); $in = '
'; $in .= '
'; $in .= $data.'
'; // Time from. $data = html_print_input_text( 'time_from', $time_from, '', false, 10, true, // Disabled. false, // Required. false, // Function. '', // Class. '', // OnChange. '', // Autocomplete. 'off' ); $in .= '
'; $in .= $data.'
'; $in .= '
'; $adv_inputs[] = $in; // Date to. $data = html_print_input_text( 'date_to', $date_to, '', false, 10, true, // Disabled. false, // Required. false, // Function. '', // Class. '', // OnChange. '', // Autocomplete. 'off' ); $in = '
'; $in .= '
'; $in .= $data.'
'; // Time to. $data = html_print_input_text( 'time_to', $time_to, '', false, 10, true, // Disabled. false, // Required. false, // Function. '', // Class. '', // OnChange. '', // Autocomplete. 'off' ); $in .= '
'; $in .= $data.'
'; $in .= '
'; $adv_inputs[] = $in; // Tags. if (is_metaconsole()) { $data = '
'.__('Events with following tags').''.html_print_table($tabletags_with, true).'
'; $data .= '
'.__('Events without following tags').''.html_print_table($tabletags_without, true).'
'; } else { $data = '
'.__('Events with following tags').''.html_print_table($tabletags_with, true).'
'; $data .= '
'.__('Events without following tags').''.html_print_table($tabletags_without, true).'
'; } $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Load view. $adv_filter = join('', $adv_inputs); $filter = join('', $inputs); $filter .= ui_toggle( $adv_filter, __('Advanced options'), '', '', true, true, 'white_box white_box_opened', 'no-border flex-row' ); try { $column_names = [ __('Event'), __('Event ID'), __('Agent name'), __('Timestamp'), __('Severity'), __('Options'), ]; $fields = [ 'evento', 'id_evento', // 'id_agente', // 'id_usuario', // 'id_grupo', // 'estado', 'agent_name', 'timestamp', // 'utimestamp', // 'event_type', // 'id_agentmodule', // 'id_alert_am', 'event_type', // 'user_comment', // 'tags', // 'source', // 'id_extra', // 'critical_instructions', // 'warning_instructions', // 'unknown_instructions', // 'owner_user', // 'ack_utimestamp', // 'custom_data', // 'data', // 'module_status', // 'similar_ids', // 'event_rep', // 'timestamp_rep', // 'timestamp_rep_min', // 'module_name', 'options', ]; ui_print_datatable( [ 'id' => 'events', 'class' => 'info_table events', 'style' => 'width: 100%;', 'ajax_url' => 'operation/events/events', 'ajax_data' => ['get_events' => 1], 'pagination_options' => [ [ $config['block_size'], 10, 25, 100, 200, 500, 1000, -1, ], [ $config['block_size'], 10, 25, 100, 200, 500, 1000, 'All', ], ], 'form' => [ 'class' => 'flex-row', 'html' => $filter, 'inputs' => [], ], 'order' => [ 'field' => 'timestamp', 'direction' => 'desc', ], 'column_names' => $column_names, 'columns' => $fields, 'ajax_postprocess' => ' function (item) { item.id_evento = "#"+item.id_evento; var color = "'.COL_UNKNOWN.'"; var text = "UNKNOWN"; switch (item.criticity) { case "'.EVENT_CRIT_CRITICAL.'": text = "CRITICAL"; color = "'.COL_CRITICAL.'"; break; case "'.EVENT_CRIT_MAINTENANCE.'": text = "MAINTENANCE"; color = "'.COL_MAINTENANCE.'"; break; case "'.EVENT_CRIT_INFORMATIONAL.'": text = "INFORMATIONAL"; color = "'.COL_INFORMATIONAL.'"; break; case "'.EVENT_CRIT_MAJOR.'": text = "MAJOR"; color = "'.COL_MAJOR.'"; break; case "'.EVENT_CRIT_MINOR.'": text = "MINOR"; color = "'.COL_MINOR.'"; break; case "'.EVENT_CRIT_NORMAL.'": text = "NORMAL"; color = "'.COL_NORMAL.'"; break; case "'.EVENT_CRIT_WARNING.'": text = "WARNING"; color = "'.COL_WARNING.'"; break; } output = \'
\'; output += \'
\'; evn = \'
\'; evn += \'
\'+item.evento+\'
\'; evn += output; evn += \'
\' item.evento = evn; // Event type. switch (item.event_type) { case "'.EVENTS_ALERT_FIRED.'": case "'.EVENTS_ALERT_RECOVERED.'": case "'.EVENTS_ALERT_CEASED.'": case "'.EVENTS_ALERT_MANUAL_VALIDATION.'": text = "'.__('ALERT').'"; color = "'.COL_ALERTFIRED.'"; break; case "'.EVENTS_RECON_HOST_DETECTED.'": case "'.EVENTS_SYSTEM.'": case "'.EVENTS_ERROR.'": case "'.EVENTS_NEW_AGENT.'": case "'.EVENTS_CONFIGURATION_CHANGE.'": text = "'.__('SYSTEM').'"; color = "'.COL_MAINTENANCE.'"; break; case "'.EVENTS_GOING_UP_WARNING.'": case "'.EVENTS_GOING_DOWN_WARNING.'": $tex = "'.__('WARNING').'"; color = "'.COL_WARNING.'"; break; case "'.EVENTS_GOING_DOWN_NORMAL.'": case "'.EVENTS_GOING_UP_NORMAL.'": text = "'.__('NORMAL').'"; color = "'.COL_NORMAL.'"; break; case "'.EVENTS_GOING_DOWN_CRITICAL.'": case "'.EVENTS_GOING_UP_CRITICAL.'": text = "'.__('CRITICAL').'"; color = "'.COL_CRITICAL.'"; break; case "'.EVENTS_UNKNOWN.'": case "'.EVENTS_GOING_UNKNOWN.'": default: text = "'.__('UNKNOWN').'"; color = "'.COL_UNKNOWN.'"; break; } item.event_type = \'
\' + text + "
"; if (item.id_agente > 0) { item.agent_name = \'\' + item.agent_name + \'\'; } item.options = \'button\'; }', ] ); } catch (Exception $e) { ui_print_error_message($e->getMessage()); } // Close viewer. enterprise_hook('close_meta_frame'); // Datepicker requirements. ui_require_css_file('datepicker'); ui_include_time_picker(); ui_require_jquery_file( 'ui.datepicker-'.get_user_language(), 'include/javascript/i18n/' ); // End. Load required JS. ?>