133 lines
5.5 KiB
PHP
133 lines
5.5 KiB
PHP
<?php
|
|
|
|
// Pandora FMS - http://pandorafms.com
|
|
// ==================================================
|
|
// Copyright (c) 2005-2009 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.
|
|
// Don't start a session before this import.
|
|
// The session is configured and started inside the config process.
|
|
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';
|
|
enterprise_include_once('include/functions_agents.php');
|
|
|
|
check_login();
|
|
|
|
$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();
|
|
}
|
|
|
|
$id = get_parameter('id');
|
|
$id_node = get_parameter('id_node', 0);
|
|
|
|
// Get the data
|
|
if ($id_node > 0) {
|
|
$connection = metaconsole_get_connection_by_id($id_node);
|
|
if (metaconsole_load_external_db($connection) != NOERR) {
|
|
ui_print_error_message(__('Cannot connect with node to display the module data.'));
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$row_module = modules_get_agentmodule($id);
|
|
|
|
// Retrieve data
|
|
$utimestamp = get_parameter('timestamp', '');
|
|
if ($utimestamp == '') {
|
|
// Retrieve last data
|
|
$row_state = db_get_row('tagente_estado', 'id_agente_modulo', $id);
|
|
$last_timestamp = date('Y-m-d H:i:s', $row_state['utimestamp']);
|
|
} else {
|
|
// Retrieve target data
|
|
$state = db_get_row('tagente_estado', 'id_agente_modulo', $id, ['id_agente']);
|
|
$row_state = db_get_row_filter('tagente_datos_string', ['id_agente_modulo' => $id, 'utimestamp' => $utimestamp], false, 'AND', 1);
|
|
$row_state['id_agente'] = $state['id_agente'];
|
|
$last_timestamp = date('Y-m-d H:i:s', $row_state['utimestamp']);
|
|
}
|
|
|
|
// Build the info
|
|
$label = get_parameter('label', io_safe_output($row_module['module_name']));
|
|
$last_data = io_safe_output($row_state['datos']);
|
|
$refresh = (int) get_parameter('refr', $row_state['current_interval']);
|
|
|
|
// ACL check
|
|
$all_groups = agents_get_all_groups_agent($row_state['id_agente']);
|
|
if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AR')) {
|
|
include $config['homedir'].'/general/noaccess.php';
|
|
exit;
|
|
}
|
|
?>
|
|
<html>
|
|
<head>
|
|
<?php
|
|
// Parsing the refresh before sending any header
|
|
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><?php echo __('%s Snapshot data view for module (%s)', get_product_name(), $label); ?></title>
|
|
<script type='text/javascript' src='../../include/javascript/jquery-3.3.1.min.js'></script>
|
|
</head>
|
|
<body style='background:#000; color: #ccc;'>
|
|
<?php
|
|
echo "<h2 style='text-align:center;' id='title_snapshot_view'>";
|
|
echo __('Current data at %s', $last_timestamp);
|
|
echo '</h2>';
|
|
if (is_image_data($last_data)) {
|
|
echo '<center><img src="'.$last_data.'" alt="image" style="width:100%"/></center>';
|
|
} else {
|
|
$last_data = preg_replace('/</', '<', $last_data);
|
|
$last_data = preg_replace('/>/', '>', $last_data);
|
|
$last_data = preg_replace('/\n/i', '<br>', $last_data);
|
|
$last_data = preg_replace('/\s/i', ' ', $last_data);
|
|
echo "<div id='result_div' style='width: 100%; height: 100%; padding: 10px; font-size: 14px; line-height: 16px; font-family: mono,monospace; text-align: left'>";
|
|
echo $last_data;
|
|
echo '</div>';
|
|
?>
|
|
<script type="text/javascript">
|
|
function getScrollbarWidth() {
|
|
var div = $('<div style=""></div>');
|
|
$('body').append(div);
|
|
var w1 = $('div', div).innerWidth();
|
|
div.css('overflow-y', 'auto');
|
|
var w2 = $('div', div).innerWidth();
|
|
$(div).remove();
|
|
|
|
return (w1 - w2);
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
width = $("#result_div").css("width");
|
|
width = width.replace("px", "");
|
|
width = parseInt(width);
|
|
$("#result_div").css("width", (width - getScrollbarWidth()) + "px");
|
|
|
|
height = $("#result_div").css("height");
|
|
height = height.replace("px", "");
|
|
height = parseInt(height);
|
|
$("#result_div").css("height", (height - getScrollbarWidth() - $("#title_snapshot_view").height() - 16) + "px");
|
|
});
|
|
</script>
|
|
<?php
|
|
}
|
|
?>
|
|
</body>
|
|
</html>
|