pandorafms/pandora_console/operation/agentes/snapshot_view.php

135 lines
5.2 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, array('id_agente'));
$row_state = db_get_row_filter('tagente_datos_string', array('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")) {
require ($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 ('/</', '&lt;', $last_data);
$last_data = preg_replace ('/>/', '&gt;', $last_data);
$last_data = preg_replace ('/\n/i','<br>',$last_data);
$last_data = preg_replace ('/\s/i','&nbsp;',$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>