Merge branch '4474-Paginacion-SNMP-se-pierde-al-actualizar-Intracom' into 'develop'

Fixed pagination bug

See merge request artica/pandorafms!2637
This commit is contained in:
Daniel Rodriguez 2019-08-30 14:13:29 +02:00
commit 191161dbfc
1 changed files with 96 additions and 61 deletions

View File

@ -1,17 +1,31 @@
<?php <?php
/**
* SNMP Console.
*
* @category SNMP
* @package Pandora FMS
* @subpackage Community
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation for version 2.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* ============================================================================
*/
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Load global vars
global $config; global $config;
enterprise_include('operation/snmpconsole/snmp_view.php'); enterprise_include('operation/snmpconsole/snmp_view.php');
enterprise_include('include/functions_snmp.php'); enterprise_include('include/functions_snmp.php');
@ -31,7 +45,7 @@ if (!$agent_a && !$agent_w) {
exit; exit;
} }
// Read parameters // Read parameters.
$filter_severity = (int) get_parameter('filter_severity', -1); $filter_severity = (int) get_parameter('filter_severity', -1);
$filter_fired = (int) get_parameter('filter_fired', -1); $filter_fired = (int) get_parameter('filter_fired', -1);
$filter_status = (int) get_parameter('filter_status', 0); $filter_status = (int) get_parameter('filter_status', 0);
@ -61,7 +75,7 @@ foreach ($user_groups as $id => $name) {
$i++; $i++;
} }
$url = 'index.php?sec=estado&'.'sec2=operation/snmpconsole/snmp_view&'.'filter_severity='.$filter_severity.'&'.'filter_fired='.$filter_fired.'&'.'free_search_string='.$free_search_string.'&'.'pagination='.$pagination.'&'.'offset='.$offset.'&'.'trap_type='.$trap_type.'&'.'group_by='.$group_by.'&'.'date_from_trap='.$date_from_trap.'&'.'date_to_trap='.$date_to_trap.'&'.'time_from_trap='.$time_from_trap.'&'.'time_to_trap='.$time_to_trap; $url = 'index.php?sec=estado&sec2=operation/snmpconsole/snmp_view&filter_severity='.$filter_severity.'&filter_fired='.$filter_fired.'&free_search_string='.$free_search_string.'&pagination='.$pagination.'&offset='.$offset.'&trap_type='.$trap_type.'&group_by='.$group_by.'&date_from_trap='.$date_from_trap.'&date_to_trap='.$date_to_trap.'&time_from_trap='.$time_from_trap.'&time_to_trap='.$time_to_trap;
$statistics['text'] = '<a href="index.php?sec=estado&sec2=operation/snmpconsole/snmp_statistics&pure='.$config['pure'].'&refr='.$refr.'">'.html_print_image('images/op_reporting.png', true, ['title' => __('Statistics')]).'</a>'; $statistics['text'] = '<a href="index.php?sec=estado&sec2=operation/snmpconsole/snmp_statistics&pure='.$config['pure'].'&refr='.$refr.'">'.html_print_image('images/op_reporting.png', true, ['title' => __('Statistics')]).'</a>';
$list['text'] = '<a href="'.$url.'&pure='.$config['pure'].'&refresh='.$refr.'">'.html_print_image('images/op_snmp.png', true, ['title' => __('List')]).'</a>'; $list['text'] = '<a href="'.$url.'&pure='.$config['pure'].'&refresh='.$refr.'">'.html_print_image('images/op_snmp.png', true, ['title' => __('List')]).'</a>';
@ -70,7 +84,7 @@ $list['active'] = true;
if ($config['pure']) { if ($config['pure']) {
$fullscreen['text'] = '<a target="_top" href="'.$url.'&pure=0&refresh='.$refr.'">'.html_print_image('images/normal_screen.png', true, ['title' => __('Normal screen')]).'</a>'; $fullscreen['text'] = '<a target="_top" href="'.$url.'&pure=0&refresh='.$refr.'">'.html_print_image('images/normal_screen.png', true, ['title' => __('Normal screen')]).'</a>';
} else { } else {
// Fullscreen // Fullscreen.
$fullscreen['text'] = '<a target="_top" href="'.$url.'&pure=1&refresh='.$refr.'">'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen')]).'</a>'; $fullscreen['text'] = '<a target="_top" href="'.$url.'&pure=1&refresh='.$refr.'">'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen')]).'</a>';
} }
@ -131,7 +145,7 @@ if (isset($_GET['check'])) {
} }
} }
// Mass-process DELETE // Mass-process DELETE.
if (isset($_POST['deletebt'])) { if (isset($_POST['deletebt'])) {
$trap_ids = get_parameter_post('snmptrapid', []); $trap_ids = get_parameter_post('snmptrapid', []);
if (is_array($trap_ids) && check_acl($config['id_user'], 0, 'IW')) { if (is_array($trap_ids) && check_acl($config['id_user'], 0, 'IW')) {
@ -161,7 +175,7 @@ if (isset($_POST['deletebt'])) {
} }
} }
// Mass-process UPDATE // Mass-process UPDATE.
if (isset($_POST['updatebt'])) { if (isset($_POST['updatebt'])) {
$trap_ids = get_parameter_post('snmptrapid', []); $trap_ids = get_parameter_post('snmptrapid', []);
if (is_array($trap_ids) && check_acl($config['id_user'], 0, 'IW')) { if (is_array($trap_ids) && check_acl($config['id_user'], 0, 'IW')) {
@ -178,14 +192,14 @@ if (isset($_POST['updatebt'])) {
} }
} }
// All traps // All traps.
$all_traps = db_get_all_rows_sql('SELECT DISTINCT source FROM ttrap'); $all_traps = db_get_all_rows_sql('SELECT DISTINCT source FROM ttrap');
if (empty($all_traps)) { if (empty($all_traps)) {
$all_traps = []; $all_traps = [];
} }
// Set filters // Set filters.
$agents = []; $agents = [];
$oids = []; $oids = [];
$severities = get_priorities(); $severities = get_priorities();
@ -206,7 +220,7 @@ foreach ($all_traps as $trap) {
$prea = array_keys($user_groups); $prea = array_keys($user_groups);
$ids = join(',', $prea); $ids = join(',', $prea);
// Cuantos usuarios hay operadores con un grupo que exista y no lo tenga ningun usuario // Cuantos usuarios hay operadores con un grupo que exista y no lo tenga ningun usuario.
$user_in_group_wo_agents = db_get_value_sql('select count(DISTINCT(id_usuario)) from tusuario_perfil where id_usuario ="'.$config['id_user'].'" and id_perfil = 1 and id_grupo in (select id_grupo from tgrupo where id_grupo in ('.$ids.') and id_grupo not in (select id_grupo from tagente))'); $user_in_group_wo_agents = db_get_value_sql('select count(DISTINCT(id_usuario)) from tusuario_perfil where id_usuario ="'.$config['id_user'].'" and id_perfil = 1 and id_grupo in (select id_grupo from tgrupo where id_grupo in ('.$ids.') and id_grupo not in (select id_grupo from tagente))');
switch ($config['dbtype']) { switch ($config['dbtype']) {
@ -244,6 +258,10 @@ switch ($config['dbtype']) {
} }
} }
break; break;
default:
// Default.
break;
} }
if (empty($address_by_user_groups)) { if (empty($address_by_user_groups)) {
@ -293,6 +311,10 @@ switch ($config['dbtype']) {
) OR source='' OR source NOT IN (SELECT direccion FROM tagente WHERE direccion IS NOT NULL)) %s ) OR source='' OR source NOT IN (SELECT direccion FROM tagente WHERE direccion IS NOT NULL)) %s
ORDER BY timestamp DESC"; ORDER BY timestamp DESC";
break; break;
default:
// Default.
break;
} }
switch ($config['dbtype']) { switch ($config['dbtype']) {
@ -335,6 +357,10 @@ switch ($config['dbtype']) {
) OR source='' OR source NOT IN (SELECT direccion FROM tagente WHERE direccion IS NOT NULL)) ) OR source='' OR source NOT IN (SELECT direccion FROM tagente WHERE direccion IS NOT NULL))
%s"; %s";
break; break;
default:
// Default.
break;
} }
// $whereSubquery = 'WHERE 1=1'; // $whereSubquery = 'WHERE 1=1';
@ -372,6 +398,10 @@ if ($free_search_string != '') {
text LIKE \'%'.$free_search_string.'%\' OR text LIKE \'%'.$free_search_string.'%\' OR
description LIKE \'%'.$free_search_string.'%\')'; description LIKE \'%'.$free_search_string.'%\')';
break; break;
default:
// Default.
break;
} }
} }
@ -422,7 +452,7 @@ if ($trap_type == 5) {
$whereSubquery .= ' AND type = '.$trap_type; $whereSubquery .= ' AND type = '.$trap_type;
} }
// Disable this feature (time will decide if temporarily) in Oracle cause the group by is very confictive // Disable this feature (time will decide if temporarily) in Oracle cause the group by is very confictive.
if ($group_by && $config['dbtype'] != 'oracle') { if ($group_by && $config['dbtype'] != 'oracle') {
$where_without_group = $whereSubquery; $where_without_group = $whereSubquery;
$whereSubquery .= ' GROUP BY source,oid'; $whereSubquery .= ' GROUP BY source,oid';
@ -444,6 +474,10 @@ switch ($config['dbtype']) {
$sql = sprintf($sql, $whereSubquery); $sql = sprintf($sql, $whereSubquery);
$sql = oracle_recode_query($sql, $set); $sql = oracle_recode_query($sql, $set);
break; break;
default:
// Default.
break;
} }
$sql_all = sprintf($sql_all, $whereSubquery); $sql_all = sprintf($sql_all, $whereSubquery);
@ -458,7 +492,7 @@ $table->size = [];
$table->size[0] = '120px'; $table->size[0] = '120px';
$table->data = []; $table->data = [];
// Alert status select // Alert status select.
$table->data[1][0] = '<strong>'.__('Alert').'</strong>'; $table->data[1][0] = '<strong>'.__('Alert').'</strong>';
$table->data[1][1] = html_print_select( $table->data[1][1] = html_print_select(
$alerted, $alerted,
@ -470,7 +504,7 @@ $table->data[1][1] = html_print_select(
true true
); );
// Block size for pagination select // Block size for pagination select.
$table->data[2][0] = '<strong>'.__('Block size for pagination').'</strong>'; $table->data[2][0] = '<strong>'.__('Block size for pagination').'</strong>';
$paginations[25] = 25; $paginations[25] = 25;
$paginations[50] = 50; $paginations[50] = 50;
@ -487,7 +521,7 @@ $table->data[2][1] = html_print_select(
true true
); );
// Severity select // Severity select.
$table->data[1][2] = '<strong>'.__('Severity').'</strong>'; $table->data[1][2] = '<strong>'.__('Severity').'</strong>';
$table->data[1][3] = html_print_select( $table->data[1][3] = html_print_select(
$severities, $severities,
@ -499,7 +533,7 @@ $table->data[1][3] = html_print_select(
true true
); );
// Status // Status.
$table->data[3][0] = '<strong>'.__('Status').'</strong>'; $table->data[3][0] = '<strong>'.__('Status').'</strong>';
$status_array[-1] = __('All'); $status_array[-1] = __('All');
@ -515,7 +549,7 @@ $table->data[3][1] = html_print_select(
true true
); );
// Free search (search by all alphanumeric fields) // Free search (search by all alphanumeric fields).
$table->data[2][3] = '<strong>'.__('Free search').'</strong>'.ui_print_help_tip( $table->data[2][3] = '<strong>'.__('Free search').'</strong>'.ui_print_help_tip(
__( __(
'Search by any alphanumeric field in the trap. 'Search by any alphanumeric field in the trap.
@ -542,7 +576,7 @@ $table->data[5][1] = html_print_input_text('time_from_trap', $time_from_trap, fa
$table->data[5][2] = '<strong>'.__('To (Time)').'</strong>'; $table->data[5][2] = '<strong>'.__('To (Time)').'</strong>';
$table->data[5][3] = html_print_input_text('time_to_trap', $time_to_trap, false, 15, 10, true); $table->data[5][3] = html_print_input_text('time_to_trap', $time_to_trap, false, 15, 10, true);
// Type filter (ColdStart, WarmStart, LinkDown, LinkUp, authenticationFailure, Other) // Type filter (ColdStart, WarmStart, LinkDown, LinkUp, authenticationFailure, Other).
$table->data[6][1] = '<strong>'.__('Trap type').'</strong>'.ui_print_help_tip(__('Search by trap type'), true); $table->data[6][1] = '<strong>'.__('Trap type').'</strong>'.ui_print_help_tip(__('Search by trap type'), true);
$trap_types = [ $trap_types = [
-1 => __('None'), -1 => __('None'),
@ -565,14 +599,14 @@ $table->data[6][2] = html_print_select(
false false
); );
// Disable this feature (time will decide if temporarily) in Oracle cause the group by is very confictive // Disable this feature (time will decide if temporarily) in Oracle cause the group by is very confictive.
if ($config['dbtype'] != 'oracle') { if ($config['dbtype'] != 'oracle') {
$table->data[3][3] = '<strong>'.__('Group by Enterprise String/IP').'</strong>'; $table->data[3][3] = '<strong>'.__('Group by Enterprise String/IP').'</strong>';
$table->data[3][4] = __('Yes').'&nbsp;'.html_print_radio_button('group_by', 1, '', $group_by, true).'&nbsp;&nbsp;'; $table->data[3][4] = __('Yes').'&nbsp;'.html_print_radio_button('group_by', 1, '', $group_by, true).'&nbsp;&nbsp;';
$table->data[3][4] .= __('No').'&nbsp;'.html_print_radio_button('group_by', 0, '', $group_by, true); $table->data[3][4] .= __('No').'&nbsp;'.html_print_radio_button('group_by', 0, '', $group_by, true);
} }
$filter = '<form method="POST" action="index.php?'.'sec=snmpconsole&'.'sec2=operation/snmpconsole/snmp_view&'.'refresh='.((int) get_parameter('refresh', 0)).'&'.'pure='.$config['pure'].'">'; $filter = '<form method="POST" action="index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_view&refresh='.((int) get_parameter('refresh', 0)).'&pure='.$config['pure'].'">';
$filter .= html_print_table($table, true); $filter .= html_print_table($table, true);
$filter .= '<div style="width: '.$table->width.'; text-align: right;">'; $filter .= '<div style="width: '.$table->width.'; text-align: right;">';
$filter .= html_print_submit_button(__('Update'), 'search', false, 'class="sub upd"', true); $filter .= html_print_submit_button(__('Update'), 'search', false, 'class="sub upd"', true);
@ -595,9 +629,9 @@ $filter_resume['trap_type'] = $trap_types[$trap_type];
$traps = db_get_all_rows_sql($sql); $traps = db_get_all_rows_sql($sql);
$trapcount = (int) db_get_value_sql($sql_count); $trapcount = (int) db_get_value_sql($sql_count);
// No traps // No traps.
if (empty($traps)) { if (empty($traps)) {
// Header // Header.
ui_print_page_header( ui_print_page_header(
__('SNMP Console'), __('SNMP Console'),
'images/op_snmp.png', 'images/op_snmp.png',
@ -638,24 +672,24 @@ if (empty($traps)) {
echo '<div id="menu_tab">'; echo '<div id="menu_tab">';
echo '<ul class="mn">'; echo '<ul class="mn">';
// Normal view button // Normal view button.
echo '<li class="nomn">'; echo '<li class="nomn">';
$normal_url = 'index.php?'.'sec=snmpconsole&'.'sec2=operation/snmpconsole/snmp_view&'.'filter_severity='.$filter_severity.'&'.'filter_fired='.$filter_fired.'&'.'filter_status='.$filter_status.'&'.'refresh='.((int) get_parameter('refresh', 0)).'&'.'pure=0&'.'trap_type='.$trap_type.'&'.'group_by='.$group_by.'&'.'free_search_string='.$free_search_string.'&'.'date_from_trap='.$date_from_trap.'&'.'date_to_trap='.$date_to_trap.'&'.'time_from_trap='.$time_from_trap.'&'.'time_to_trap='.$time_to_trap; $normal_url = 'index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_view&filter_severity='.$filter_severity.'&filter_fired='.$filter_fired.'&filter_status='.$filter_status.'&refresh='.((int) get_parameter('refresh', 0)).'&pure=0&trap_type='.$trap_type.'&group_by='.$group_by.'&free_search_string='.$free_search_string.'&date_from_trap='.$date_from_trap.'&date_to_trap='.$date_to_trap.'&time_from_trap='.$time_from_trap.'&time_to_trap='.$time_to_trap;
$urlPagination = $normal_url.'&'.'pagination='.$pagination.'&'.'offset='.$offset; $urlPagination = $normal_url.'&pagination='.$pagination.'&offset='.$offset;
echo '<a href="'.$urlPagination.'">'; echo '<a href="'.$urlPagination.'">';
echo html_print_image('images/normal_screen.png', true, ['title' => __('Exit fullscreen')]); echo html_print_image('images/normal_screen.png', true, ['title' => __('Exit fullscreen')]);
echo '</a>'; echo '</a>';
echo '</li>'; echo '</li>';
// Auto refresh control // Auto refresh control.
echo '<li class="nomn">'; echo '<li class="nomn">';
echo '<div class="dashboard-refr" style="margin-top: 6px;">'; echo '<div class="dashboard-refr" style="margin-top: 6px;">';
echo '<div class="dashboard-countdown" style="display: inline;"></div>'; echo '<div class="dashboard-countdown" style="display: inline;"></div>';
$normal_url = 'index.php?'.'sec=snmpconsole&'.'sec2=operation/snmpconsole/snmp_view&'.'filter_severity='.$filter_severity.'&'.'filter_fired='.$filter_fired.'&'.'filter_status='.$filter_status.'&'.'refresh='.((int) get_parameter('refresh', 0)).'&'.'pure=1&'.'trap_type='.$trap_type.'&'.'group_by='.$group_by.'&'.'free_search_string='.$free_search_string.'&'.'date_from_trap='.$date_from_trap.'&'.'date_to_trap='.$date_to_trap.'&'.'time_from_trap='.$time_from_trap.'&'.'time_to_trap='.$time_to_trap; $normal_url = 'index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_view&filter_severity='.$filter_severity.'&filter_fired='.$filter_fired.'&filter_status='.$filter_status.'&refresh='.((int) get_parameter('refresh', 0)).'&pure=1&trap_type='.$trap_type.'&group_by='.$group_by.'&free_search_string='.$free_search_string.'&date_from_trap='.$date_from_trap.'&date_to_trap='.$date_to_trap.'&time_from_trap='.$time_from_trap.'&time_to_trap='.$time_to_trap;
$urlPagination = $normal_url.'&'.'pagination='.$pagination.'&'.'offset='.$offset; $urlPagination = $normal_url.'&pagination='.$pagination.'&offset='.$offset;
echo '<form id="refr-form" method="get" action="'.$urlPagination.'" style="display: inline;">'; echo '<form id="refr-form" method="get" action="'.$urlPagination.'" style="display: inline;">';
@ -669,7 +703,7 @@ if (empty($traps)) {
html_print_input_hidden('pure', 1); html_print_input_hidden('pure', 1);
html_print_input_hidden('refresh', ($refr > 0 ? $refr : $default_refr)); html_print_input_hidden('refresh', ($refr > 0 ? $refr : $default_refr));
// Dashboard name // Dashboard name.
echo '<li class="nomn">'; echo '<li class="nomn">';
echo '<div class="dashboard-title">'.__('SNMP Traps').'</div>'; echo '<div class="dashboard-title">'.__('SNMP Traps').'</div>';
echo '</li>'; echo '</li>';
@ -688,7 +722,7 @@ if (empty($traps)) {
ui_require_javascript_file('wz_jsgraphics'); ui_require_javascript_file('wz_jsgraphics');
ui_require_javascript_file('pandora_visual_console'); ui_require_javascript_file('pandora_visual_console');
} else { } else {
// Header // Header.
ui_print_page_header( ui_print_page_header(
__('SNMP Console'), __('SNMP Console'),
'images/op_snmp.png', 'images/op_snmp.png',
@ -710,18 +744,19 @@ unset($table);
print_snmp_tags_active_filters($filter_resume); print_snmp_tags_active_filters($filter_resume);
if (($config['dbtype'] == 'oracle') && ($traps !== false)) { if (($config['dbtype'] == 'oracle') && ($traps !== false)) {
for ($i = 0; $i < count($traps); $i++) { $traps_size = count($traps);
for ($i = 0; $i < $traps_size; $i++) {
unset($traps[$i]['rnum']); unset($traps[$i]['rnum']);
} }
} }
$url_snmp = 'index.php?'.'sec=snmpconsole&'.'sec2=operation/snmpconsole/snmp_view&'.'filter_severity='.$filter_severity.'&'.'filter_fired='.$filter_fired.'&'.'filter_status='.$filter_status.'&'.'refresh='.((int) get_parameter('refresh', 0)).'&'.'pure='.$config['pure'].'&'.'trap_type='.$trap_type.'&'.'group_by='.$group_by.'&'.'free_search_string='.$free_search_string.'&'.'date_from_trap='.$date_from_trap.'&'.'date_to_trap='.$date_to_trap.'&'.'time_from_trap='.$time_from_trap.'&'.'time_to_trap='.$time_to_trap; $url_snmp = 'index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_view&filter_severity='.$filter_severity.'&filter_fired='.$filter_fired.'&filter_status='.$filter_status.'&refresh='.((int) get_parameter('refresh', 0)).'&pure='.$config['pure'].'&trap_type='.$trap_type.'&group_by='.$group_by.'&free_search_string='.$free_search_string.'&date_from_trap='.$date_from_trap.'&date_to_trap='.$date_to_trap.'&time_from_trap='.$time_from_trap.'&time_to_trap='.$time_to_trap;
$urlPagination = $url_snmp.'&'.'pagination='.$pagination.'&'.'offset='.$offset; $urlPagination = $url_snmp.'&pagination='.$pagination.'&offset='.$offset;
ui_pagination($trapcount, $urlPagination, $offset, $pagination); ui_pagination($trapcount, $urlPagination, $offset, $pagination);
echo '<form name="eventtable" method="POST" action="'.$url_snmp.'">'; echo '<form name="eventtable" method="POST" action="'.$urlPagination.'">';
$table->cellpadding = 0; $table->cellpadding = 0;
$table->cellspacing = 0; $table->cellspacing = 0;
@ -795,7 +830,7 @@ $table->headstyle[9] = 'text-align: center';
$table->style[8] = 'background: #F3F3F3; color: #111 !important;'; $table->style[8] = 'background: #F3F3F3; color: #111 !important;';
// Skip offset records // Skip offset records.
$idx = 0; $idx = 0;
if ($traps !== false) { if ($traps !== false) {
foreach ($traps as $trap) { foreach ($traps as $trap) {
@ -809,7 +844,7 @@ if ($traps !== false) {
$severity = $trap['alerted'] == 1 ? $trap['priority'] : 1; $severity = $trap['alerted'] == 1 ? $trap['priority'] : 1;
} }
// Status // Status.
if ($trap['status'] == 0) { if ($trap['status'] == 0) {
$data[0] = html_print_image( $data[0] = html_print_image(
'images/pixel_red.png', 'images/pixel_red.png',
@ -832,7 +867,7 @@ if ($traps !== false) {
); );
} }
// Agent matching source address // Agent matching source address.
$table->cellclass[$idx][1] = get_priority_class($severity); $table->cellclass[$idx][1] = get_priority_class($severity);
$agent = agents_get_agent_with_ip($trap['source']); $agent = agents_get_agent_with_ip($trap['source']);
if ($agent === false) { if ($agent === false) {
@ -851,7 +886,7 @@ if ($traps !== false) {
'</strong></a>'; '</strong></a>';
} }
// OID // OID.
$table->cellclass[$idx][2] = get_priority_class($severity); $table->cellclass[$idx][2] = get_priority_class($severity);
if (! empty($trap['text'])) { if (! empty($trap['text'])) {
$enterprise_string = $trap['text']; $enterprise_string = $trap['text'];
@ -863,7 +898,7 @@ if ($traps !== false) {
$data[2] = '<a href="javascript: toggleVisibleExtendedInfo('.$trap['id_trap'].');">'.$enterprise_string.'</a>'; $data[2] = '<a href="javascript: toggleVisibleExtendedInfo('.$trap['id_trap'].');">'.$enterprise_string.'</a>';
// Count // Count.
if ($group_by) { if ($group_by) {
$sql = "SELECT * FROM ttrap WHERE 1=1 $sql = "SELECT * FROM ttrap WHERE 1=1
$where_without_group $where_without_group
@ -875,7 +910,7 @@ if ($traps !== false) {
$data[3] = '<strong>'.$count_group_traps.'</strong></a>'; $data[3] = '<strong>'.$count_group_traps.'</strong></a>';
} }
// Value // Value.
$table->cellclass[$idx][4] = get_priority_class($severity); $table->cellclass[$idx][4] = get_priority_class($severity);
if (empty($trap['value'])) { if (empty($trap['value'])) {
$data[4] = __('N/A'); $data[4] = __('N/A');
@ -883,7 +918,7 @@ if ($traps !== false) {
$data[4] = ui_print_truncate_text($trap['value'], GENERIC_SIZE_TEXT, false); $data[4] = ui_print_truncate_text($trap['value'], GENERIC_SIZE_TEXT, false);
} }
// User // User.
$table->cellclass[$idx][5] = get_priority_class($severity); $table->cellclass[$idx][5] = get_priority_class($severity);
if (!empty($trap['status'])) { if (!empty($trap['status'])) {
$data[5] = '<a href="index.php?sec=workspace&sec2=operation/users/user_edit&ver='.$trap['id_usuario'].'">'.substr($trap['id_usuario'], 0, 8).'</a>'; $data[5] = '<a href="index.php?sec=workspace&sec2=operation/users/user_edit&ver='.$trap['id_usuario'].'">'.substr($trap['id_usuario'], 0, 8).'</a>';
@ -894,35 +929,35 @@ if ($traps !== false) {
$data[5] = '--'; $data[5] = '--';
} }
// Timestamp // Timestamp.
$table->cellclass[$idx][6] = get_priority_class($severity); $table->cellclass[$idx][6] = get_priority_class($severity);
$data[6] = '<span title="'.$trap['timestamp'].'">'; $data[6] = '<span title="'.$trap['timestamp'].'">';
$data[6] .= ui_print_timestamp($trap['timestamp'], true); $data[6] .= ui_print_timestamp($trap['timestamp'], true);
$data[6] .= '</span>'; $data[6] .= '</span>';
// Use alert severity if fired // Use alert severity if fired.
if (!empty($trap['alerted'])) { if (!empty($trap['alerted'])) {
$data[7] = html_print_image('images/pixel_yellow.png', true, ['width' => '20', 'height' => '20', 'border' => '0', 'title' => __('Alert fired')]); $data[7] = html_print_image('images/pixel_yellow.png', true, ['width' => '20', 'height' => '20', 'border' => '0', 'title' => __('Alert fired')]);
} else { } else {
$data[7] = html_print_image('images/pixel_gray.png', true, ['width' => '20', 'height' => '20', 'border' => '0', 'title' => __('Alert not fired')]); $data[7] = html_print_image('images/pixel_gray.png', true, ['width' => '20', 'height' => '20', 'border' => '0', 'title' => __('Alert not fired')]);
} }
// Actions // Actions.
$data[8] = ''; $data[8] = '';
if (empty($trap['status']) && check_acl($config['id_user'], 0, 'IW')) { if (empty($trap['status']) && check_acl($config['id_user'], 0, 'IW')) {
$data[8] .= '<a href="'.$url_snmp.'&check='.$trap['id_trap'].'">'.html_print_image('images/ok.png', true, ['border' => '0', 'title' => __('Validate')]).'</a> '; $data[8] .= '<a href="'.$urlPagination.'&check='.$trap['id_trap'].'">'.html_print_image('images/ok.png', true, ['border' => '0', 'title' => __('Validate')]).'</a> ';
} }
if ($trap['source'] == '') { if ($trap['source'] == '') {
$is_admin = db_get_value('is_admin', 'tusuario', 'id_user', $config['id_user']); $is_admin = db_get_value('is_admin', 'tusuario', 'id_user', $config['id_user']);
if ($is_admin) { if ($is_admin) {
$data[8] .= '<a href="'.$url_snmp.'&delete='.$trap['id_trap'].'&offset='.$offset.'" onClick="javascript:return confirm(\''.__('Are you sure?').'\')">'.html_print_image('images/cross.png', true, ['border' => '0', 'title' => __('Delete')]).'</a> '; $data[8] .= '<a href="'.$urlPagination.'&delete='.$trap['id_trap'].'&offset='.$offset.'" onClick="javascript:return confirm(\''.__('Are you sure?').'\')">'.html_print_image('images/cross.png', true, ['border' => '0', 'title' => __('Delete')]).'</a> ';
} }
} else { } else {
$agent_trap_group = db_get_value('id_grupo', 'tagente', 'nombre', $trap['source']); $agent_trap_group = db_get_value('id_grupo', 'tagente', 'nombre', $trap['source']);
if ((check_acl($config['id_user'], $agent_trap_group, 'AW'))) { if ((check_acl($config['id_user'], $agent_trap_group, 'AW'))) {
$data[8] .= '<a href="'.$url_snmp.'&delete='.$trap['id_trap'].'&offset='.$offset.'" onClick="javascript:return confirm(\''.__('Are you sure?').'\')">'.html_print_image('images/cross.png', true, ['border' => '0', 'title' => __('Delete')]).'</a> '; $data[8] .= '<a href="'.$urlPagination.'&delete='.$trap['id_trap'].'&offset='.$offset.'" onClick="javascript:return confirm(\''.__('Are you sure?').'\')">'.html_print_image('images/cross.png', true, ['border' => '0', 'title' => __('Delete')]).'</a> ';
} }
} }
@ -934,18 +969,18 @@ if ($traps !== false) {
array_push($table->data, $data); array_push($table->data, $data);
// Hiden file for description // Hiden file for description.
$string = '<table style="border:solid 1px #D3D3D3;" width="90%" class="toggle"> $string = '<table style="border:solid 1px #D3D3D3;" width="90%" class="toggle">
<tr> <tr>
<td align="left" valign="top" width="15%">'.'<b>'.__('Variable bindings:').'</b></td> <td align="left" valign="top" width="15%">'.'<b>'.__('Variable bindings:').'</b></td>
<td align="left" >'; <td align="left" >';
if ($group_by) { if ($group_by) {
$new_url = 'index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_view&'.'filter_severity='.$filter_severity.'&'.'filter_fired='.$filter_fired.'&'.'filter_status='.$filter_status.'&'.'refresh='.((int) get_parameter('refresh', 0)).'&'.'pure='.$config['pure'].'&'.'group_by=0&'.'free_search_string='.$free_search_string.'&'.'date_from_trap='.$date_from_trap.'&'.'date_to_trap='.$date_to_trap.'&'.'time_from_trap='.$time_from_trap.'&'.'time_to_trap='.$time_to_trap; $new_url = 'index.php?sec=snmpconsole&sec2=operation/snmpconsole/snmp_view&filter_severity='.$filter_severity.'&filter_fired='.$filter_fired.'&filter_status='.$filter_status.'&refresh='.((int) get_parameter('refresh', 0)).'&pure='.$config['pure'].'&group_by=0&free_search_string='.$free_search_string.'&date_from_trap='.$date_from_trap.'&date_to_trap='.$date_to_trap.'&time_from_trap='.$time_from_trap.'&time_to_trap='.$time_to_trap;
$string .= '<a href='.$new_url.'>'.__('See more details').'</a>'; $string .= '<a href='.$new_url.'>'.__('See more details').'</a>';
} else { } else {
// Print binding vars separately // Print binding vars separately.
$binding_vars = explode("\t", $trap['oid_custom']); $binding_vars = explode("\t", $trap['oid_custom']);
foreach ($binding_vars as $var) { foreach ($binding_vars as $var) {
$string .= $var.'<br/>'; $string .= $var.'<br/>';
@ -1007,7 +1042,7 @@ if ($traps !== false) {
break; break;
} }
$string .= '<tr><td align="left" valign="top">'.'<b>'.__('Trap type:').'</b>'.'</td>'.'<td align="left">'.$desc_trap_type.'</td></tr>'; $string .= '<tr><td align="left" valign="top"><b>'.__('Trap type:').'</b></td><td align="left">'.$desc_trap_type.'</td></tr>';
} }
if ($group_by) { if ($group_by) {
@ -1060,7 +1095,7 @@ if ($traps !== false) {
} }
} }
// No matching traps // No matching traps.
if ($idx == 0) { if ($idx == 0) {
echo '<div class="nf">'.__('No matching traps found').'</div>'; echo '<div class="nf">'.__('No matching traps found').'</div>';
} else { } else {