'noaccess']; } include 'general/noaccess.php'; return; } $access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'ER')); $readonly = false; if (!is_metaconsole() && isset($config['event_replication']) && $config['event_replication'] == 1 && $config['show_events_in_local'] == 1 ) { $readonly = true; } // Load specific stylesheet. ui_require_css_file('events'); ui_require_css_file('tables'); if (is_metaconsole()) { ui_require_css_file('tables_meta', ENTERPRISE_DIR.'/include/styles/'); } // Load extra javascript. ui_require_javascript_file('pandora_events'); // Get requests. $default_filter = [ 'status' => EVENT_NO_VALIDATED, 'event_view_hr' => $config['event_view_hr'], 'group_rep' => 1, 'tag_with' => [], 'tag_without' => [], 'history' => false, ]; $fb64 = get_parameter('fb64', null); if (isset($fb64)) { $filter = json_decode(base64_decode($fb64), true); } else { $filter = get_parameter( 'filter', $default_filter ); } $id_group = get_parameter( 'filter[id_group]', $filter['id_group'] ); $event_type = get_parameter( 'filter[event_type]', $filter['event_type'] ); $severity = get_parameter( 'filter[severity]', $filter['severity'] ); $status = get_parameter( 'filter[status]', $filter['status'] ); $search = get_parameter( 'filter[search]', $filter['search'] ); $text_agent = get_parameter( 'filter[text_agent]', $filter['text_agent'] ); $id_agent = get_parameter( 'filter[id_agent]', $filter['id_agent'] ); $id_agent_module = get_parameter( 'filter[id_agent_module]', $filter['id_agent_module'] ); $pagination = get_parameter( 'filter[pagination]', $filter['pagination'] ); $event_view_hr = get_parameter( 'filter[event_view_hr]', $filter['event_view_hr'] ); $id_user_ack = get_parameter( 'filter[id_user_ack]', $filter['id_user_ack'] ); $group_rep = get_parameter( 'filter[group_rep]', $filter['group_rep'] ); $tag_with = get_parameter( 'filter[tag_with]', $filter['tag_with'] ); $tag_without = get_parameter( 'filter[tag_without]', $filter['tag_without'] ); $filter_only_alert = get_parameter( 'filter[filter_only_alert]', $filter['filter_only_alert'] ); $id_group_filter = get_parameter( 'filter[id_group_filter]', $filter['id_group_filter'] ); $date_from = get_parameter( 'filter[date_from]', $filter['date_from'] ); $date_to = get_parameter( 'filter[date_to]', $filter['date_to'] ); $source = get_parameter( 'filter[source]', $filter['source'] ); $id_extra = get_parameter( 'filter[id_extra]', $filter['id_extra'] ); $user_comment = get_parameter( 'filter[user_comment]', $filter['user_comment'] ); $history = get_parameter( 'history', $filter['history'] ); $section = get_parameter('section', false); // Ajax responses. if (is_ajax()) { $get_events = get_parameter('get_events', 0); // Datatables offset, limit. $start = get_parameter('start', 0); $length = get_parameter('length', $config['block_size']); if ($get_events) { try { ob_start(); $order = get_datatable_order(true); if (is_array($order) && $order['field'] == 'mini_severity') { $order['field'] = 'te.criticity'; } $fields = [ 'te.id_evento', 'te.id_agente', 'te.id_usuario', 'te.id_grupo', 'te.estado', 'te.timestamp', 'te.evento', 'te.utimestamp', 'te.event_type', 'te.id_alert_am', 'te.criticity', 'te.user_comment', 'te.tags', 'te.source', 'te.id_extra', 'te.critical_instructions', 'te.warning_instructions', 'te.unknown_instructions', 'te.owner_user', 'if(te.ack_utimestamp > 0, from_unixtime(te.ack_utimestamp),"") as ack_utimestamp', 'te.custom_data', 'te.data', 'te.module_status', 'ta.alias as agent_name', 'tg.nombre as group_name', ]; if (!is_metaconsole()) { $fields[] = 'am.nombre as module_name'; $fields[] = 'am.id_agente_modulo as id_agentmodule'; $fields[] = 'ta.server_name as server_name'; } else { $fields[] = 'ts.server_name as server_name'; $fields[] = 'te.id_agentmodule'; $fields[] = 'te.server_id'; } $events = events_get_all( // Fields. $fields, // Filter. $filter, // Offset. $start, // Limit. $length, // Order. $order['direction'], // Sort field. $order['field'], // History. $history ); $count = events_get_all( 'count', $filter ); if ($count !== false) { $count = $count['0']['nitems']; } if ($events) { $data = array_reduce( $events, function ($carry, $item) { $tmp = (object) $item; $tmp->meta = is_metaconsole(); if (is_metaconsole()) { if ($tmp->server_name !== null) { $tmp->data_server = metaconsole_get_servers($tmp->server_id); $tmp->server_url_hash = metaconsole_get_servers_url_hash($tmp->data_server); } } $tmp->evento = str_replace('"', '', io_safe_output($tmp->evento)); if (strlen($tmp->evento) >= 255) { $tmp->evento = ui_print_truncate_text($tmp->evento, 255, $tmp->evento, true, false); } if ($tmp->module_name) { $tmp->module_name = io_safe_output($tmp->module_name); } if ($tmp->comments) { $tmp->comments = ui_print_comments($tmp->comments); } $tmp->agent_name = io_safe_output($tmp->agent_name); $tmp->ack_utimestamp = ui_print_timestamp( $tmp->ack_utimestamp, true ); $tmp->timestamp = ui_print_timestamp( $tmp->timestamp, true ); $tmp->data = format_numeric($tmp->data, 1); $tmp->instructions = events_get_instructions($item); $tmp->b64 = base64_encode(json_encode($tmp)); $carry[] = $tmp; return $carry; } ); } // RecordsTotal && recordsfiltered resultados totales. echo json_encode( [ 'data' => $data, 'recordsTotal' => $count, 'recordsFiltered' => $count, ] ); $response = ob_get_clean(); } catch (Exception $e) { echo json_encode( ['error' => $e->getMessage()] ); } // If not valid it will throw an exception. json_decode($response); if (json_last_error() == JSON_ERROR_NONE) { // If valid dump. echo $response; } else { echo json_encode( ['error' => $response] ); } } // AJAX section ends. exit; } /* * Load user default form. */ $user_filter = db_get_row_sql( sprintf( 'SELECT f.id_filter, f.id_name FROM tevent_filter f INNER JOIN tusuario u ON u.default_event_filter=f.id_filter WHERE u.id_user = "%s" ', $config['id_user'] ) ); if ($user_filter !== false) { $filter = events_get_event_filter($user_filter['id_filter']); if ($filter !== false) { $id_group = $filter['id_group']; $event_type = $filter['event_type']; $severity = $filter['severity']; $status = $filter['status']; $search = $filter['search']; $text_agent = $filter['text_agent']; $id_agent = $filter['id_agent']; $id_agent_module = $filter['id_agent_module']; $pagination = $filter['pagination']; $event_view_hr = $filter['event_view_hr']; $id_user_ack = $filter['id_user_ack']; $group_rep = $filter['group_rep']; $tag_with = json_decode(io_safe_output($filter['tag_with'])); $tag_without = json_decode(io_safe_output($filter['tag_without'])); $tag_with_base64 = base64_encode(json_encode($tag_with)); $tag_without_base64 = base64_encode(json_encode($tag_without)); $filter_only_alert = $filter['filter_only_alert']; $id_group_filter = $filter['id_group_filter']; $date_from = $filter['date_from']; $date_to = $filter['date_to']; $source = $filter['source']; $id_extra = $filter['id_extra']; $user_comment = $filter['user_comment']; } } // 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 ($pure) { // Fullscreen. // Floating menu - Start. echo '
'; echo ''; echo '
'; // Floating menu - End. ui_require_jquery_file('countdown'); } else { if (is_metaconsole()) { // Load metaconsole frame. enterprise_hook('open_meta_frame'); } // 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 ($event_w || $event_m) { // 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; // Free search. $data = html_print_input_text('search', $search, '', '', 255, true); $in = '
'; $in .= $data.'
'; $inputs[] = $in; $buttons = []; $buttons[] = [ 'id' => 'load-filter', 'class' => 'float-left margin-right-2 sub config', 'text' => __('Load filter'), 'onclick' => '', ]; if ($event_w || $event_m) { $buttons[] = [ 'id' => 'save-filter', 'class' => 'float-left margin-right-2 sub wand', 'text' => __('Save filter'), 'onclick' => '', ]; } /* * Advanced filter. */ $adv_inputs = []; // Source. $data = html_print_input_text('source', $source, '', '', 255, true); $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Extra ID. $data = html_print_input_text('id_extra', $id_extra, '', 11, 255, true); $in = '
'; $in .= $data.'
'; $adv_inputs[] = $in; // Comment. $data = html_print_input_text( 'user_comment', $user_comment, '', '', 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, '', __('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( [ '0' => __('Filter alert events'), '1' => __('Only alert events'), ], 'filter_only_alert', $filter_only_alert, '', __('All'), -1, 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 { $checkbox_all = html_print_checkbox( 'all_validate_box', 1, false, true ); $default_fields = [ [ 'text' => 'evento', 'class' => 'mw120px', ], [ 'text' => 'mini_severity', 'class' => 'no-padding', ], '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', [ 'text' => 'options', 'class' => 'action_buttons w120px', ],[ 'text' => 'm', 'extra' => $checkbox_all, 'class' => 'mw120px', ], ]; $fields = explode(',', $config['event_fields']); // Always check something is shown. if (empty($fields)) { $fields = $default_fields; } if (in_array('mini_severity', $fields) > 0) { $fields[array_search('mini_severity', $fields)] = [ 'text' => 'mini_severity', 'class' => 'no-padding-imp', ]; } // Identifies column instructions to make it unsortable. if (in_array('instructions', $fields) > 0) { $fields[array_search('instructions', $fields)] = [ 'text' => 'instructions', 'class' => 'column-instructions', ]; } $evento_id = array_search('evento', $fields); if ($evento_id !== false) { $fields[$evento_id] = [ 'text' => 'evento', 'class' => 'mw250px', ]; } // Always add options column. $fields = array_merge( $fields, [ [ 'text' => 'options', 'class' => 'action_buttons mw120px', ],[ 'text' => 'm', 'extra' => $checkbox_all, 'class' => 'w20px no-text-imp', ], ] ); // Get column names. $column_names = events_get_column_names($fields, true); foreach ($column_names as $key => $column) { if (is_array($column) && $column['text'] == 'S') { $column_names[$key]['style'] = 'padding-left: 1em !important;'; } } // Open current filter quick reference. $active_filters_div = '
'; // Current filter. $active_filters_div .= '
'; $active_filters_div .= '
'.__('Current filter').'
'; $active_filters_div .= '
'; if ($user_filter !== false) { $active_filters_div .= io_safe_output($user_filter['id_name']); } else { $active_filters_div .= __('Not set.'); } $active_filters_div .= '
'; $active_filters_div .= '
'; // Event status. $active_filters_div .= '
'; $active_filters_div .= '
'.__('Event status').'
'; $active_filters_div .= '
'; switch ($status) { case EVENT_ALL: default: $active_filters_div .= __('Any status.'); break; case EVENT_NEW: $active_filters_div .= __('New events.'); break; case EVENT_VALIDATE: $active_filters_div .= __('Validated.'); break; case EVENT_PROCESS: $active_filters_div .= __('In proccess.'); break; case EVENT_NO_VALIDATED: $active_filters_div .= __('Not validated.'); break; } $active_filters_div .= '
'; $active_filters_div .= '
'; // Max. hours old. $active_filters_div .= '
'; $active_filters_div .= '
'.__('Max. hours old').'
'; $active_filters_div .= '
'; if ($event_view_hr == 0) { $active_filters_div .= __('Any time.'); } else if ($event_view_hr == 1) { $active_filters_div .= __('Last hour.'); } else if ($event_view_hr > 1) { $active_filters_div .= __('Last %d hours.', $event_view_hr); } $active_filters_div .= '
'; $active_filters_div .= '
'; // Duplicates. $active_filters_div .= '
'; $active_filters_div .= '
'.__('Duplicated').'
'; $active_filters_div .= '
'; if ($group_rep == 0) { $active_filters_div .= __('All events.'); } else if ($group_rep == 1) { $active_filters_div .= __('Group events'); } else if ($group_rep == 2) { $active_filters_div .= __('Group agents.'); } $active_filters_div .= '
'; $active_filters_div .= '
'; // Close. $active_filters_div .= '
'; $table_id = 'events'; $form_id = 'events_form'; // Print datatable. ui_print_datatable( [ 'id' => $table_id, 'class' => 'info_table events', 'style' => 'width: 100%;', 'ajax_url' => 'operation/events/events', 'ajax_data' => [ 'get_events' => 1, 'history' => (int) $history, ], 'form' => [ 'id' => $form_id, 'class' => 'flex-row', 'html' => $filter, 'inputs' => [], 'extra_buttons' => $buttons, ], 'extra_html' => $active_filters_div, 'pagination_options' => [ [ $config['block_size'], 10, 25, 100, 200, 500, 1000, -1, ], [ $config['block_size'], 10, 25, 100, 200, 500, 1000, 'All', ], ], 'order' => [ 'field' => 'timestamp', 'direction' => 'desc', ], 'column_names' => $column_names, 'columns' => $fields, 'no_sortable_columns' => [ -1, -2, 'column-instructions', ], 'ajax_postprocess' => 'process_datatables_item(item)', 'drawCallback' => 'process_datatables_callback(this, settings)', ] ); } catch (Exception $e) { ui_print_error_message($e->getMessage()); } // Event responses. $sql_event_resp = "SELECT id, name FROM tevent_response WHERE type LIKE 'command'"; $event_responses = db_get_all_rows_sql($sql_event_resp); if ($config['event_replication'] != 1) { if ($event_w && !$readonly) { $array_events_actions['in_progress_selected'] = __('In progress selected'); $array_events_actions['validate_selected'] = __('Validate selected'); } if ($event_m == 1 && !$readonly) { $array_events_actions['delete_selected'] = __('Delete selected'); } } foreach ($event_responses as $val) { $array_events_actions[$val['id']] = $val['name']; } echo '
'; echo '
'; echo ''; html_print_select($array_events_actions, 'response_id', '', '', '', 0, false, false, false); echo '  '; html_print_button(__('Execute event response'), 'submit_event_response', false, 'execute_event_response(true);', 'class="sub next"'); echo "'; echo '
'; echo ''; echo ''; echo '
'; // 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. html_print_input_hidden('meta', (int) is_metaconsole()); html_print_input_hidden('history', (int) $history); html_print_input_hidden('filterid', $is_filter); html_print_input_hidden( 'ajax_file', ui_get_full_url('ajax.php', false, false, false) ); // AJAX call options responses. echo "
"; echo "
"; echo "
"; // Load filter div for dialog. echo ''; echo ''; if ($_GET['refr'] || $do_refresh === true) { $autorefresh_draw = true; } ?>