2018-05-09 08:05:17 -05:00
< ? php
/**
* LibreNMS
*
* This file is part of LibreNMS .
*
* @ package librenms
* @ subpackage webinterface
* @ copyright ( C ) 2006 - 2012 Adam Armstrong
*
*/
use LibreNMS\Config ;
if ( empty ( $_SERVER [ 'PATH_INFO' ])) {
if ( strstr ( $_SERVER [ 'SERVER_SOFTWARE' ], " nginx " ) && isset ( $_SERVER [ 'PATH_TRANSLATED' ]) && isset ( $_SERVER [ 'ORIG_SCRIPT_FILENAME' ])) {
$_SERVER [ 'PATH_INFO' ] = str_replace ( $_SERVER [ 'PATH_TRANSLATED' ] . $_SERVER [ 'PHP_SELF' ], " " , $_SERVER [ 'ORIG_SCRIPT_FILENAME' ]);
} else {
$_SERVER [ 'PATH_INFO' ] = isset ( $_SERVER [ 'ORIG_PATH_INFO' ]) ? $_SERVER [ 'ORIG_PATH_INFO' ] : '' ;
}
}
// Set variables
$msg_box = array ();
$init_modules = array ( 'web' , 'auth' );
require realpath ( __DIR__ . '/..' ) . '/includes/init.php' ;
2019-04-11 23:26:42 -05:00
if ( ! Auth :: check ()) {
die ( 'Unauthorized' );
}
2018-07-13 17:08:00 -05:00
set_debug ( str_contains ( $_SERVER [ 'REQUEST_URI' ], 'debug' ));
2018-05-09 08:05:17 -05:00
LibreNMS\Plugins :: start ();
$runtime_start = microtime ( true );
ob_start ();
ini_set ( 'allow_url_fopen' , 0 );
if ( strstr ( $_SERVER [ 'REQUEST_URI' ], 'widescreen=yes' )) {
$_SESSION [ 'widescreen' ] = 1 ;
}
if ( strstr ( $_SERVER [ 'REQUEST_URI' ], 'widescreen=no' )) {
unset ( $_SESSION [ 'widescreen' ]);
}
# Load the settings for Multi-Tenancy.
if ( isset ( $config [ 'branding' ]) && is_array ( $config [ 'branding' ])) {
if ( isset ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]])) {
$config = array_replace_recursive ( $config , $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]]);
} else {
$config = array_replace_recursive ( $config , $config [ 'branding' ][ 'default' ]);
}
}
# page_title_prefix is displayed, unless page_title is set
if ( isset ( $config [ 'page_title' ])) {
$config [ 'page_title_prefix' ] = $config [ 'page_title' ];
}
?>
<! DOCTYPE HTML >
< html >
< head >
< title >< ? php echo ( $config [ 'page_title_suffix' ]); ?> </title>
< base href = " <?php echo( $config['base_url'] ); ?> " />
< meta http - equiv = " content-type " content = " text/html; charset=utf-8 " />
< meta name = " viewport " content = " width=device-width, initial-scale=1.0 " >
< ? php
if ( empty ( $config [ 'favicon' ])) {
?>
< link rel = " apple-touch-icon " sizes = " 180x180 " href = " images/apple-touch-icon.png " >
< link rel = " icon " type = " image/png " href = " images/favicon-32x32.png " sizes = " 32x32 " >
< link rel = " icon " type = " image/png " href = " images/favicon-16x16.png " sizes = " 16x16 " >
< link rel = " manifest " href = " images/manifest.json " >
< link rel = " mask-icon " href = " images/safari-pinned-tab.svg " color = " #5bbad5 " >
< link rel = " shortcut icon " href = " images/favicon.ico " >
2019-02-12 17:45:04 -06:00
< meta name = " csrf-token " content = " <?php echo csrf_token(); ?> " >
2018-05-09 08:05:17 -05:00
< meta name = " msapplication-config " content = " images/browserconfig.xml " >
< meta name = " theme-color " content = " #ffffff " >
< ? php
} else {
echo ( ' <link rel="shortcut icon" href="' . $config [ 'favicon' ] . '" />' . " \n " );
}
?>
< link href = " css/bootstrap.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/bootstrap-datetimepicker.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/bootstrap-switch.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/toastr.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/jquery-ui.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/jquery.bootgrid.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/tagmanager.css " rel = " stylesheet " type = " text/css " />
< link href = " css/mktree.css " rel = " stylesheet " type = " text/css " />
< link href = " css/vis.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/font-awesome.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/jquery.gridster.min.css " rel = " stylesheet " type = " text/css " />
< 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 " />
2018-11-29 19:23:40 -06:00
< link href = " css/L.Control.Locate.min.css " rel = " stylesheet " type = " text/css " />
2018-05-09 08:05:17 -05:00
< link href = " css/leaflet.awesome-markers.css " rel = " stylesheet " type = " text/css " />
< link href = " css/select2.min.css " rel = " stylesheet " type = " text/css " />
2018-09-20 15:33:03 -05:00
< link href = " css/select2-bootstrap.min.css " rel = " stylesheet " type = " text/css " />
2018-05-09 08:05:17 -05:00
< link href = " css/query-builder.default.min.css " rel = " stylesheet " type = " text/css " />
2019-01-25 15:31:33 -06:00
< link href = " <?php echo( $config['stylesheet'] ); ?>?ver=20190123 " rel = " stylesheet " type = " text/css " />
2018-05-09 08:05:17 -05:00
< link href = " css/<?php echo $config['site_style'] ; ?>.css?ver=632417642 " rel = " stylesheet " type = " text/css " />
< ? php
foreach (( array ) $config [ 'webui' ][ 'custom_css' ] as $custom_css ) {
echo '<link href="' . $custom_css . '" rel="stylesheet" type="text/css" />' ;
}
?>
2018-11-30 14:36:52 -06:00
< script src = " js/polyfill.min.js " ></ script >
2018-05-09 08:05:17 -05:00
< script src = " js/jquery.min.js " ></ script >
< script src = " js/bootstrap.min.js " ></ script >
< script src = " js/bootstrap-hover-dropdown.min.js " ></ script >
< script src = " js/bootstrap-switch.min.js " ></ script >
< script src = " js/hogan-2.0.0.js " ></ script >
< script src = " js/jquery.cycle2.min.js " ></ script >
< script src = " js/moment.min.js " ></ script >
< script src = " js/bootstrap-datetimepicker.min.js " ></ script >
< script src = " js/typeahead.bundle.min.js " ></ script >
< script src = " js/jquery-ui.min.js " ></ script >
< script src = " js/tagmanager.js " ></ script >
< script src = " js/mktree.js " ></ script >
< script src = " js/jquery.bootgrid.min.js " ></ script >
< script src = " js/handlebars.min.js " ></ script >
< script src = " js/pace.min.js " ></ script >
< script src = " js/qrcode.min.js " ></ script >
< ? php
if ( $config [ 'enable_lazy_load' ] === true ) {
?>
< script src = " js/jquery.lazyload.min.js " ></ script >
< script src = " js/lazyload.js " ></ script >
< ? php
}
?>
< script src = " js/select2.min.js " ></ script >
2019-01-25 15:31:33 -06:00
< script src = " js/librenms.js?ver=20190123 " ></ script >
2018-05-09 08:05:17 -05:00
< script type = " text/javascript " >
<!-- 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 -->
2019-02-12 17:45:04 -06:00
$ . ajaxSetup ({
headers : {
'X-CSRF-TOKEN' : $ ( 'meta[name="csrf-token"]' ) . attr ( 'content' )
}
});
2018-05-09 08:05:17 -05:00
</ script >
< script type = " text/javascript " src = " js/overlib_mini.js " ></ script >
< script type = " text/javascript " src = " js/toastr.min.js " ></ script >
</ head >
< body >
< ? php
if ( empty ( $_SESSION [ 'screen_width' ]) && empty ( $_SESSION [ 'screen_height' ])) {
echo " <script>updateResolution();</script> " ;
}
if (( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] != " yes " ) || ! isset ( $vars [ 'bare' ])) {
if ( Auth :: check ()) {
2019-04-11 23:26:42 -05:00
require 'includes/html/print-menubar.php' ;
2018-05-09 08:05:17 -05:00
}
} else {
echo " <style>body { padding-top: 0px !important;
padding - bottom : 0 px ! important ; } </ style > " ;
}
?>
< br />
< div class = " container-fluid " >
< div class = " row " >
< div class = " col-md-12 " >
< ? php
// To help debug the new URLs :)
if ( isset ( $devel ) || isset ( $vars [ 'devel' ])) {
echo ( " <pre> " );
print_r ( $_GET );
print_r ( $vars );
echo ( " </pre> " );
}
2019-04-11 23:26:42 -05:00
$vars [ 'page' ] = basename ( $vars [ 'page' ] ? ? '' );
if ( $vars [ 'page' ] && is_file ( " includes/html/pages/ " . $vars [ 'page' ] . " .inc.php " )) {
require " includes/html/pages/ " . $vars [ 'page' ] . " .inc.php " ;
} elseif ( Config :: has ( 'front_page' ) && is_file ( 'includes/html/' . Config :: get ( 'front_page' ))) {
require 'includes/html/' . Config :: get ( 'front_page' );
2018-05-09 08:05:17 -05:00
} else {
2019-04-11 23:26:42 -05:00
require 'includes/html/pages/front/default.php' ;
2018-05-09 08:05:17 -05:00
}
2019-04-11 23:26:42 -05:00
2018-05-09 08:05:17 -05:00
?>
</ div >
</ div >
</ div >
< ? php
$runtime_end = microtime ( true );
$runtime = $runtime_end - $runtime_start ;
$gentime = substr ( $runtime , 0 , 5 );
# FIXME - move this
if ( $config [ 'page_gen' ]) {
echo '<br />' ;
printStats ();
$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.' );
}
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' ]);
}
# if suffix is set, put it in the back
if ( $config [ 'page_title_suffix' ]) {
$pagetitle [] = $config [ 'page_title_suffix' ];
}
# create and set the title
$title = join ( " - " , $pagetitle );
echo ( " <script type= \" text/javascript \" > \n document.title = ' $title '; \n </script> " );
}
?>
< ? php
if ( $config [ 'enable_footer' ] == 1 && ( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] != " yes " )) {
?>
< nav class = " navbar navbar-default <?php echo $navbar ; ?> navbar-fixed-bottom " >
< div class = " container " >
< div class = " row " >
< div class = " col-md-12 text-center " >
< ? php
echo ( '<h5>Powered by <a href="' . $config [ 'project_home' ] . '" target="_blank" rel="noopener" class="red">' . $config [ 'project_name' ] . '</a>.</h5>' );
?>
</ div >
</ div >
</ div >
</ nav >
< ? php
}
if ( is_array ( $msg_box )) {
2018-07-17 03:33:54 -05:00
echo " <script>
2018-05-09 08:05:17 -05:00
toastr . options . timeout = 10 ;
toastr . options . extendedTimeOut = 20 ;
2018-07-17 03:33:54 -05:00
</ script >
" ;
2018-05-09 08:05:17 -05:00
foreach ( $msg_box as $message ) {
2018-07-17 03:33:54 -05:00
Toastr :: add ( $message [ 'type' ], $message [ 'message' ], $message [ 'title' ]);
2018-05-09 08:05:17 -05:00
}
}
if ( $no_refresh !== true && $config [ 'page_refresh' ] != 0 ) {
$refresh = $config [ 'page_refresh' ] * 1000 ;
echo ( ' < script type = " text/javascript " >
$ ( document ) . ready ( function () {
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-pause fa-fw fa-lg \" ></i> Pause " );
var Countdown = {
sec : '. $config[' page_refresh '] .' ,
Start : function () {
var cur = this ;
this . interval = setInterval ( function () {
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-pause fa-fw fa-lg \" ></i> Pause " );
cur . sec -= 1 ;
display_time = cur . sec ;
if ( display_time == 0 ) {
location . reload ();
}
if ( display_time % 1 === 0 && display_time <= 300 ) {
$ ( " #countdown_timer " ) . html ( " <i class= \" fa fa-clock-o fa-fw fa-lg \" ></i> Refresh in " + display_time );
}
}, 1000 );
},
Pause : function () {
clearInterval ( this . interval );
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-play fa-fw fa-lg \" ></i> Resume " );
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 ();
});
});
</ script > ' );
} else {
echo ( ' < script type = " text/javascript " >
var no_refresh = ' . var_export((bool)$no_refresh, true) . ' ;
$ ( document ) . ready ( function () {
$ ( " #countdown_timer " ) . html ( " Refresh disabled " );
$ ( " #countdown_timer_status " ) . html ( " <i class= \" fa fa-pause fa-fw fa-lg \" ></i> " );
$ ( " #countdown_timer_status " ) . click ( " " , function ( event ) {
event . preventDefault ();
});
});
</ script > ' );
}
2018-09-11 07:51:35 -05:00
echo Toastr :: render ();
2018-05-09 08:05:17 -05:00
?>
</ body >
</ html >