2009-09-07 11:07:59 +00:00
< ? php
2011-05-12 23:17:44 +00:00
2012-05-09 10:01:42 +00:00
/**
* Observium
*
* This file is part of Observium .
*
* @ package observium
* @ subpackage webinterface
* @ author Adam Armstrong < adama @ memetic . org >
* @ copyright ( C ) 2006 - 2012 Adam Armstrong
*
*/
2015-04-17 16:53:31 +00:00
if ( strstr ( $_SERVER [ 'SERVER_SOFTWARE' ], " nginx " ) ) {
$_SERVER [ 'PATH_INFO' ] = str_replace ( $_SERVER [ 'PATH_TRANSLATED' ] . $_SERVER [ 'PHP_SELF' ], " " , $_SERVER [ 'ORIG_SCRIPT_FILENAME' ]);
2015-07-13 20:10:26 +02:00
}
else {
2015-04-17 16:53:31 +00:00
$_SERVER [ 'PATH_INFO' ] = ! empty ( $_SERVER [ 'PATH_INFO' ]) ? $_SERVER [ 'PATH_INFO' ] : ( ! empty ( $_SERVER [ 'ORIG_PATH_INFO' ]) ? $_SERVER [ 'ORIG_PATH_INFO' ] : '' );
}
2015-02-18 23:51:49 +00:00
function logErrors ( $errno , $errstr , $errfile , $errline ) {
global $php_debug ;
$php_debug [] = array ( 'errno' => $errno , 'errstr' => $errstr , 'errfile' => $errfile , 'errline' => $errline );
}
function catchFatal () {
$last_error = error_get_last ();
if ( $last_error [ 'type' ] == 1 ) {
2015-02-18 23:53:51 +00:00
$log_error = array ( $last_error [ 'type' ], $last_error [ 'message' ], $last_error [ 'file' ], $last_error [ 'line' ]);
print_r ( $log_error );
2015-02-18 23:51:49 +00:00
}
}
2015-10-02 00:49:18 +00:00
if ( strpos ( $_SERVER [ 'PATH_INFO' ], " debug " )) {
2015-07-13 20:10:26 +02:00
$debug = " 1 " ;
ini_set ( 'display_errors' , 0 );
ini_set ( 'display_startup_errors' , 1 );
ini_set ( 'log_errors' , 1 );
ini_set ( 'error_reporting' , E_ALL );
set_error_handler ( 'logErrors' );
register_shutdown_function ( 'catchFatal' );
}
else {
$debug = FALSE ;
ini_set ( 'display_errors' , 0 );
ini_set ( 'display_startup_errors' , 0 );
ini_set ( 'log_errors' , 0 );
ini_set ( 'error_reporting' , 0 );
2015-02-18 23:51:49 +00:00
}
2015-02-01 16:52:26 +00:00
// Set variables
$msg_box = array ();
2015-04-30 11:35:43 +01:00
// Check for install.inc.php
2015-07-13 20:10:26 +02:00
if ( ! file_exists ( '../config.php' ) && $_SERVER [ 'PATH_INFO' ] != '/install.php' ) {
// no config.php does so let's redirect to the install
2015-08-11 14:54:05 -07:00
header ( 'Location: install.php' );
2015-07-13 20:10:26 +02:00
exit ;
2015-04-30 11:35:43 +01:00
}
2015-02-01 16:52:26 +00:00
2015-07-13 20:10:26 +02:00
require '../includes/defaults.inc.php' ;
require '../config.php' ;
require_once '../includes/definitions.inc.php' ;
require '../includes/functions.php' ;
require 'includes/functions.inc.php' ;
require 'includes/vars.inc.php' ;
require 'includes/plugins.inc.php' ;
2015-09-30 15:20:06 +00:00
$config [ 'memcached' ][ 'ttl' ] = $config [ 'time' ][ 'now' ] + 300 ;
2014-02-25 12:51:07 +00:00
Plugins :: start ();
2012-02-06 17:39:31 +00:00
$runtime_start = utime ();
2011-03-17 11:48:03 +00:00
ob_start ();
ini_set ( 'allow_url_fopen' , 0 );
ini_set ( 'display_errors' , 0 );
2007-11-23 11:37:28 +00:00
2015-07-13 20:10:26 +02:00
require 'includes/authenticate.inc.php' ;
2012-04-27 17:18:26 +00:00
2015-07-13 20:10:26 +02:00
if ( strstr ( $_SERVER [ 'REQUEST_URI' ], 'widescreen=yes' )) {
$_SESSION [ 'widescreen' ] = 1 ;
}
if ( strstr ( $_SERVER [ 'REQUEST_URI' ], 'widescreen=no' )) {
unset ( $_SESSION [ 'widescreen' ]);
}
2011-09-04 21:50:48 +00:00
2011-03-17 11:48:03 +00:00
# Load the settings for Multi-Tenancy.
2015-07-13 20:10:26 +02:00
if ( isset ( $config [ 'branding' ]) && is_array ( $config [ 'branding' ])) {
if ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]]) {
foreach ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]] as $confitem => $confval ) {
eval ( " \$ config[' " . $confitem . " '] = \$ confval; " );
}
2011-03-23 09:54:56 +00:00
}
2015-07-13 20:10:26 +02:00
else {
foreach ( $config [ 'branding' ][ 'default' ] as $confitem => $confval ) {
eval ( " \$ config[' " . $confitem . " '] = \$ confval; " );
}
2011-03-17 11:48:03 +00:00
}
}
2012-04-17 10:53:24 +00:00
# page_title_prefix is displayed, unless page_title is set
2015-07-13 20:10:26 +02:00
if ( isset ( $config [ 'page_title' ])) {
$config [ 'page_title_prefix' ] = $config [ 'page_title' ];
}
2012-04-17 15:27:17 +00:00
2007-04-03 14:10:23 +00:00
?>
2011-09-02 19:25:54 +00:00
<! DOCTYPE HTML >
< html >
2007-04-03 14:10:23 +00:00
< head >
2014-01-28 14:59:15 +00:00
< title >< ? php echo ( $config [ 'page_title_suffix' ]); ?> </title>
2008-03-15 17:58:15 +00:00
< base href = " <?php echo( $config['base_url'] ); ?> " />
2009-03-17 20:29:54 +00:00
< meta http - equiv = " content-type " content = " text/html; charset=utf-8 " />
2014-01-13 07:59:31 +00:00
< meta name = " viewport " content = " width=device-width, initial-scale=1.0 " >
2015-03-10 20:36:44 +00:00
< ? php
if ( empty ( $config [ 'favicon' ])) {
?>
< link rel = " apple-touch-icon-precomposed " sizes = " 152x152 " href = " images/favicon-152.png " >
< link rel = " apple-touch-icon-precomposed " sizes = " 144x144 " href = " images/favicon-144.png " >
< link rel = " apple-touch-icon-precomposed " sizes = " 120x120 " href = " images/favicon-120.png " >
< link rel = " apple-touch-icon-precomposed " sizes = " 114x114 " href = " images/favicon-114.png " >
< link rel = " apple-touch-icon-precomposed " sizes = " 72x72 " href = " images/favicon-72.png " >
< link rel = " apple-touch-icon-precomposed " href = " images/favicon-57.png " >
< link rel = " icon " href = " images/favicon-32.png " sizes = " 32x32 " >
2015-09-29 09:50:34 -03:00
< meta name = " mobile-web-app-capable " content = " yes " >
2015-03-10 20:36:44 +00:00
< meta name = " msapplication-TileImage " content = " images/favicon-144.png " >
< ? php
2015-07-13 20:10:26 +02:00
}
else {
2015-03-10 20:36:44 +00:00
echo ( ' <link rel="shortcut icon" href="' . $config [ 'favicon' ] . '" />' . " \n " );
}
?>
2014-01-13 07:59:31 +00:00
< link href = " css/bootstrap.min.css " rel = " stylesheet " type = " text/css " />
2014-10-28 07:46:08 +10:00
< link href = " css/bootstrap-datetimepicker.min.css " rel = " stylesheet " type = " text/css " />
2014-06-14 23:05:31 +01:00
< link href = " css/bootstrap-switch.min.css " rel = " stylesheet " type = " text/css " />
2014-10-01 00:14:26 +01:00
< link href = " css/toastr.min.css " rel = " stylesheet " type = " text/css " />
2014-11-30 17:49:52 +00:00
< link href = " css/jquery-ui.min.css " rel = " stylesheet " type = " text/css " />
2015-03-27 16:28:09 +00:00
< link href = " css/jquery.bootgrid.min.css " rel = " stylesheet " type = " text/css " />
2014-11-30 17:49:52 +00:00
< link href = " css/tagmanager.css " rel = " stylesheet " type = " text/css " />
2015-03-23 21:49:37 +00:00
< link href = " css/mktree.css " rel = " stylesheet " type = " text/css " />
2015-03-28 13:59:23 +00:00
< link href = " css/vis.min.css " rel = " stylesheet " type = " text/css " />
2015-03-26 13:44:54 +00:00
< link href = " css/font-awesome.min.css " rel = " stylesheet " type = " text/css " />
2015-07-21 23:01:57 +01:00
< link href = " css/jquery.gridster.min.css " rel = " stylesheet " type = " text/css " />
2015-07-20 15:10:56 +01:00
< link href = " css/leaflet.css " rel = " stylesheet " type = " text/css " />
< link href = " css/MarkerCluster.css " rel = " stylesheet " type = " text/css " />
< link href = " css/MarkerCluster.Default.css " rel = " stylesheet " type = " text/css " />
< link href = " css/leaflet.awesome-markers.css " rel = " stylesheet " type = " text/css " />
2014-03-18 22:36:22 +00:00
< link href = " <?php echo( $config['stylesheet'] ); ?> " rel = " stylesheet " type = " text/css " />
2015-03-26 23:51:13 +00:00
< link href = " css/<?php echo $config['site_style'] ; ?>.css " rel = " stylesheet " type = " text/css " />
2014-01-13 07:59:31 +00:00
< script src = " js/jquery.min.js " ></ script >
< script src = " js/bootstrap.min.js " ></ script >
< script src = " js/bootstrap-hover-dropdown.min.js " ></ script >
2014-06-14 23:05:31 +01:00
< script src = " js/bootstrap-switch.min.js " ></ script >
2014-01-13 07:59:31 +00:00
< script src = " js/hogan-2.0.0.js " ></ script >
< script src = " js/jquery.cycle2.min.js " ></ script >
2014-10-28 07:47:52 +10:00
< script src = " js/moment.min.js " ></ script >
2014-10-29 10:48:18 +00:00
< script src = " js/bootstrap-datetimepicker.min.js " ></ script >
2015-04-29 15:18:14 +01:00
< script src = " js/typeahead.bundle.min.js " ></ script >
2014-11-30 17:49:52 +00:00
< script src = " js/jquery-ui.min.js " ></ script >
< script src = " js/tagmanager.js " ></ script >
2015-03-23 21:49:37 +00:00
< script src = " js/mktree.js " ></ script >
2015-03-27 16:28:09 +00:00
< script src = " js/jquery.bootgrid.min.js " ></ script >
2015-04-29 15:18:14 +01:00
< script src = " js/handlebars.min.js " ></ script >
2015-05-01 11:02:18 -03:00
< script src = " js/pace.min.js " ></ script >
2015-07-16 12:42:58 -04:00
< script src = " js/jquery.lazyload.min.js " ></ script >
< script src = " js/lazyload.js " ></ script >
2015-10-20 21:35:08 +00:00
< script src = " js/librenms.js " ></ script >
2011-09-14 13:38:01 +00:00
< script type = " text/javascript " >
2014-02-26 02:29:31 +00:00
<!-- Begin
function popUp ( URL )
{
day = new Date ();
id = day . getTime ();
eval ( " page " + id + " = window.open(URL, ' " + id + " ', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=550,height=600'); " );
}
// End -->
2011-03-23 09:54:56 +00:00
</ script >
2011-09-29 12:57:44 +00:00
< script type = " text/javascript " src = " js/overlib_mini.js " ></ script >
2014-10-01 00:14:26 +01:00
< script type = " text/javascript " src = " js/toastr.min.js " ></ script >
2014-01-13 07:59:31 +00:00
</ head >
< body >
2007-04-03 14:10:23 +00:00
2011-03-26 19:28:39 +00:00
< ? php
2007-04-03 14:10:23 +00:00
2015-11-20 12:47:56 +00:00
if ( empty ( $_SESSION [ 'screen_width' ]) && empty ( $_SESSION [ 'screen_height' ])) {
echo " <script>updateResolution();</script> " ;
}
2015-03-01 17:06:38 +00:00
if (( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] != " yes " ) || ! isset ( $vars [ 'bare' ])) {
2015-07-13 20:10:26 +02:00
if ( $_SESSION [ 'authenticated' ]) {
require 'includes/print-menubar.php' ;
}
}
else {
2015-05-29 01:17:23 +01:00
echo " <style>body { padding-top: 0px !important;
2015-07-13 20:10:26 +02:00
padding - bottom : 0 px ! important ; } </ style > " ;
2015-05-29 01:17:23 +01:00
2011-09-14 13:38:01 +00:00
}
2007-04-03 14:10:23 +00:00
2011-03-26 19:28:39 +00:00
?>
2014-01-13 07:59:31 +00:00
< br />
2014-02-23 11:57:39 +00:00
< div class = " container-fluid " >
2014-02-26 02:29:31 +00:00
< div class = " row " >
< div class = " col-md-12 " >
2007-04-03 14:10:23 +00:00
< ? php
2011-09-15 21:18:57 +00:00
2012-05-25 12:24:34 +00:00
// To help debug the new URLs :)
2015-07-13 20:10:26 +02:00
if ( isset ( $devel ) || isset ( $vars [ 'devel' ])) {
echo ( " <pre> " );
print_r ( $_GET );
print_r ( $vars );
echo ( " </pre> " );
2011-09-15 21:18:57 +00:00
}
2015-07-13 20:10:26 +02:00
if ( $_SESSION [ 'authenticated' ]) {
// Authenticated. Print a page.
if ( isset ( $vars [ 'page' ]) && ! strstr ( " .. " , $vars [ 'page' ]) && is_file ( " pages/ " . $vars [ 'page' ] . " .inc.php " )) {
require " pages/ " . $vars [ 'page' ] . " .inc.php " ;
}
else {
if ( isset ( $config [ 'front_page' ]) && is_file ( $config [ 'front_page' ])) {
require $config [ 'front_page' ];
}
else {
require 'pages/front/default.php' ;
}
2007-04-03 14:10:23 +00:00
}
2008-07-22 08:24:34 +00:00
2015-07-13 20:10:26 +02:00
}
else {
// Not Authenticated. Show status page if enabled
if ( $config [ 'public_status' ] === true ) {
if ( isset ( $vars [ 'page' ]) && strstr ( " login " , $vars [ 'page' ])) {
require 'pages/logon.inc.php' ;
}
else {
echo '<div id="public-status">' ;
require 'pages/public.inc.php' ;
echo '</div>' ;
echo '<div id="public-logon" style="display:none;">' ;
echo '<div class="well"><h3>Logon<button class="btn btn-default" type="submit" style="float:right;" id="ToggleStatus">Status</button></h3></div>' ;
require 'pages/logon.inc.php' ;
echo '</div>' ;
}
}
else {
require 'pages/logon.inc.php' ;
2014-06-21 09:50:24 -04:00
}
2011-03-17 11:48:03 +00:00
}
2007-04-03 14:10:23 +00:00
?>
2014-02-26 02:29:31 +00:00
</ div >
</ div >
</ div >
2007-04-03 14:10:23 +00:00
< ? php
2014-02-26 02:29:31 +00:00
2015-07-13 20:10:26 +02:00
$runtime_end = utime ();
$runtime = $runtime_end - $runtime_start ;
2012-02-06 17:39:31 +00:00
$gentime = substr ( $runtime , 0 , 5 );
2010-03-27 22:20:57 +00:00
2013-11-05 10:23:15 +10:00
# FIXME - move this
2015-07-13 20:10:26 +02:00
if ( $config [ 'page_gen' ]) {
echo ( ' <br />MySQL: Cell ' . ( $db_stats [ 'fetchcell' ] + 0 ) . '/' . round ( $db_stats [ 'fetchcell_sec' ] + 0 , 3 ) . 's' .
' Row ' . ( $db_stats [ 'fetchrow' ] + 0 ) . '/' . round ( $db_stats [ 'fetchrow_sec' ] + 0 , 3 ) . 's' .
' Rows ' . ( $db_stats [ 'fetchrows' ] + 0 ) . '/' . round ( $db_stats [ 'fetchrows_sec' ] + 0 , 3 ) . 's' .
' Column ' . ( $db_stats [ 'fetchcol' ] + 0 ) . '/' . round ( $db_stats [ 'fetchcol_sec' ] + 0 , 3 ) . 's' );
$fullsize = memory_get_usage ();
unset ( $cache );
$cachesize = $fullsize - memory_get_usage ();
if ( $cachesize < 0 ) {
$cachesize = 0 ;
} // Silly PHP!
echo ( ' <br />Cached data in memory is ' . formatStorage ( $cachesize ) . '. Page memory usage is ' . formatStorage ( $fullsize ) . ', peaked at ' . formatStorage ( memory_get_peak_usage ()) . '.' );
echo ( ' <br />Generated in ' . $gentime . ' seconds.' );
2011-03-17 11:48:03 +00:00
}
2011-09-19 11:15:01 +00:00
2015-07-13 20:10:26 +02:00
if ( isset ( $pagetitle ) && is_array ( $pagetitle )) {
# if prefix is set, put it in front
if ( $config [ 'page_title_prefix' ]) {
array_unshift ( $pagetitle , $config [ 'page_title_prefix' ]);
}
2012-04-17 15:27:17 +00:00
2015-07-13 20:10:26 +02:00
# if suffix is set, put it in the back
if ( $config [ 'page_title_suffix' ]) {
$pagetitle [] = $config [ 'page_title_suffix' ];
}
2012-04-17 15:27:17 +00:00
2015-07-13 20:10:26 +02:00
# create and set the title
$title = join ( " - " , $pagetitle );
echo ( " <script type= \" text/javascript \" > \n document.title = ' $title '; \n </script> " );
2011-10-18 14:27:21 +00:00
}
?>
2015-01-02 23:15:35 +00:00
< ? php
2015-05-29 11:10:43 +01:00
if ( $config [ 'enable_footer' ] == 1 && ( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] != " yes " )) {
2015-01-02 23:15:35 +00:00
?>
2015-03-26 23:51:13 +00:00
< nav class = " navbar navbar-default <?php echo $navbar ; ?> navbar-fixed-bottom " >
2014-02-26 02:29:31 +00:00
< div class = " container " >
< div class = " row " >
< div class = " col-md-12 text-center " >
2014-01-13 07:59:31 +00:00
< ? php
2015-03-31 17:45:28 +01:00
echo ( '<h5>Powered by <a href="' . $config [ 'project_home' ] . '" target="_blank" class="red">' . $config [ 'project_name' ] . '</a>.</h5>' );
2014-01-13 07:59:31 +00:00
?>
2014-02-26 02:29:31 +00:00
</ div >
</ div >
</ div >
2015-03-26 23:51:13 +00:00
</ nav >
2014-10-01 00:14:26 +01:00
< ? php
2015-01-02 23:15:35 +00:00
}
2014-10-01 00:14:26 +01:00
2015-02-01 16:42:09 +00:00
if ( dbFetchCell ( " SELECT COUNT(`device_id`) FROM `devices` WHERE `last_polled` <= DATE_ADD(NOW(), INTERVAL - 15 minute) AND `ignore` = 0 AND `disabled` = 0 AND status = 1 " , array ()) > 0 ) {
2015-03-29 12:30:52 +01:00
$msg_box [] = array ( 'type' => 'warning' , 'message' => " <a href= \" poll-log/ \" >It appears as though you have some devices that haven't completed polling within the last 15 minutes, you may want to check that out :)</a> " , 'title' => 'Devices unpolled' );
2015-02-01 16:42:09 +00:00
}
2014-10-01 00:14:26 +01:00
if ( is_array ( $msg_box )) {
2015-07-13 20:10:26 +02:00
echo ( " <script>
toastr . options . timeout = 10 ;
toastr . options . extendedTimeOut = 20 ;
" );
foreach ( $msg_box as $message ) {
$message [ 'type' ] = mres ( $message [ 'type' ]);
$message [ 'message' ] = mres ( $message [ 'message' ]);
$message [ 'title' ] = mres ( $message [ 'title' ]);
echo " toastr. " . $message [ 'type' ] . " (' " . $message [ 'message' ] . " ',' " . $message [ 'title' ] . " '); \n " ;
}
echo ( " </script> " );
2014-10-01 00:14:26 +01:00
}
2015-04-12 16:27:55 +01:00
if ( is_array ( $sql_debug ) && is_array ( $php_debug ) && $_SESSION [ 'authenticated' ] === TRUE ) {
2015-07-13 20:10:26 +02:00
require_once " includes/print-debug.php " ;
2015-02-18 23:03:23 +00:00
}
2015-03-06 15:49:35 +00:00
if ( $no_refresh !== TRUE && $config [ 'page_refresh' ] != 0 ) {
$refresh = $config [ 'page_refresh' ] * 1000 ;
2015-03-08 21:33:40 +00:00
echo ( ' < script type = " text/javascript " >
2015-03-06 15:49:35 +00:00
$ ( document ) . ready ( function () {
2015-03-26 23:51:13 +00:00
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-pause fa-fw \" ></i> Pause " );
2015-03-08 21:33:40 +00:00
var Countdown = {
sec : '. $config[' page_refresh '] .' ,
Start : function () {
var cur = this ;
this . interval = setInterval ( function () {
2015-03-26 23:51:13 +00:00
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-pause fa-fw \" ></i> Pause " );
2015-03-08 21:33:40 +00:00
cur . sec -= 1 ;
display_time = cur . sec ;
if ( display_time == 0 ) {
location . reload ();
}
if ( display_time % 1 === 0 && display_time <= 300 ) {
2015-03-26 23:51:13 +00:00
$ ( " #countdown_timer " ) . html ( " <i class= \" fa fa-clock-o fa-fw \" ></i> Refresh in " + display_time );
2015-03-08 21:33:40 +00:00
}
}, 1000 );
},
Pause : function () {
clearInterval ( this . interval );
2015-03-26 23:51:13 +00:00
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-play fa-fw \" ></i> Resume " );
2015-03-08 21:33:40 +00:00
delete this . interval ;
},
Resume : function () {
if ( ! this . interval ) this . Start ();
}
};
Countdown . Start ();
$ ( " #countdown_timer_status " ) . click ( " " , function ( event ) {
event . preventDefault ();
if ( Countdown . interval ) {
Countdown . Pause ();
} else {
Countdown . Resume ();
}
});
$ ( " #countdown_timer " ) . click ( " " , function ( event ) {
event . preventDefault ();
});
2015-03-06 15:49:35 +00:00
2015-03-08 21:33:40 +00:00
});
2015-03-06 15:49:35 +00:00
</ script > ' );
2015-07-13 20:10:26 +02:00
}
else {
2015-04-29 18:08:16 +01:00
echo ( ' < script type = " text/javascript " >
$ ( document ) . ready ( function () {
$ ( " #countdown_timer " ) . html ( " Refresh disabled " );
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-pause fa-fw \" ></i> " );
$ ( " #countdown_timer_status " ) . click ( " " , function ( event ) {
event . preventDefault ();
});
});
</ script > ' );
2015-03-06 15:49:35 +00:00
}
?>
2015-03-26 23:51:13 +00:00
</ body >
2007-04-03 14:10:23 +00:00
</ html >