Added separated window view to SNMP realtime graphs

This commit is contained in:
fermin831 2018-05-04 10:58:37 +02:00
parent 32822054d6
commit bd3f0712f1
5 changed files with 141 additions and 24 deletions

View File

@ -14,8 +14,10 @@
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
include_once('include/graphs/fgraph.php');
include_once('include/functions_snmp_browser.php');
global $config;
include_once($config['homedir'] . '/include/graphs/fgraph.php');
include_once($config['homedir'] . '/include/functions_snmp_browser.php');
function pandora_realtime_graphs () {
global $config;
@ -25,8 +27,11 @@ function pandora_realtime_graphs () {
$action = get_parameter('action', 'list');
$onheader = array();
ui_print_page_header (__("Realtime graphs"), "images/extensions.png", false, "", false, $onheader);
$hide_header = get_parameter('hide_header', 0);
if (!$hide_header) {
ui_print_page_header (__("Realtime graphs"), "images/extensions.png", false, "", false, $onheader);
}
$chart[time()]['graph'] = '0';
$interactive_graph = true;
@ -136,6 +141,10 @@ function pandora_realtime_graphs () {
snmp_browser_print_container (false, '100%', '60%', 'none');
}
// Print the relative path to AJAX calls:
html_print_input_hidden('rel_path', get_parameter('rel_path', ''));
// Print the form
echo '<form id="realgraph" method="post">';
html_print_table($table);
echo '</form>';
@ -144,9 +153,9 @@ function pandora_realtime_graphs () {
html_print_input_hidden ('custom_action', urlencode (base64_encode('&nbsp;<a href="javascript:setOID()"><img src="' . ui_get_full_url("images") . '/input_filter.disabled.png" title="' . __("Use this OID") . '" style="vertical-align: middle;"></img></a>')), false);
html_print_input_hidden ('incremental_base', '0');
echo '<script type="text/javascript" src="extensions/realtime_graphs/realtime_graphs.js"></script>';
echo '<script type="text/javascript" src="include/javascript/pandora_snmp_browser.js"></script>';
echo '<link rel="stylesheet" type="text/css" href="extensions/realtime_graphs/realtime_graphs.css"></style>';
echo '<script type="text/javascript" src="'.ui_get_full_url("extensions/realtime_graphs/realtime_graphs.js").'"></script>';
echo '<script type="text/javascript" src="'.ui_get_full_url("include/javascript/pandora_snmp_browser.js").'"></script>';
echo '<link rel="stylesheet" type="text/css" href="'.ui_get_full_url("extensions/realtime_graphs/realtime_graphs.css").'"></style>';
// Store servers timezone offset to be retrieved from js
set_js_value('timezone_offset', date('Z', time()));

View File

@ -58,9 +58,11 @@ function refresh_graph () {
postvars['snmp_address'] = $('#text-ip_target').val();
postvars['refresh'] = refresh;
var rel_path = $("#hidden-rel_path").val();
$.ajax({
url: "extensions/realtime_graphs/ajax.php",
url: rel_path + "extensions/realtime_graphs/ajax.php",
type: "POST",
dataType: "json",
data: postvars,

View File

@ -92,28 +92,27 @@ function extensions_is_extension ($page) {
*
* @param bool $enterprise
*/
function extensions_get_extensions ($enterprise = false) {
$dir = EXTENSIONS_DIR;
$master_dir = ENTERPRISE_DIR . '/' . EXTENSIONS_DIR;
function extensions_get_extensions ($enterprise = false, $rel_path = '') {
$dir = $rel_path . EXTENSIONS_DIR;
$master_dir = $rel_path . ENTERPRISE_DIR . '/' . EXTENSIONS_DIR;
$handle = false;
if ($enterprise) {
$dir = ENTERPRISE_DIR . '/' . EXTENSIONS_DIR;
$dir = $rel_path . ENTERPRISE_DIR . '/' . EXTENSIONS_DIR;
if (defined("METACONSOLE")) {
$dir = '../' . EXTENSIONS_DIR;
$master_dir = '../' . EXTENSIONS_DIR;
$dir = $rel_path . '../' . EXTENSIONS_DIR;
$master_dir = $rel_path . '../' . EXTENSIONS_DIR;
}
}
else {
if (defined("METACONSOLE")) {
$dir = '../../' . $dir;
$master_dir = '../' . EXTENSIONS_DIR;
$dir = $rel_path . '../../' . $dir;
$master_dir = $rel_path . '../' . EXTENSIONS_DIR;
}
}
if (file_exists ($dir))
$handle = @opendir ($dir);
if (empty ($handle))
return;
@ -148,7 +147,7 @@ function extensions_get_extensions ($enterprise = false) {
/* Load extensions in enterprise directory */
if (! $enterprise && file_exists ($master_dir))
return array_merge ($extensions, extensions_get_extensions (true));
return array_merge ($extensions, extensions_get_extensions (true, $rel_path));
return $extensions;
}

View File

@ -2711,11 +2711,13 @@ function get_module_realtime_link_graph ($module) {
'snmp_address' => $module['ip_target'],
'snmp_community' => $module['snmp_community'],
'snmp_oid' => $module['snmp_oid'],
'snmp_ver' => $module['tcp_send']
'snmp_ver' => $module['tcp_send'],
'hide_header' => 1,
'rel_path' => '../../'
);
// Incremental type
if ($module['id_tipo_modulo'] == 16) $params['incremental'] = 1;
$link = "index.php?sec=view&sec2=extensions/realtime_graphs&"; //FIXME: Not definitive URL
$link = "operation/agentes/realtime_win.php?";
foreach ($params as $p_key => $p_value) {
$link .= "$p_key=" . urlencode(io_safe_output($p_value)) . "&";
}
@ -2723,7 +2725,7 @@ function get_module_realtime_link_graph ($module) {
$win_handle = "realtime_" . dechex(crc32($module["id_agente_modulo"].$module["nombre"]));
$link_button = '<a href="javascript:winopeng(\''.$link.'\',\''.$win_handle.'\')">' .
$link_button = '<a href="javascript:winopeng_var(\''.$link.'\',\''.$win_handle.'\', 850, 480)">' .
html_print_image("images/chart_curve.png", true, array("border" => '0', "alt" => "")) . //FIXME: Not definitive image
'</a> &nbsp;&nbsp;';

View File

@ -0,0 +1,105 @@
<?php
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2018 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.
if (! isset($_SESSION['id_usuario'])) {
session_start();
//session_write_close();
}
// Global & session management
require_once ('../../include/config.php');
require_once ($config['homedir'] . '/include/auth/mysql.php');
require_once ($config['homedir'] . '/include/functions.php');
require_once ($config['homedir'] . '/include/functions_db.php');
require_once ($config['homedir'] . '/include/functions_reporting.php');
require_once ($config['homedir'] . '/include/functions_graph.php');
require_once ($config['homedir'] . '/include/functions_modules.php');
require_once ($config['homedir'] . '/include/functions_agents.php');
require_once ($config['homedir'] . '/include/functions_tags.php');
require_once ($config['homedir'] . '/include/functions_extensions.php');
check_login ();
// Metaconsole connection to the node
$server_id = (int) get_parameter("server");
if (is_metaconsole() && !empty($server_id)) {
$server = metaconsole_get_connection_by_id($server_id);
// Error connecting
if (metaconsole_connect($server) !== NOERR) {
echo "<html>";
echo "<body>";
ui_print_error_message(__('There was a problem connecting with the node'));
echo "</body>";
echo "</html>";
exit;
}
}
$user_language = get_user_language ($config['id_user']);
if (file_exists ('../../include/languages/'.$user_language.'.mo')) {
$l10n = new gettext_reader (new CachedFileReader ('../../include/languages/'.$user_language.'.mo'));
$l10n->load_tables();
}
echo '<link rel="stylesheet" href="../../include/styles/pandora.css" type="text/css"/>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
// Parsing the refresh before sending any header
$refresh = (int) get_parameter ("refresh", -1);
if ($refresh > 0) {
$query = ui_get_url_refresh (false);
echo '<meta http-equiv="refresh" content="'.$refresh.'; URL='.$query.'" />';
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pandora FMS Realtime Module Graph</title>
<link rel="stylesheet" href="../../include/styles/pandora_minimal.css" type="text/css" />
<link rel="stylesheet" href="../../include/styles/jquery-ui-1.10.0.custom.css" type="text/css" />
<script type='text/javascript' src='../../include/javascript/pandora.js'></script>
<script type='text/javascript' src='../../include/javascript/jquery-1.9.0.js'></script>
<script type='text/javascript' src='../../include/javascript/jquery.pandora.js'></script>
<script type='text/javascript' src='../../include/javascript/jquery.jquery-ui-1.10.0.custom.js'></script>
<?php
//Include the javascript for the js charts library
include_once($config["homedir"] . '/include/graphs/functions_flot.php');
include_javascript_dependencies_flot_graph();
?>
</head>
<body bgcolor="#ffffff" style='background:#ffffff;'>
<?php
$config['extensions'] = extensions_get_extensions (false, '../../');
if (!extensions_is_enabled_extension("realtime_graphs.php")) {
ui_print_error_message(__('Realtime extension is not enabled.'));
return;
} else {
include_once('../../extensions/realtime_graphs.php');
}
pandora_realtime_graphs();
?>
</body>
</html>
<?php
// Echo the script tags of the datepicker and the timepicker
// Modify the user language cause the ui.datepicker language files use - instead _
$custom_user_language = str_replace('_', '-', $user_language);
ui_require_jquery_file("ui.datepicker-" . $custom_user_language, "include/javascript/i18n/", true);
ui_include_time_picker(true);
?>