<?php // Pandora - the Free monitoring system // ==================================== // Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com // Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L, info@artica.es // Copyright (c) 2006-2007 Jonathan Barajas, jonathan.barajas[AT]gmail[DOT]com // Javascript Active Console code. // Copyright (c) 2006 Jose Navarro <contacto@indiseg.net> // Additions to Pandora FMS 1.2 graph code and new XML reporting template management // 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; version 2 // of the License, or (at your option) any later version. // 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. // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // Global & session management include ("../include/config.php"); session_start(); include ("../include/functions.php"); include("../include/functions_db.php"); include("../include/languages/language_".$language_code.".php"); // Access control if (comprueba_login() != 0) { $REMOTE_ADDR = getenv ("REMOTE_ADDR"); audit_db("Unknown",$REMOTE_ADDR, "ACL Violation","Trying to access graph window without auth"); require ("general/noaccess.php"); exit; } // Parsing the refresh before sending any header if (isset($_GET['refresh']) and is_numeric($_GET['refresh']) and $_GET['refresh']>0) { header( 'refresh: ' . $_GET['refresh'] ); } echo '<html> <head><title>Pandora FMS Graph</title> <link rel="stylesheet" href="../include/styles/pandora_minimal.css" type="text/css">'; ; // Get input parameters if (isset($_GET["label"])) $label = entrada_limpia($_GET["label"]); if (!isset($_GET["period"]) OR (!isset($_GET["id"]))) { echo "<h3 class='error'>".$lang_label["graf_error"]."</h3>"; exit; } if (isset($_GET["draw_events"])) $draw_events = entrada_limpia($_GET["draw_events"]); else $draw_events = 0; if (isset($_GET["period"])) $period = entrada_limpia($_GET["period"]); else $period = 3600; // 1 hour (the most fast query possible) switch ($period) { case 3600: $period_label = $lang_label["hour"]; break; case 7200: $period_label = $lang_label["2_hours"]; break; case 21600: $period_label = $lang_label["6_hours"]; break; case 43200: $period_label = $lang_label["12_hours"]; break; case 86400: $period_label = $lang_label["last_day"]; break; case 172800: $period_label = $lang_label["two_days"]; break; case 432000: $period_label = $lang_label["five_days"]; break; case 604800: $period_label = $lang_label["last_week"]; break; case 1296000: $period_label = $lang_label["15_days"]; break; case 2592000: $period_label = $lang_label["last_month"]; break; case 5184000: $period_label = $lang_label["two_month"]; break; case 15552000: $period_label = $lang_label["six_months"]; break; default: $period_label = human_time_description_raw ($period); } if (isset($_GET["draw_alerts"])) $draw_alerts = entrada_limpia($_GET["draw_alerts"]); else $draw_alerts = 0; if (isset($_GET["avg_only"])) $avg_only = entrada_limpia($_GET["avg_only"]); else $avg_only = 0; if (isset($_GET["refresh"])) $refresh = entrada_limpia($_GET["refresh"]); else $refresh = 0; if (isset($_GET["period"])) $period = entrada_limpia($_GET["period"]); else $period = 86400; // 1 day default period if (isset($_GET["id"])) $id = entrada_limpia($_GET["id"]); else $id = 0; if (isset($_GET["width"])) $width = entrada_limpia($_GET["width"]); else $width = 525; if (isset($_GET["height"])) $height = entrada_limpia ($_GET["height"]); else $height = 220; if (isset($_GET["label"])) $label = entrada_limpia ($_GET["label"]); else $label = ""; if (isset($_GET["zoom"])){ $zoom = entrada_limpia ($_GET["zoom"]); if ($zoom > 1){ $height=$height*($zoom/2.1); $width=$width*($zoom/1.4); } } else $zoom = "1"; echo "<img src='fgraph.php?tipo=sparse&draw_alerts=$draw_alerts&draw_events=$draw_events&id=$id&zoom=$zoom&label=$label&height=$height&width=$width&period=$period&avg_only=$avg_only' border=0 alt=''>"; echo "<table width=450 cellspacing=1 cellpadding=1 class='databox' style='margin-left: 20px'>"; echo "<tr><td><b>"; echo $lang_label["max_value"]." </b>: ". format_for_graph(return_moduledata_max_value ($id, $period)); echo "</td><td><b>"; echo $lang_label["avg_value"]." </b>: ". format_for_graph(return_moduledata_avg_value ($id, $period)); echo "</td><td><b>"; echo $lang_label["min_value"]." </b>: ". format_for_graph(return_moduledata_min_value ($id, $period)); echo "</td></tr>"; echo "</table>"; ?> <script type='text/javascript' src='../include/javascript/x_core.js'></script> <script type='text/javascript' src='../include/javascript/x_event.js'></script> <script type='text/javascript' src='../include/javascript/x_slide.js'></script> <script type='text/javascript'><!-- var defOffset = 2; var defSlideTime = 200; var tnActive = 0; var visibleMargin = 3; var menuW = 325; var menuH = 220; window.onload = function() { var d; d = xGetElementById('divmenu'); d.termNumber = 1; xMoveTo(d, visibleMargin - menuW, 0); xShow(d); xAddEventListener(document, 'mousemove', docOnMousemove, false); } function docOnMousemove(evt) { var e = new xEvent(evt); var d = getTermEle(e.target); if (!tnActive) { // no def is active if (d) { // mouse is over a term, activate its def xSlideTo('divmenu', 0, xPageY(d), defSlideTime); tnActive = 1; } } else { // a def is active if (!d) { // mouse is not over a term, deactivate active def xSlideTo('divmenu', visibleMargin - menuW, xPageY(d), defSlideTime); tnActive = 0; } } } function getTermEle(ele) { //window.status = ele; while(ele && !ele.termNumber) { if (ele == document) return null; ele = xParent(ele); } return ele; } //--> </script> </head> <body> <div id='divmenu' class='menu'> <b>Pandora FMS Graph configuration menu</b><br>Please, make your changes and apply with <i>Reload</i> button <form method='get' action='stat_win.php'> <?php echo "<input type='hidden' name='id' value='$id'>"; echo "<input type='hidden' name='label' value='$label'>"; ?> <TABLE class='databox_frame' cellspacing=5> </td><td> <?php echo "<tr><td>"; echo "Refresh time (sec)"; echo "<td colspan=2>"; echo "<input type='text' size=5 name='refresh' value='" . $refresh . "'>"; echo " ".$lang_label["avg_only"]; if ($avg_only == 1) echo "<input type='checkbox' name='avg_only' value=1 CHECKED>"; else echo "<input type='checkbox' name='avg_only' value=1>"; echo "<tr><td>"; echo "Zoom factor (1x)"; echo "<td>"; echo "<select name=zoom>"; echo "<option value='$zoom'>"."x".$zoom; echo "<option value='1'>"."x1"; echo "<option value='2'>"."x2"; echo "<option value='3'>"."x3"; echo "<option value='4'>"."x4"; echo "</select>"; echo "<tr><td>"; echo "Range of time"; echo "<td>"; echo "<select name='period'>"; echo "<option value=$period>".$period_label; echo "<option value=3600>".$lang_label["hour"]; echo "<option value=7200>".$lang_label["2_hours"]; echo "<option value=21600>".$lang_label["6_hours"]; echo "<option value=43200>".$lang_label["12_hours"]; echo "<option value=86400>".$lang_label["last_day"]; echo "<option value=172800>".$lang_label["two_days"]; echo "<option value=432000>".$lang_label["five_days"]; echo "<option value=604800>".$lang_label["last_week"]; echo "<option value=1296000>".$lang_label["15_days"]; echo "<option value=2592000>".$lang_label["last_month"]; echo "<option value=5184000>".$lang_label["two_month"]; echo "<option value=15552000>".$lang_label["six_months"]; echo "</select>"; echo "<tr><td>"; echo "Show events "; echo "<td>"; if ($draw_events == 1) echo "<input type='checkbox' name='draw_events' CHECKED value=1>"; else echo "<input type='checkbox' name='draw_events' value=1>"; echo "<tr><td>"; echo "Show alert "; echo "<td>"; if ($draw_alerts == 1) echo "<input type='checkbox' name='draw_alerts' value=1 CHECKED>"; else echo "<input type='checkbox' name='draw_alerts' value=1>"; echo "<td>"; echo "<input type='submit' class='sub next' value='GO'>"; ?> </td></tr> </table> </form> </div> </body> </html>