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' ]);
} else {
$_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
}
}
if ( strpos ( $_SERVER [ 'PATH_INFO' ], " debug " ))
{
$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-01 16:52:26 +00:00
// Set variables
$msg_box = array ();
2012-02-06 17:39:31 +00:00
include ( " ../includes/defaults.inc.php " );
include ( " ../config.php " );
2012-05-09 10:01:42 +00:00
include_once ( " ../includes/definitions.inc.php " );
2012-02-06 17:39:31 +00:00
include ( " ../includes/functions.php " );
include ( " includes/functions.inc.php " );
2015-04-16 10:08:19 +00:00
include ( " includes/vars.inc.php " );
2014-02-25 12:51:07 +00:00
include ( 'includes/plugins.inc.php' );
Plugins :: start ();
2012-02-06 17:39:31 +00:00
2014-01-15 02:51:25 +00:00
// Check for install.inc.php
2014-02-26 02:29:31 +00:00
if ( ! file_exists ( '../config.php' ) && $_SERVER [ 'PATH_INFO' ] != '/install.php' )
{
2014-01-15 02:51:25 +00:00
// no config.php does so let's redirect to the install
header ( 'Location: /install.php' );
exit ;
}
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
2012-04-27 17:18:26 +00:00
include ( " includes/authenticate.inc.php " );
2012-01-19 17:33:32 +00: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.
2011-05-05 14:39:50 +00:00
if ( isset ( $config [ 'branding' ]) && is_array ( $config [ 'branding' ]))
2011-03-26 19:12:24 +00:00
{
2011-03-23 09:54:56 +00:00
if ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]])
{
foreach ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]] as $confitem => $confval )
2011-03-17 11:48:03 +00:00
{
2011-03-23 09:54:56 +00:00
eval ( " \$ config[' " . $confitem . " '] = \$ confval; " );
}
} else {
foreach ( $config [ 'branding' ][ 'default' ] as $confitem => $confval )
{
eval ( " \$ config[' " . $confitem . " '] = \$ confval; " );
2011-03-17 11:48:03 +00:00
}
2011-03-23 09:54:56 +00:00
}
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-03-01 17:06:38 +00: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 " >
< meta name = " msapplication-TileImage " content = " images/favicon-144.png " >
< ? php
} else {
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-27 21:46:08 +00:00
< link href = " css/bootstrap-datetimepicker.min.css " rel = " stylesheet " type = " text/css " />
2014-06-14 22:05:31 +00:00
< link href = " css/bootstrap-switch.min.css " rel = " stylesheet " type = " text/css " />
2014-09-30 23:14:26 +00:00
< link href = " css/toastr.min.css " rel = " stylesheet " type = " text/css " />
2014-10-27 21:46:08 +00:00
< link href = " css/typeahead.js-bootstrap.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 " />
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 22:05:31 +00: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-27 21:47:52 +00:00
< script src = " js/moment.min.js " ></ script >
2014-10-29 10:48:18 +00:00
< script src = " js/bootstrap-datetimepicker.min.js " ></ script >
2014-10-27 21:47:52 +00:00
< script src = " js/typeahead.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 >
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-09-30 23:14:26 +00: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-03-01 17:06:38 +00:00
if (( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] != " yes " ) || ! isset ( $vars [ 'bare' ])) {
2011-09-14 13:38:01 +00:00
2014-02-26 02:29:31 +00:00
if ( $_SESSION [ 'authenticated' ])
{
2014-01-13 07:59:31 +00:00
include ( " includes/print-menubar.php " );
}
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-03-01 17:06:38 +00:00
if ( isset ( $devel ) || isset ( $vars [ 'devel' ]))
2011-09-15 21:18:57 +00:00
{
echo ( " <pre> " );
print_r ( $_GET );
print_r ( $vars );
echo ( " </pre> " );
}
2011-03-17 11:48:03 +00:00
if ( $_SESSION [ 'authenticated' ])
{
2012-05-25 12:24:34 +00:00
// Authenticated. Print a page.
2011-09-14 13:38:01 +00:00
if ( isset ( $vars [ 'page' ]) && ! strstr ( " .. " , $vars [ 'page' ]) && is_file ( " pages/ " . $vars [ 'page' ] . " .inc.php " ))
2011-03-23 09:54:56 +00:00
{
2011-09-14 13:38:01 +00:00
include ( " pages/ " . $vars [ 'page' ] . " .inc.php " );
2011-03-23 09:54:56 +00:00
} else {
if ( isset ( $config [ 'front_page' ]) && is_file ( $config [ 'front_page' ]))
2011-03-17 11:48:03 +00:00
{
2011-03-23 09:54:56 +00:00
include ( $config [ 'front_page' ]);
2011-03-17 11:48:03 +00:00
} else {
2011-03-23 09:54:56 +00:00
include ( " pages/front/default.php " );
2007-04-03 14:10:23 +00:00
}
2011-03-23 09:54:56 +00:00
}
2008-07-22 08:24:34 +00:00
2011-03-17 11:48:03 +00:00
} else {
2014-06-21 13:50:24 +00:00
// Not Authenticated. Show status page if enabled
2014-06-22 02:02:16 +00:00
if ( $config [ 'public_status' ] === true )
2014-06-21 13:50:24 +00:00
{
if ( isset ( $vars [ 'page' ]) && strstr ( " login " , $vars [ 'page' ]))
{
include ( " pages/logon.inc.php " );
} else {
2014-06-22 00:24:44 +00:00
echo '<div id="public-status">' ;
2014-06-21 13:50:24 +00:00
include ( " pages/public.inc.php " );
2014-06-22 00:24:44 +00:00
echo '</div>' ;
echo '<div id="public-logon" style="display:none;">' ;
2014-06-22 02:02:16 +00:00
echo '<div class="well"><h3>Logon<button class="btn btn-default" type="submit" style="float:right;" id="ToggleStatus">Status</button></h3></div>' ;
2014-06-22 00:24:44 +00:00
include ( " pages/logon.inc.php " );
echo '</div>' ;
2014-06-21 13:50:24 +00:00
}
}
else
{
include ( " pages/logon.inc.php " );
}
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
2012-02-06 17:39:31 +00:00
$runtime_end = utime (); $runtime = $runtime_end - $runtime_start ;
$gentime = substr ( $runtime , 0 , 5 );
2010-03-27 22:20:57 +00:00
2013-11-05 00:23:15 +00:00
# FIXME - move this
2011-03-17 11:48:03 +00:00
if ( $config [ 'page_gen' ])
{
2014-02-26 02:29:31 +00:00
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-03-01 17:06:38 +00:00
if ( isset ( $pagetitle ) && is_array ( $pagetitle ))
2011-10-18 14:27:21 +00:00
{
2012-04-17 10:48:35 +00:00
# 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
2012-04-17 10:48:35 +00: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
2012-04-17 10:48:35 +00:00
# create and set the title
2011-10-18 14:27:21 +00:00
$title = join ( " - " , $pagetitle );
echo ( " <script type= \" text/javascript \" > \n document.title = ' $title '; \n </script> " );
}
?>
2015-01-02 23:15:35 +00:00
< ? php
if ( $config [ 'enable_footer' ] == 1 ) {
?>
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 16:45:28 +00: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-09-30 23:14:26 +00:00
< ? php
2015-01-02 23:15:35 +00:00
}
2014-09-30 23:14:26 +00: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 11:30:52 +00: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-09-30 23:14:26 +00:00
if ( is_array ( $msg_box )) {
echo ( " <script>
toastr . options . timeout = 10 ;
toastr . options . extendedTimeOut = 20 ;
" );
foreach ( $msg_box as $message ) {
2015-02-01 16:42:09 +00:00
$message [ 'type' ] = mres ( $message [ 'type' ]);
$message [ 'message' ] = mres ( $message [ 'message' ]);
$message [ 'title' ] = mres ( $message [ 'title' ]);
2014-09-30 23:14:26 +00:00
echo " toastr. " . $message [ 'type' ] . " (' " . $message [ 'message' ] . " ',' " . $message [ 'title' ] . " '); \n " ;
}
echo ( " </script> " );
}
2015-04-12 15:27:55 +00:00
if ( is_array ( $sql_debug ) && is_array ( $php_debug ) && $_SESSION [ 'authenticated' ] === TRUE ) {
2015-02-18 23:03:23 +00:00
include_once " includes/print-debug.php " ;
}
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-03-26 23:51:13 +00:00
</ body >
2007-04-03 14:10:23 +00:00
</ html >