2010-12-03 15:56:57 +00:00
< ? php
2015-04-12 15:56:54 +00:00
include ( $config [ 'install_dir' ] . '/includes/object-cache.inc.php' );
2010-01-28 17:47:48 +00:00
2012-05-25 12:24:34 +00:00
// FIXME - this could do with some performance improvements, i think. possible rearranging some tables and setting flags at poller time (nothing changes outside of then anyways)
2012-04-20 10:36:59 +00:00
2011-05-12 20:09:10 +00:00
$service_alerts = dbFetchCell ( " SELECT COUNT(service_id) FROM services WHERE service_status = '0' " );
2012-05-16 13:25:50 +00:00
$if_alerts = dbFetchCell ( " SELECT COUNT(port_id) FROM `ports` WHERE `ifOperStatus` = 'down' AND `ifAdminStatus` = 'up' AND `ignore` = '0' " );
2011-05-12 20:09:10 +00:00
2015-03-28 13:08:55 +00:00
if ( $_SESSION [ 'userlevel' ] >= 5 ) {
$links [ 'count' ] = dbFetchCell ( " SELECT COUNT(*) FROM `links` " );
} else {
$links [ 'count' ] = dbFetchCell ( " SELECT COUNT(*) FROM `links` AS `L`, `devices` AS `D`, `devices_perms` AS `P` WHERE `P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id` AND `L`.`local_device_id` = `D`.`device_id` " , array ( $_SESSION [ 'user_id' ]));
}
2010-07-27 20:49:31 +00:00
if ( isset ( $config [ 'enable_bgp' ]) && $config [ 'enable_bgp' ])
{
2012-04-05 13:21:27 +00:00
$bgp_alerts = dbFetchCell ( " SELECT COUNT(bgpPeer_id) FROM bgpPeers AS B where (bgpPeerAdminStatus = 'start' OR bgpPeerAdminStatus = 'running') AND bgpPeerState != 'established' " );
2010-07-27 20:49:31 +00:00
}
2010-01-28 17:47:48 +00:00
2015-03-31 17:08:13 +00:00
if ( isset ( $config [ 'site_style' ]) && ( $config [ 'site_style' ] == 'dark' || $config [ 'site_style' ] == 'mono' )) {
2015-03-26 23:51:13 +00:00
$navbar = 'navbar-inverse' ;
}
2010-01-28 17:47:48 +00:00
?>
2015-03-26 23:51:13 +00:00
< nav class = " navbar navbar-default <?php echo $navbar ; ?> navbar-fixed-top " role = " navigation " >
2014-06-15 00:36:49 +00:00
< div class = " container-fluid " >
2014-01-13 10:05:19 +00:00
< div class = " navbar-header " >
2014-06-15 00:36:49 +00:00
< button type = " button " class = " navbar-toggle " data - toggle = " collapse " data - target = " #navHeaderCollapse " >
< span class = " sr-only " > Toggle navigation </ span >
< span class = " icon-bar " ></ span >
< span class = " icon-bar " ></ span >
< span class = " icon-bar " ></ span >
</ button >
2014-01-14 19:40:59 +00:00
< ? php
if ( $config [ 'title_image' ])
{
echo ( '<a class="navbar-brand" href=""><img src="' . $config [ 'title_image' ] . '" /></a>' );
}
else
{
echo ( '<a class="navbar-brand" href="">' . $config [ 'project_name' ] . '</a>' );
}
?>
2014-01-13 10:05:19 +00:00
</ div >
2014-06-15 00:36:49 +00:00
< div class = " collapse navbar-collapse " id = " navHeaderCollapse " >
2014-01-13 10:05:19 +00:00
< ul class = " nav navbar-nav " >
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " <?php echo(generate_url(array('page'=>'overview'))); ?> " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-lightbulb-o fa-fw fa-lg fa-nav-icons " ></ i > Overview </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'overview'))); ?> " >< i class = " fa fa-lightbulb-o fa-fw fa-lg " ></ i > Overview </ a ></ li >
2015-02-20 13:25:36 +00:00
< li class = " dropdown-submenu " >
2015-03-26 23:51:13 +00:00
< a href = " <?php echo(generate_url(array('page'=>'alerts'))); ?> " >< i class = " fa fa-exclamation-circle fa-fw fa-lg " ></ i > Alerts </ a >
2015-02-20 13:25:36 +00:00
< ul class = " dropdown-menu scrollable-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'alerts'))); ?> " >< i class = " fa fa-bell fa-fw fa-lg " ></ i > Alerts </ a ></ li >
< li >< a href = " <?php echo(generate_url(array('page'=>'alert-log'))); ?> " >< i class = " fa fa-th-list fa-fw fa-lg " ></ i > Alert Log </ a ></ li >
2015-04-11 23:10:48 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'alert-stats'))); ?> " >< i class = " fa fa-bar-chart fa-fw fa-lg " ></ i > Alert Stats </ a ></ li >
2014-11-30 17:49:52 +00:00
< ? php
2015-02-16 23:45:28 +00:00
if ( $_SESSION [ 'userlevel' ] >= '10' ) {
2014-11-30 17:49:52 +00:00
?>
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'alert-rules'))); ?> " >< i class = " fa fa-tasks fa-fw fa-lg " ></ i > Alert Rules </ a ></ li >
2015-04-03 18:22:29 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'alert-map'))); ?> " >< i class = " fa fa-link fa-fw fa-lg " ></ i > Alert Map </ a ></ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'templates'))); ?> " >< i class = " fa fa-sitemap fa-fw fa-lg " ></ i > Alert Templates </ a ></ li >
2014-11-30 17:49:52 +00:00
< ? php
}
?>
2015-02-20 13:25:36 +00:00
</ ul >
</ li >
2014-02-26 03:27:52 +00:00
< li role = " presentation " class = " divider " ></ li >
2014-01-13 10:05:19 +00:00
< ? php if ( isset ( $config [ 'enable_map' ]) && $config [ 'enable_map' ]) {
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="' . generate_url ( array ( 'page' => 'overview' )) . '"><i class="fa fa-globe fa-fw fa-lg"></i> Network Map</a></li>' );
2014-01-13 10:05:19 +00:00
} ?>
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'eventlog'))); ?> " >< i class = " fa fa-book fa-fw fa-lg " ></ i > Eventlog </ a ></ li >
2014-01-13 10:05:19 +00:00
< ? php if ( isset ( $config [ 'enable_syslog' ]) && $config [ 'enable_syslog' ]) {
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="' . generate_url ( array ( 'page' => 'syslog' )) . '"><i class="fa fa-book fa-fw fa-lg"></i> Syslog</a></li>' );
2014-01-13 10:05:19 +00:00
} ?>
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'inventory'))); ?> " >< i class = " fa fa-cube fa-fw fa-lg " ></ i > Inventory </ a ></ li >
2014-01-13 10:05:19 +00:00
< li role = " presentation " class = " divider " ></ li >
< li role = " presentation " class = " dropdown-header " > Search </ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " <?php echo(generate_url(array('page'=>'search','search'=>'ipv4'))); ?> " >< i class = " fa fa-search fa-fw fa-lg " ></ i > IPv4 Search </ a ></ li >
< li >< a href = " <?php echo(generate_url(array('page'=>'search','search'=>'ipv6'))); ?> " >< i class = " fa fa-search fa-fw fa-lg " ></ i > IPv6 Search </ a ></ li >
< li >< a href = " <?php echo(generate_url(array('page'=>'search','search'=>'mac'))); ?> " >< i class = " fa fa-search fa-fw fa-lg " ></ i > MAC Search </ a ></ li >
< li >< a href = " <?php echo(generate_url(array('page'=>'search','search'=>'arp'))); ?> " >< i class = " fa fa-search fa-fw fa-lg " ></ i > ARP Tables </ a ></ li >
2014-01-13 10:05:19 +00:00
</ ul >
</ li >
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " devices/ " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-server fa-fw fa-lg fa-nav-icons " ></ i > Devices </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2015-02-16 17:47:00 +00:00
< li class = " dropdown-submenu " >
2015-03-26 23:51:13 +00:00
< a href = " devices/ " >< i class = " fa fa-server fa-fw fa-lg " ></ i > All Devices </ a >
2015-02-16 17:47:00 +00:00
< ul class = " dropdown-menu scrollable-menu " >
2010-01-28 17:47:48 +00:00
< ? php
2010-07-30 17:05:25 +00:00
2015-02-16 17:47:00 +00:00
foreach ( dbFetchRows ( 'SELECT `type`,COUNT(`type`) AS total_type FROM `devices` AS D WHERE 1 GROUP BY `type` ORDER BY `type`' ) as $devtype ) {
if ( empty ( $devtype [ 'type' ])) {
2015-03-10 14:07:40 +00:00
$devtype [ 'type' ] = 'generic' ;
2015-02-16 17:47:00 +00:00
}
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="devices/type=' . $devtype [ 'type' ] . '/"><i class="fa fa-angle-double-right fa-fw fa-lg"></i> ' . ucfirst ( $devtype [ 'type' ]) . '</a></li>' );
2010-07-30 17:05:25 +00:00
}
2015-04-03 18:22:29 +00:00
require_once ( '../includes/device-groups.inc.php' );
foreach ( GetDeviceGroups () as $group ) {
echo '<li><a href="' . generate_url ( array ( 'page' => 'devices' , 'group' => $group [ 'id' ])) . '" alt="' . $group [ 'desc' ] . '"><i class="fa fa-th fa-fw fa-lg"></i> ' . ucfirst ( $group [ 'name' ]) . '</a></li>' ;
}
unset ( $group );
2015-02-16 17:47:00 +00:00
echo ( ' </ ul >
</ li > ' );
2010-07-30 17:05:25 +00:00
2015-02-16 17:47:00 +00:00
if ( $_SESSION [ 'userlevel' ] >= '10' ) {
2014-01-13 10:05:19 +00:00
if ( $config [ 'show_locations' ])
{
echo ( '
2015-03-26 23:51:13 +00:00
< li role = " presentation " class = " divider " ></ li >
2014-01-13 10:05:19 +00:00
< li class = " dropdown-submenu " >
2015-03-26 23:51:13 +00:00
< a href = " # " >< i class = " fa fa-map-marker fa-fw fa-lg " ></ i > Locations </ a >
2014-01-14 14:37:43 +00:00
< ul class = " dropdown-menu scrollable-menu " >
2014-01-13 10:05:19 +00:00
' );
if ( $config [ 'show_locations_dropdown' ])
{
foreach ( getlocations () as $location )
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="devices/location=' . urlencode ( $location ) . '/"><i class="fa fa-building-o fa-fw fa-lg"></i> ' . $location . ' </a></li>' );
2014-01-13 10:05:19 +00:00
}
}
echo ( '
</ ul >
</ li >
' );
}
2010-01-28 17:47:48 +00:00
echo ( '
2015-03-26 23:51:13 +00:00
< li role = " presentation " class = " divider " ></ li >
2015-04-03 18:22:29 +00:00
< li >< a href = " '.generate_url(array('page'=>'device-groups')).' " >< i class = " fa fa-th fa-fw fa-lg " ></ i > Manage Groups </ a ></ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " addhost/ " >< i class = " fa fa-desktop fa-col-success fa-fw fa-lg " ></ i > Add Device </ a ></ li >
< li >< a href = " delhost/ " >< i class = " fa fa-desktop fa-col-info fa-fw fa-lg " ></ i > Delete Device </ a ></ li > ' );
2010-01-28 17:47:48 +00:00
}
2015-03-28 13:08:55 +00:00
if ( $links [ 'count' ] > 0 ) {
?>
< li role = " presentation " class = " divider " ></ li >
< li >< a href = " map/ " >< img src = " images/16/chart_organisation.png " border = " 0 " alt = " Network Map " width = " 16 " height = " 16 " /> Network Map </ a ></ li >
< ? php
}
2010-01-28 17:47:48 +00:00
?>
2011-09-02 19:25:54 +00:00
</ ul >
2014-01-13 10:05:19 +00:00
</ li >
2011-09-02 19:25:54 +00:00
2011-09-06 10:07:17 +00:00
< ? php
if ( $config [ 'show_services' ])
{
?>
2014-01-13 10:05:19 +00:00
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " services/ " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-cogs fa-fw fa-lg fa-nav-icons " ></ i > Services </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " services/ " >< i class = " fa fa-cogs fa-fw fa-lg " ></ i > All Services </ a ></ li >
2011-09-02 19:25:54 +00:00
2012-01-19 10:35:27 +00:00
< ? php
if ( $service_alerts )
{
2014-01-13 10:05:19 +00:00
echo ( '
< li role = " presentation " class = " divider " ></ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " services/status=0/ " >< i class = " fa fa-bell-o fa-fw fa-lg " ></ i > Alerts ( '.$service_alerts.' ) </ a ></ li > ' );
2012-01-19 10:35:27 +00:00
}
2010-01-28 17:47:48 +00:00
2012-01-19 10:35:27 +00:00
if ( $_SESSION [ 'userlevel' ] >= '10' )
{
2010-01-28 17:47:48 +00:00
echo ( '
2014-01-13 10:05:19 +00:00
< li role = " presentation " class = " divider " ></ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " addsrv/ " >< i class = " fa fa-cog fa-col-success fa-fw fa-lg " ></ i > Add Service </ a ></ li >
< li >< a href = " delsrv/ " >< i class = " fa fa-cog fa-col-info fa-fw fa-lg " ></ i > Delete Service </ a ></ li > ' );
2010-01-28 17:47:48 +00:00
}
?>
2014-01-13 10:05:19 +00:00
</ ul >
</ li >
2011-09-02 19:25:54 +00:00
< ? php
2011-09-06 10:07:17 +00:00
}
2010-01-28 17:47:48 +00:00
?>
2011-09-02 19:25:54 +00:00
<!-- PORTS -->
2014-01-13 10:05:19 +00:00
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " ports/ " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-link fa-fw fa-lg fa-nav-icons " ></ i > Ports </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " ports/ " >< i class = " fa fa-link fa-fw fa-lg " ></ i > All Ports </ a ></ li >
2010-01-28 17:47:48 +00:00
< ? php
2015-04-12 15:56:54 +00:00
$ports = new ObjCache ( 'ports' );
2010-01-28 17:47:48 +00:00
2015-04-12 16:00:09 +00:00
if ( $ports [ 'errored' ] > 0 )
2010-12-03 15:56:57 +00:00
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="ports/errors=1/"><i class="fa fa-exclamation-circle fa-fw fa-lg"></i> Errored (' . $ports [ 'errored' ] . ')</a></li>' );
2010-01-28 17:47:48 +00:00
}
2015-04-12 16:00:09 +00:00
if ( $ports [ 'ignored' ] > 0 )
2010-12-03 15:56:57 +00:00
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="ports/ignore=1/"><i class="fa fa-question-circle fa-fw fa-lg"></i> Ignored (' . $ports [ 'ignored' ] . ')</a></li>' );
2010-02-25 22:23:48 +00:00
}
2014-01-13 10:05:19 +00:00
if ( $config [ 'enable_billing' ]) {
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="bills/"><i class="fa fa-money fa-fw fa-lg"></i> Traffic Bills</a></li>' ); $ifbreak = 1 ;
2014-01-13 10:05:19 +00:00
}
2010-01-28 17:47:48 +00:00
2014-01-13 10:05:19 +00:00
if ( $config [ 'enable_pseudowires' ]) {
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="pseudowires/"><i class="fa fa-arrows-alt fa-fw fa-lg"></i> Pseudowires</a></li>' ); $ifbreak = 1 ;
2014-01-13 10:05:19 +00:00
}
2010-01-28 17:47:48 +00:00
2010-12-03 15:56:57 +00:00
?>
2010-01-28 17:47:48 +00:00
< ? php
2010-12-03 15:56:57 +00:00
if ( $_SESSION [ 'userlevel' ] >= '5' )
{
2014-01-13 10:05:19 +00:00
echo ( ' <li role="presentation" class="divider"></li>' );
2015-03-26 23:51:13 +00:00
if ( $config [ 'int_customers' ]) { echo ( ' <li><a href="customers/"><i class="fa fa-users fa-fw fa-lg"></i> Customers</a></li>' ); $ifbreak = 1 ; }
if ( $config [ 'int_l2tp' ]) { echo ( ' <li><a href="iftype/type=l2tp/"><i class="fa fa-link fa-fw fa-lg"></i> L2TP</a></li>' ); $ifbreak = 1 ; }
if ( $config [ 'int_transit' ]) { echo ( ' <li><a href="iftype/type=transit/"><i class="fa fa-truck fa-fw fa-lg"></i> Transit</a></li>' ); $ifbreak = 1 ; }
if ( $config [ 'int_peering' ]) { echo ( ' <li><a href="iftype/type=peering/"><i class="fa fa-user-plus fa-fw fa-lg"></i> Peering</a></li>' ); $ifbreak = 1 ; }
if ( $config [ 'int_peering' ] && $config [ 'int_transit' ]) { echo ( ' <li><a href="iftype/type=peering,transit/"><i class="fa fa-user-secret fa-fw fa-lg"></i> Peering + Transit</a></li>' ); $ifbreak = 1 ; }
if ( $config [ 'int_core' ]) { echo ( ' <li><a href="iftype/type=core/"><i class="fa fa-anchor fa-fw fa-lg"></i> Core</a></li>' ); $ifbreak = 1 ; }
2010-01-28 17:47:48 +00:00
}
2014-01-13 10:05:19 +00:00
if ( $ifbreak ) {
echo ( ' <li role="presentation" class="divider"></li>' );
}
2010-01-28 17:47:48 +00:00
2010-12-03 15:56:57 +00:00
if ( isset ( $interface_alerts ))
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="ports/alerted=yes/"><i class="fa fa-exclamation-circle fa-fw fa-lg"></i> Alerts (' . $interface_alerts . ')</a></li>' );
2010-01-28 17:47:48 +00:00
}
2010-12-03 15:56:57 +00:00
$deleted_ports = 0 ;
2011-05-12 20:09:10 +00:00
foreach ( dbFetchRows ( " SELECT * FROM `ports` AS P, `devices` as D WHERE P.`deleted` = '1' AND D.device_id = P.device_id " ) as $interface )
2010-12-03 15:56:57 +00:00
{
2012-05-16 13:25:50 +00:00
if ( port_permitted ( $interface [ 'port_id' ], $interface [ 'device_id' ]))
2010-12-03 15:56:57 +00:00
{
$deleted_ports ++ ;
2010-04-24 22:58:36 +00:00
}
2010-12-03 15:56:57 +00:00
}
2010-01-28 17:47:48 +00:00
?>
2015-03-26 23:51:13 +00:00
< li >< a href = " ports/state=down/ " >< i class = " fa fa-chain-broken fa-col-success fa-fw fa-lg " ></ i > Down </ a ></ li >
< li >< a href = " ports/state=admindown/ " >< i class = " fa fa-chain-broken fa-col-info fa-fw fa-lg " ></ i > Disabled </ a ></ li >
2010-06-10 19:47:50 +00:00
< ? php
2010-04-24 22:58:36 +00:00
2015-03-26 23:51:13 +00:00
if ( $deleted_ports ) { echo ( ' <li><a href="deleted-ports/"><i class="fa fa-minus-circle fa-col-primary fa-fw fa-lg"></i> Deleted (' . $deleted_ports . ')</a></li>' ); }
2010-04-24 22:58:36 +00:00
?>
2011-09-02 19:25:54 +00:00
2014-01-13 10:05:19 +00:00
</ ul >
</ li >
2011-04-21 10:37:23 +00:00
< ? php
2012-05-25 12:24:34 +00:00
// FIXME does not check user permissions...
2011-05-12 20:09:10 +00:00
foreach ( dbFetchRows ( " SELECT sensor_class,COUNT(sensor_id) AS c FROM sensors GROUP BY sensor_class ORDER BY sensor_class " ) as $row )
2011-04-21 10:37:23 +00:00
{
$used_sensors [ $row [ 'sensor_class' ]] = $row [ 'c' ];
}
# Copy the variable so we can use $used_sensors later in other parts of the code
$menu_sensors = $used_sensors ;
?>
2010-02-11 23:37:41 +00:00
2014-01-13 10:05:19 +00:00
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " health/ " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-heartbeat fa-fw fa-lg fa-nav-icons " ></ i > Health </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " health/metric=mempool/ " >< i class = " fa fa-gears fa-fw fa-lg " ></ i > Memory </ a ></ li >
< li >< a href = " health/metric=processor/ " >< i class = " fa fa-desktop fa-fw fa-lg " ></ i > Processor </ a ></ li >
< li >< a href = " health/metric=storage/ " >< i class = " fa fa-database fa-fw fa-lg " ></ i > Storage </ a ></ li >
2011-04-21 10:37:23 +00:00
< ? php
if ( $menu_sensors )
{
$sep = 0 ;
2014-01-13 10:05:19 +00:00
echo ( ' <li role="presentation" class="divider"></li>' );
2011-04-21 10:37:23 +00:00
}
2015-03-26 23:51:13 +00:00
$icons = array ( 'fanspeed' => 'tachometer' , 'humidity' => 'tint' , 'temperature' => 'fire' , 'current' => 'bolt' , 'frequency' => 'line-chart' , 'power' => 'power-off' , 'voltage' => 'bolt' );
2011-04-21 10:37:23 +00:00
foreach ( array ( 'fanspeed' , 'humidity' , 'temperature' ) as $item )
{
2015-03-01 17:06:38 +00:00
if ( isset ( $menu_sensors [ $item ]))
2011-04-21 10:37:23 +00:00
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="health/metric=' . $item . '/"><i class="fa fa-' . $icons [ $item ] . ' fa-fw fa-lg"></i> ' . nicecase ( $item ) . '</a></li>' );
2011-04-21 10:37:23 +00:00
unset ( $menu_sensors [ $item ]); $sep ++ ;
}
}
2015-03-26 23:51:13 +00:00
if ( $sep && array_keys ( $menu_sensors ))
2011-04-21 10:37:23 +00:00
{
2014-01-13 10:05:19 +00:00
echo ( ' <li role="presentation" class="divider"></li>' );
2011-09-19 13:59:08 +00:00
$sep = 0 ;
}
foreach ( array ( 'current' , 'frequency' , 'power' , 'voltage' ) as $item )
{
2015-03-01 17:06:38 +00:00
if ( isset ( $menu_sensors [ $item ]))
2011-09-19 13:59:08 +00:00
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="health/metric=' . $item . '/"><i class="fa fa-' . $icons [ $item ] . ' fa-fw fa-lg"></i> ' . nicecase ( $item ) . '</a></li>' );
2011-09-19 13:59:08 +00:00
unset ( $menu_sensors [ $item ]); $sep ++ ;
}
}
if ( $sep && array_keys ( $menu_sensors ))
{
2014-01-13 10:05:19 +00:00
echo ( ' <li role="presentation" class="divider"></li>' );
2011-04-21 10:37:23 +00:00
$sep = 0 ;
}
2011-09-19 13:59:08 +00:00
2011-04-27 14:29:11 +00:00
foreach ( array_keys ( $menu_sensors ) as $item )
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="health/metric=' . $item . '/"><i class="fa fa-' . $icons [ $item ] . ' fa-fw fa-lg"></i> ' . nicecase ( $item ) . '</a></li>' );
2011-04-27 14:29:11 +00:00
unset ( $menu_sensors [ $item ]); $sep ++ ;
}
2011-04-21 10:37:23 +00:00
?>
2014-01-13 10:05:19 +00:00
</ ul >
</ li >
2010-01-28 17:47:48 +00:00
< ? php
2011-04-30 22:20:11 +00:00
2012-04-20 10:36:59 +00:00
$app_count = dbFetchCell ( " SELECT COUNT(`app_id`) FROM `applications` " );
if ( $_SESSION [ 'userlevel' ] >= '5' && ( $app_count ) > " 0 " )
{
?>
2014-01-13 10:05:19 +00:00
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " apps/ " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-tasks fa-fw fa-lg fa-nav-icons " ></ i > Apps </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2012-04-20 10:36:59 +00:00
< ? php
2012-04-20 17:37:58 +00:00
$app_list = dbFetchRows ( " SELECT `app_type` FROM `applications` GROUP BY `app_type` ORDER BY `app_type` " );
foreach ( $app_list as $app )
2012-04-20 10:36:59 +00:00
{
2015-03-10 14:13:32 +00:00
if ( isset ( $app [ 'app_type' ])) {
$image = $config [ 'html_dir' ] . " /images/icons/ " . $app [ 'app_type' ] . " .png " ;
$icon = ( file_exists ( $image ) ? $app [ 'app_type' ] : " apps " );
2012-04-20 10:36:59 +00:00
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " apps/app='. $app['app_type'] .'/ " >< i class = " fa fa-angle-double-right fa-fw fa-lg " ></ i > '.nicecase($app[' app_type ']).' </ a ></ li > ' );
2015-03-01 17:06:38 +00:00
}
2012-04-20 10:36:59 +00:00
}
?>
</ ul >
2014-01-13 10:05:19 +00:00
</ li >
2012-04-20 10:36:59 +00:00
< ? php
}
2014-10-29 19:52:50 +00:00
$routing_count [ 'bgp' ] = dbFetchCell ( " SELECT COUNT(bgpPeer_id) from `bgpPeers` LEFT JOIN devices AS D ON bgpPeers.device_id=D.device_id WHERE D.device_id IS NOT NULL " );
2012-04-05 13:21:27 +00:00
$routing_count [ 'ospf' ] = dbFetchCell ( " SELECT COUNT(ospf_instance_id) FROM `ospf_instances` WHERE `ospfAdminStat` = 'enabled' " );
$routing_count [ 'cef' ] = dbFetchCell ( " SELECT COUNT(cef_switching_id) from `cef_switching` " );
$routing_count [ 'vrf' ] = dbFetchCell ( " SELECT COUNT(vrf_id) from `vrfs` " );
2011-04-30 22:20:11 +00:00
2011-05-05 14:23:09 +00:00
if ( $_SESSION [ 'userlevel' ] >= '5' && ( $routing_count [ 'bgp' ] + $routing_count [ 'ospf' ] + $routing_count [ 'cef' ] + $routing_count [ 'vrf' ]) > " 0 " )
2011-03-31 17:19:54 +00:00
{
2011-04-17 12:00:13 +00:00
2011-09-02 19:25:54 +00:00
?>
2014-01-13 10:05:19 +00:00
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " routing/ " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-arrows fa-fw fa-lg fa-nav-icons " ></ i > Routing </ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
2011-09-02 19:25:54 +00:00
< ? php
2012-02-15 20:59:40 +00:00
$separator = 0 ;
if ( $_SESSION [ 'userlevel' ] >= '5' && $routing_count [ 'vrf' ])
{
2015-03-26 23:51:13 +00:00
echo ( ' <li><a href="routing/protocol=vrf/"><i class="fa fa-arrows-alt fa-fw fa-lg"></i> VRFs</a></li>' );
2012-02-15 20:59:40 +00:00
$separator ++ ;
}
2011-04-30 22:20:11 +00:00
if ( $_SESSION [ 'userlevel' ] >= '5' && $routing_count [ 'ospf' ])
{
2012-04-08 16:09:58 +00:00
if ( $separator )
{
2014-01-13 10:05:19 +00:00
echo ( ' <li role="presentation" class="divider"></li>' );
2012-04-08 16:09:58 +00:00
$separator = 0 ;
}
2011-04-30 22:20:11 +00:00
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " routing/protocol=ospf/ " >< i class = " fa fa-circle-o-notch fa-rotate-180 fa-fw fa-lg " ></ i > OSPF Devices </ a ></ li > ' );
2012-02-15 20:59:40 +00:00
$separator ++ ;
2011-04-30 22:20:11 +00:00
}
2012-05-25 12:24:34 +00:00
// BGP Sessions
2011-04-30 22:20:11 +00:00
if ( $_SESSION [ 'userlevel' ] >= '5' && $routing_count [ 'bgp' ])
2011-04-17 12:00:13 +00:00
{
2012-02-15 20:59:40 +00:00
if ( $separator )
{
2014-01-13 10:05:19 +00:00
echo ( ' <li role="presentation" class="divider"></li>' );
2012-02-15 20:59:40 +00:00
$separator = 0 ;
}
2011-04-17 12:00:13 +00:00
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " routing/protocol=bgp/type=all/graph=NULL/ " >< i class = " fa fa-link fa-fw fa-lg " ></ i > BGP All Sessions </ a ></ li >
< li >< a href = " routing/protocol=bgp/type=external/graph=NULL/ " >< i class = " fa fa-external-link fa-fw fa-lg " ></ i > BGP External </ a ></ li >
2015-03-31 13:03:39 +00:00
< li >< a href = " routing/protocol=bgp/type=internal/graph=NULL/ " >< i class = " fa fa-external-link fa-rotate-180 fa-fw fa-lg " ></ i > BGP Internal </ a ></ li > ' );
2011-04-17 12:00:13 +00:00
}
2010-01-28 17:47:48 +00:00
2012-05-25 12:24:34 +00:00
// Do Alerts at the bottom
2011-04-17 12:00:13 +00:00
if ( $bgp_alerts )
2012-02-16 23:18:49 +00:00
{
2011-04-17 12:00:13 +00:00
echo ( '
2014-01-13 10:05:19 +00:00
< li role = " presentation " class = " divider " ></ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " routing/protocol=bgp/adminstatus=start/state=down/ " >< i class = " fa fa-exclamation-circle fa-fw fa-lg " ></ i > Alerted BGP ( ' . $bgp_alerts . ' ) </ a ></ li >
2011-04-17 12:00:13 +00:00
' );
}
2014-01-13 10:05:19 +00:00
echo ( ' </ul>' );
2011-09-20 09:55:11 +00:00
?>
2014-01-13 10:05:19 +00:00
</ li ><!-- End 4 columns container -->
2010-01-28 17:47:48 +00:00
2011-09-02 19:25:54 +00:00
< ? php
}
2012-04-05 13:11:20 +00:00
2015-01-07 09:22:39 +00:00
if ( dbFetchCell ( " SELECT 1 from `packages` LIMIT 1 " ) ) {
2010-01-28 17:47:48 +00:00
?>
2015-01-07 09:22:39 +00:00
< li >
2015-03-26 23:51:13 +00:00
< a href = " <?php echo(generate_url(array('page'=>'search','search'=>'packages'))); ?> " >< i class = " fa fa-archive fa-fw fa-lg " ></ i > Packages </ a >
2014-01-13 10:05:19 +00:00
</ li >
2012-04-05 13:11:20 +00:00
< ? php
} # if ($packages)
2014-03-12 22:03:47 +00:00
?>
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " # " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-plug fa-fw fa-lg fa-nav-icons " ></ i > Plugins </ a >
2014-03-12 22:03:47 +00:00
< ul class = " dropdown-menu " >
< ? php
Plugins :: call ( 'menu' );
2015-03-26 23:51:13 +00:00
2014-03-12 22:03:47 +00:00
if ( $_SESSION [ 'userlevel' ] >= '10' )
{
2015-04-15 23:50:13 +00:00
if ( dbFetchCell ( " SELECT COUNT(*) from `plugins` WHERE plugin_active = '1' " ) > 0 ) {
echo ( '
2015-03-26 23:51:13 +00:00
< li role = " presentation " class = " divider " ></ li >
2015-04-15 23:50:13 +00:00
' );
}
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " plugin/view=admin " > < i class = " fa fa-lock fa-fw fa-lg " ></ i > Plugin Admin </ a ></ li >
' );
2014-03-12 22:03:47 +00:00
}
?>
</ ul >
</ li >
2012-04-05 13:41:54 +00:00
2014-03-12 22:03:47 +00:00
< ? php
2012-05-25 12:24:34 +00:00
// Custom menubar entries.
2012-04-05 13:41:54 +00:00
if ( is_file ( " includes/print-menubar-custom.inc.php " ))
{
include ( " includes/print-menubar-custom.inc.php " );
}
2012-04-05 13:11:20 +00:00
?>
2014-01-13 10:05:19 +00:00
2015-03-12 23:26:47 +00:00
</ ul >
< form role = " search " class = " navbar-form navbar-right " >
< div class = " form-group " >
< input class = " form-control " type = " search " id = " gsearch " name = " gsearch " placeholder = " Global Search " >
</ div >
</ form >
< ul class = " nav navbar-nav navbar-right " >
2014-01-13 10:05:19 +00:00
< li class = " dropdown " >
2015-03-31 11:17:41 +00:00
< a href = " # " class = " dropdown-toggle " data - hover = " dropdown " data - toggle = " dropdown " >< i class = " fa fa-cog fa-fw fa-lg fa-nav-icons " ></ i ></ a >
2014-01-13 10:05:19 +00:00
< ul class = " dropdown-menu " >
< li role = " presentation " class = " dropdown-header " > Settings </ li >
< li role = " presentation " class = " divider " ></ li >
2012-01-19 10:35:27 +00:00
< ? php
if ( $_SESSION [ 'userlevel' ] >= '10' )
{
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " settings/ " >< i class = " fa fa-cogs fa-fw fa-lg " ></ i > Global Settings </ a ></ li > ' );
2012-01-19 10:35:27 +00:00
}
?>
2015-03-26 23:51:13 +00:00
< li >< a href = " preferences/ " >< i class = " fa fa-cog fa-fw fa-lg " ></ i > My Settings </ a ></ li >
2014-01-13 10:05:19 +00:00
< li role = " presentation " class = " divider " ></ li >
< li role = " presentation " class = " dropdown-header " > Users </ li >
2011-09-02 19:25:54 +00:00
2012-05-03 13:52:34 +00:00
< ? php if ( $_SESSION [ 'userlevel' ] >= '10' )
{
2010-03-06 01:10:05 +00:00
if ( auth_usermanagement ())
{
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " adduser/ " >< i class = " fa fa-user-plus fa-fw fa-lg " ></ i > Add User </ a ></ li >
< li >< a href = " deluser/ " >< i class = " fa fa-user-times fa-fw fa-lg " ></ i > Remove User </ a ></ li >
2011-09-02 19:25:54 +00:00
' );
2010-03-06 01:10:05 +00:00
}
2010-11-20 14:04:07 +00:00
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " edituser/ " >< i class = " fa fa-user-secret fa-fw fa-lg " ></ i > Edit User </ a ></ li >
< li >< a href = " authlog/ " >< i class = " fa fa-key fa-fw fa-lg " ></ i > Authlog </ a ></ li >
2014-07-16 22:10:18 +00:00
< li role = " presentation " class = " divider " ></ li >
2015-03-18 19:25:09 +00:00
' );
echo ( '
2015-03-02 17:02:28 +00:00
< li class = " dropdown-submenu " >
2015-03-26 23:51:13 +00:00
< a href = " # " >< i class = " fa fa-clock-o fa-fw fa-lg " ></ i > Pollers </ a >
2015-03-02 17:02:28 +00:00
< ul class = " dropdown-menu scrollable-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " /poll-log/ " >< i class = " fa fa-exclamation fa-fw fa-lg " ></ i > Poll - log </ a ></ li >
2015-03-25 21:05:51 +00:00
' );
if ( $config [ 'distributed_poller' ] === TRUE ) {
echo ( '
2015-03-26 23:51:13 +00:00
< li >< a href = " /pollers/tab=pollers/ " >< i class = " fa fa-clock-o fa-fw fa-lg " ></ i > Pollers </ a ></ li >
< li >< a href = " /pollers/tab=groups/ " >< i class = " fa fa-gears fa-fw fa-lg " ></ i > Groups </ a ></ li >
2015-03-25 21:05:51 +00:00
' );
}
echo ( '
2015-03-02 17:02:28 +00:00
</ ul >
</ li >
< li role = " presentation " class = " divider " ></ li >
2015-03-18 19:25:09 +00:00
' );
echo ( '
2014-07-16 22:10:18 +00:00
< li class = " dropdown-submenu " >
2015-03-26 23:51:13 +00:00
< a href = " # " >< i class = " fa fa-code fa-fw fa-lg " ></ i > API </ a >
2014-07-16 22:10:18 +00:00
< ul class = " dropdown-menu scrollable-menu " >
2015-03-26 23:51:13 +00:00
< li >< a href = " api-access/ " >< i class = " fa fa-wrench fa-fw fa-lg " ></ i > API Settings </ a ></ li >
< li >< a href = " http://docs.librenms.org/API/API-Docs/ " target = " _blank " >< i class = " fa fa-book fa-fw fa-lg " ></ i > API Documentation </ a ></ li >
2014-07-16 22:10:18 +00:00
</ ul >
2015-03-08 21:33:40 +00:00
</ li >
2014-07-16 22:10:18 +00:00
< li role = " presentation " class = " divider " ></ li > ' );
2010-01-28 17:47:48 +00:00
} ?>
2014-01-13 10:05:19 +00:00
< ? php
if ( $_SESSION [ 'authenticated' ])
{
echo ( '
2015-03-08 21:33:40 +00:00
< li class = " dropdown-submenu " >
< a href = " # " >< span class = " countdown_timer " id = " countdown_timer " ></ span ></ a >
< ul class = " dropdown-menu scrollable-menu " >
< li >< a href = " # " >< span class = " countdown_timer_status " id = " countdown_timer_status " ></ span ></ a ></ li >
</ ul >
</ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " logout/ " >< i class = " fa fa-sign-out fa-fw fa-lg " ></ i > Logout </ a ></ li >
2014-01-13 10:05:19 +00:00
' );
}
?>
2011-09-02 19:25:54 +00:00
2014-01-13 10:05:19 +00:00
< li role = " presentation " class = " divider " ></ li >
2015-03-26 23:51:13 +00:00
< li >< a href = " about/ " >< i class = " fa fa-exclamation-circle fa-fw fa-lg " ></ i > About & nbsp ; < ? php echo ( $config [ 'project_name' ]); ?> </a></li>
2014-01-13 10:05:19 +00:00
</ ul >
</ li >
</ ul >
</ div >
</ div >
</ nav >
< script >
$ ( '#gsearch' ) . typeahead ([
{
name : 'devices' ,
remote : 'ajax_search.php?search=%QUERY&type=device' ,
2014-03-18 22:36:22 +00:00
header : '<h5><strong> Devices</strong></h5>' ,
2014-06-10 23:15:27 +00:00
template : '<a href="{{url}}"><p><img src="{{device_image}}" border="0" class="img_left"> <small><strong>{{name}}</strong> | {{device_os}} | {{version}} | {{device_hardware}} with {{device_ports}} port(s) | {{location}}</small></p></a>' ,
2014-01-13 10:05:19 +00:00
valueKey : " name " ,
engine : Hogan
},
{
name : 'ports' ,
remote : 'ajax_search.php?search=%QUERY&type=ports' ,
2014-03-18 22:36:22 +00:00
header : '<h5><strong> Ports</strong></h5>' ,
2015-02-15 14:30:40 +00:00
template : '<a href="{{url}}"><p><small><img src="images/icons/port.png" /> <strong>{{name}}</strong> – {{hostname}}<br /><i>{{description}}</i></small></p></a>' ,
2014-01-13 10:05:19 +00:00
valueKey : " name " ,
engine : Hogan
2014-03-18 22:36:22 +00:00
},
{
name : 'bgp' ,
remote : 'ajax_search.php?search=%QUERY&type=bgp' ,
header : '<h5><strong> BGP</strong></h5>' ,
2014-06-10 23:15:27 +00:00
template : '<a href="{{url}}"><p><small><img src="{{bgp_image}}" border="0" class="img_left">{{name}} - {{hostname}}<br />AS{{localas}} -> AS{{remoteas}}</small></p></a>' ,
valueKey : " name " ,
2014-03-18 22:36:22 +00:00
engine : Hogan
2014-01-13 10:05:19 +00:00
}
]);
</ script >