diff --git a/pandora_console/operation/snmpconsole/snmp_statistics.php b/pandora_console/operation/snmpconsole/snmp_statistics.php
new file mode 100644
index 0000000000..d5d6cc8500
--- /dev/null
+++ b/pandora_console/operation/snmpconsole/snmp_statistics.php
@@ -0,0 +1,209 @@
+' .
+ html_print_image("images/normal_screen.png", true, array("title" => __('Normal screen'))) . '';
+}
+else {
+ $fullscreen['text'] = '' .
+ html_print_image("images/full_screen.png", true, array("title" => __('Full screen'))) . '';
+}
+
+// List
+$list = array();
+$list['text'] = '' .
+ html_print_image("images/op_snmp.png", true, array ("title" => __('List'))) .'';
+
+// Statistics (This file)
+$statistics = array();
+$statistics['active'] = true;
+$statistics['text'] = '' .
+ html_print_image("images/op_reporting.png", true, array ("title" => __('Statistics'))) .'';
+
+// Header
+ui_print_page_header(__("SNMP Console"), "images/op_snmp.png", false,
+ "", false, array($fullscreen, $list, $statistics));
+
+// Retrieving the data
+
+$user_groups = users_get_groups($config['id_user'], "AR", false);
+$user_groups_str = '0';
+if (!empty($user_groups)) {
+ $user_groups_str = implode(",", array_keys($user_groups));
+}
+
+$last_month_timestamp = date("Y-m-d H:i:s", time() - SECONDS_1MONTH);
+
+$sql_traps_generated = "SELECT %s, COUNT(id_trap) AS num
+ FROM ttrap
+ WHERE timestamp >= '%s'
+ AND (source = ''
+ OR source NOT IN (SELECT direccion FROM tagente)
+ OR source IN (SELECT direccion
+ FROM tagente
+ WHERE id_grupo IN (%s)))
+ GROUP BY %s
+ ORDER BY num DESC, timestamp DESC
+ LIMIT 25";
+
+$sql_traps_generated_by_source = sprintf($sql_traps_generated, "source", $last_month_timestamp, $user_groups_str, "source");
+$sql_traps_generated_by_oid = sprintf($sql_traps_generated, "oid", $last_month_timestamp, $user_groups_str, "oid");
+
+$traps_generated_by_source = db_get_all_rows_sql($sql_traps_generated_by_source);
+$traps_generated_by_oid = db_get_all_rows_sql($sql_traps_generated_by_oid);
+
+// No traps
+if (empty($traps_generated_by_source) || empty($traps_generated_by_oid)) {
+ echo '
'.__('There are no SNMP traps in database').'
';
+ return;
+}
+
+$water_mark = array('file' => $config['homedir'] . "/images/logo_vertical_water.png",
+ 'url' => ui_get_full_url("/images/logo_vertical_water.png"));
+
+// By SOURCE
+$table_source = new StdClass();
+$table_source->width = '100%';
+$table_source->head[] = __("Traps received by source") . " - " . sprintf(__('Top %d'), 25);
+$table_source->head_colspan[] = 2;
+$table_source->headstyle[] = "background-color: #82b92e";
+$table_source->size = array();
+$table_source->size['table'] = '50%';
+$table_source->size['graph'] = '50%';
+$table_source->data = array();
+
+$table_source_row = array();
+
+$table_source_data = new StdClass();
+$table_source_data->width = '100%';
+$table_source_data->head = array();
+$table_source_data->head['source'] = __('Source IP');
+$table_source_data->head['num'] = __('Number');
+$table_source_data->data = array();
+
+$table_source_graph_data = array();
+
+foreach ($traps_generated_by_source as $trap) {
+ $row = array();
+
+ $agent = agents_get_agent_with_ip($trap['source']);
+ if ($agent === false) {
+ $row['source'] = ''.$trap["source"].'';
+ }
+ else {
+ $agent_id = $agent["id_agente"];
+ $agent_name = ui_print_truncate_text($agent["nombre"], "agent_medium", true, true, true, '[…]', '');
+ $row['source'] = "";
+ $row['source'] .= "$agent_name";
+ }
+ $row['num'] = (int) $trap['num'];
+
+ $table_source_data->data[] = $row;
+
+ $table_source_graph_data[$trap["source"]] = (int) $trap["num"];
+}
+
+$table_source_row['table'] = html_print_table($table_source_data, true);
+unset($table_source_data);
+
+if (empty($table_source_graph_data))
+ $table_source_graph = graph_nodata_image();
+else
+ $table_source_graph = pie3d_graph($config['flash_charts'], $table_source_graph_data, 400, 550, __("Other"),
+ '', $water_mark, $config['fontpath'], $config['font_size'], 1);
+
+$table_source_row['graph'] = $table_source_graph;
+
+$table_source->data[] = $table_source_row;
+
+html_print_table($table_source);
+unset($table_source);
+
+// By OID
+$table_oid = new StdClass();
+$table_oid->width = '100%';
+$table_oid->head[] = __("Traps received by OID") . " - " . sprintf(__('Top %d'), 25);
+$table_oid->head_colspan[] = 2;
+$table_oid->headstyle[] = "background-color: #82b92e";
+$table_oid->size = array();
+$table_oid->size['table'] = '50%';
+$table_oid->size['graph'] = '50%';
+$table_oid->data = array();
+
+$table_oid_row = array();
+
+$table_oid_data = new StdClass();
+$table_oid_data->width = '100%';
+$table_oid_data->head = array();
+$table_oid_data->head['oid'] = __('Trap OID');
+$table_oid_data->head['num'] = __('Number');
+$table_oid_data->data = array();
+
+$table_oid_graph_data = array();
+
+foreach ($traps_generated_by_oid as $trap) {
+ $table_oid_data->data[] = array(
+ 'oid' => $trap['oid'],
+ 'num' => (int) $trap['num']
+ );
+
+ $table_oid_graph_data[$trap["oid"]] = (int) $trap["num"];
+}
+
+$table_oid_row['table'] = html_print_table($table_oid_data, true);
+unset($table_oid_data);
+
+if (empty($table_oid_graph_data))
+ $table_oid_graph = graph_nodata_image();
+else
+ $table_oid_graph = pie3d_graph($config['flash_charts'], $table_oid_graph_data, 400, 550, __("Other"),
+ '', $water_mark, $config['fontpath'], $config['font_size'], 1);
+
+$table_oid_row['graph'] = $table_oid_graph;
+
+$table_oid->data[] = $table_oid_row;
+
+html_print_table($table_oid);
+unset($table_oid);
+
+?>
\ No newline at end of file
diff --git a/pandora_console/operation/snmpconsole/snmp_view.php b/pandora_console/operation/snmpconsole/snmp_view.php
index 8e16bd4993..c2372746ce 100644
--- a/pandora_console/operation/snmpconsole/snmp_view.php
+++ b/pandora_console/operation/snmpconsole/snmp_view.php
@@ -40,7 +40,6 @@ $offset = (int) get_parameter ('offset',0);
$trap_type = (int) get_parameter ('trap_type', -1);
$group_by = (int)get_parameter('group_by', 0);
$refr = (int)get_parameter("refr", 0);
-$tab = (string) get_parameter("tab");
$user_groups = users_get_groups ($config['id_user'],"AR", false);
$str_user_groups = '';
@@ -65,22 +64,11 @@ $url = "index.php?sec=estado&" .
"trap_type=" . $trap_type . "&" .
"group_by=" .$group_by;
-switch ($tab) {
- case 'statistics':
- $statistics['active'] = true;
- break;
-
- default:
- $list['active'] = true;
- break;
-}
-$statistics['text'] = '' .
+$statistics['text'] = '' .
html_print_image("images/op_reporting.png", true, array ("title" => __('Statistics'))) .'';
$list['text'] = '' .
html_print_image("images/op_snmp.png", true, array ("title" => __('List'))) .'';
-
-if ($tab)
- $url .= "&tab=$tab";
+$list['active'] = true;
if ($config["pure"]) {
$fullscreen['text'] = '' . html_print_image("images/normal_screen.png", true, array("title" => __('Normal screen'))) . '';
@@ -354,441 +342,372 @@ ui_toggle($filter, __('Toggle filter(s)'));
unset ($table);
-if ($tab == '') {
-
- $traps = db_get_all_rows_sql($sql);
- $trapcount = (int) db_get_value_sql($sql_count);
-
- // No traps
- if (empty ($traps)) {
- echo ''.__('There are no SNMP traps in database').'
';
- return;
- }
-
- if (($config['dbtype'] == 'oracle') && ($traps !== false)) {
- for ($i=0; $i < count($traps); $i++) {
- 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 . "&" .
- "refr=" . ((int)get_parameter('refr', 0)) . "&" .
- "pure=" . $config["pure"] . "&" .
- "group_by=" . $group_by . "&" .
- "free_search_string=" . $free_search_string;
-
- $urlPagination = $url_snmp . "&pagination=" . $pagination . "&offset=" . $offset;
-
- ui_pagination ($trapcount, $urlPagination, $offset, $pagination);
-
- echo '";
-
-
- echo '';
- echo '
' . __('Status') . '
';
- echo html_print_image("images/pixel_green.png", true, array("width" => "20", "height" => "20")) . ' - ' . __('Validated');
- echo '
';
- echo html_print_image("images/pixel_red.png", true, array("width" => "20", "height" => "20")) . ' - ' . __('Not validated');
- echo '';
- echo '';
- echo '
' . __('Alert') . '
';
- echo html_print_image("images/pixel_yellow.png", true, array("width" => "20", "height" => "20")) . ' - ' .__('Fired');
- echo '
';
- echo html_print_image("images/pixel_gray.png", true, array("width" => "20", "height" => "20")) . ' - ' . __('Not fired');
- echo '';
- echo '';
- echo '
' . __('Action') . '
';
- echo html_print_image("images/ok.png", true) . ' - ' .__('Validate');
- echo '
';
- echo html_print_image("images/cross.png", true) . ' - ' . __('Delete');
- echo '';
- echo '';
- echo '
'.__('Legend').'
';
- foreach (get_priorities () as $num => $name) {
- echo ''.$name.'';
- echo '
';
- }
- echo '';
- echo '
';
+$traps = db_get_all_rows_sql($sql);
+$trapcount = (int) db_get_value_sql($sql_count);
+// No traps
+if (empty ($traps)) {
+ echo ''.__('There are no SNMP traps in database').'
';
+ return;
}
-else {
- $traps = db_get_all_rows_sql($sql_all);
- $trapcount = (int) db_get_value_sql($sql_count);
-
- // No traps
- if (empty ($traps)) {
- echo ''.__('There are no SNMP traps in database').'
';
- return;
+if (($config['dbtype'] == 'oracle') && ($traps !== false)) {
+ for ($i=0; $i < count($traps); $i++) {
+ unset($traps[$i]['rnum']);
}
+}
- if (($config['dbtype'] == 'oracle') && ($traps !== false)) {
- for ($i=0; $i < count($traps); $i++) {
- 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 . "&" .
+ "refr=" . ((int)get_parameter('refr', 0)) . "&" .
+ "pure=" . $config["pure"] . "&" .
+ "group_by=" . $group_by . "&" .
+ "free_search_string=" . $free_search_string;
- include_once($config['homedir'] . '/include/functions_graph.php');
+$urlPagination = $url_snmp . "&pagination=" . $pagination . "&offset=" . $offset;
+
+ui_pagination ($trapcount, $urlPagination, $offset, $pagination);
+
+echo '";
+
+
+echo '';
+echo '
' . __('Status') . '
';
+echo html_print_image("images/pixel_green.png", true, array("width" => "20", "height" => "20")) . ' - ' . __('Validated');
+echo '
';
+echo html_print_image("images/pixel_red.png", true, array("width" => "20", "height" => "20")) . ' - ' . __('Not validated');
+echo '';
+echo '';
+echo '
' . __('Alert') . '
';
+echo html_print_image("images/pixel_yellow.png", true, array("width" => "20", "height" => "20")) . ' - ' .__('Fired');
+echo '
';
+echo html_print_image("images/pixel_gray.png", true, array("width" => "20", "height" => "20")) . ' - ' . __('Not fired');
+echo '';
+echo '';
+echo '
' . __('Action') . '
';
+echo html_print_image("images/ok.png", true) . ' - ' .__('Validate');
+echo '
';
+echo html_print_image("images/cross.png", true) . ' - ' . __('Delete');
+echo '';
+echo '';
+echo '
'.__('Legend').'
';
+foreach (get_priorities () as $num => $name) {
+ echo ''.$name.'';
+ echo '
';
+}
+echo '';
+echo '
';
+
+
?>