2009-10-02 13:20:24 +00:00
<? php
2011-09-18 18:22:07 +00:00
function rrdtool_graph ( $graph_file , $options )
2011-09-18 15:38:05 +00:00
{
2011-09-18 18:22:07 +00:00
global $config , $debug ;
2011-09-20 14:37:54 +00:00
if ( $debug ) { echo ( " $options " ); }
2011-09-19 02:32:58 +00:00
2011-09-19 11:09:24 +00:00
$command = $config [ 'rrdtool' ] . " -" ;
2011-09-18 15:38:05 +00:00
$descriptorspec = array (
0 => array ( "pipe" , "r" ), // stdin is a pipe that the child will read from
1 => array ( "pipe" , "w" ), // stdout is a pipe that the child will write to
2 => array ( "file" , "/tmp/error-output.txt" , "a" ) // stderr is a file to write to
);
$cwd = $config [ 'rrd_dir' ];
$env = array ();
$process = proc_open ( $command , $descriptorspec , $pipes , $cwd , $env );
if ( is_resource ( $process )) {
// $pipes now looks like this:
// 0 => writeable handle connected to child stdin
// 1 => readable handle connected to child stdout
// Any error output will be appended to /tmp/error-output.txt
2011-09-19 11:09:24 +00:00
if ( $config [ 'rrdcached' ]) {
fwrite ( $pipes [ 0 ], "graph --daemon " . $config [ 'rrdcached' ] . " $graph_file $options " );
} else {
fwrite ( $pipes [ 0 ], "graph $graph_file $options " );
}
2011-09-18 15:38:05 +00:00
fclose ( $pipes [ 0 ]);
fclose ( $pipes [ 1 ]);
// It is important that you close any pipes before calling
// proc_close in order to avoid a deadlock
$return_value = proc_close ( $process );
2011-09-18 22:55:29 +00:00
2011-09-20 14:37:54 +00:00
if ( $debug )
2011-09-18 22:55:29 +00:00
{
echo ( "<p>" );
2011-09-20 14:37:54 +00:00
if ( $debug ) { echo ( "graph $graph_file $options " ); }
2011-09-18 22:55:29 +00:00
echo ( "</p><p>" );
echo "command returned $return_value \n " ;
echo ( "</p>" );
}
2011-09-18 15:38:05 +00:00
}
}
2011-09-18 13:11:04 +00:00
function generate_link ( $text , $vars , $new_vars = array ())
{
return '<a href="' . generate_url ( $vars , $new_vars ) . '">' . $text . '</a>' ;
}
2011-09-17 19:14:44 +00:00
2011-09-14 13:38:01 +00:00
function generate_url ( $vars , $new_vars = array ())
{
$vars = array_merge ( $vars , $new_vars );
2011-09-17 18:31:49 +00:00
$url = $vars [ 'page' ] . "/" ;
2011-09-14 13:38:01 +00:00
unset ( $vars [ 'page' ]);
foreach ( $vars as $var => $value )
{
2011-09-20 14:37:54 +00:00
if ( $value != "" )
2011-09-14 13:38:01 +00:00
{
$url .= $var . "=" . $value . "/" ;
}
}
return ( $url );
}
2011-09-17 19:14:44 +00:00
function generate_overlib_content ( $graph_array , $text )
{
global $config ;
$overlib_content = '<div style="width: 580px;"><h2>' . $text . "</h2>" ;
foreach ( array ( 'day' , 'week' , 'month' , 'year' ) as $period )
{
$graph_array [ 'from' ] = $config [ 'time' ][ $period ];
$overlib_content .= str_replace ( '"' , "\'" , generate_graph_tag ( $graph_array ));
}
$overlib_content .= "</div>" ;
return $overlib_content ;
}
2011-09-14 13:38:01 +00:00
2011-04-25 17:15:36 +00:00
function get_percentage_colours ( $percentage )
{
if ( $percentage > '90' ) { $background [ 'left' ] = 'c4323f' ; $background [ 'right' ] = 'C96A73' ; }
elseif ( $percentage > '75' ) { $background [ 'left' ] = 'bf5d5b' ; $background [ 'right' ] = 'd39392' ; }
elseif ( $percentage > '50' ) { $background [ 'left' ] = 'bf875b' ; $background [ 'right' ] = 'd3ae92' ; }
elseif ( $percentage > '25' ) { $background [ 'left' ] = '5b93bf' ; $background [ 'right' ] = '92b7d3' ; }
else { $background [ 'left' ] = '9abf5b' ; $background [ 'right' ] = 'bbd392' ; }
return ( $background );
}
2011-09-18 13:11:04 +00:00
function generate_device_url ( $device , $vars = array ())
2011-05-17 19:21:20 +00:00
{
2011-09-18 13:11:04 +00:00
return generate_url ( array ( 'page' => 'device' , 'device' => $device [ 'device_id' ]), $vars );
2011-05-17 19:21:20 +00:00
}
2011-09-18 13:11:04 +00:00
function generate_device_link ( $device , $text = 0 , $vars = array (), $start = 0 , $end = 0 )
2010-06-24 18:04:42 +00:00
{
2011-05-17 19:21:20 +00:00
global $config ;
if ( ! $start ) { $start = $config [ 'time' ][ 'day' ]; }
if ( ! $end ) { $end = $config [ 'time' ][ 'now' ]; }
2011-02-02 11:59:08 +00:00
2010-06-24 18:04:42 +00:00
$class = devclass ( $device );
if ( ! $text ) { $text = $device [ 'hostname' ]; }
2011-02-02 11:59:08 +00:00
2010-07-23 15:05:01 +00:00
if ( isset ( $config [ 'os' ][ $device [ 'os' ]][ 'over' ]))
2010-06-24 18:04:42 +00:00
{
2010-07-23 15:05:01 +00:00
$graphs = $config [ 'os' ][ $device [ 'os' ]][ 'over' ];
2010-06-24 18:04:42 +00:00
}
2011-05-05 14:39:50 +00:00
elseif ( isset ( $device [ 'os_group' ]) && isset ( $config [ 'os' ][ $device [ 'os_group' ]][ 'over' ]))
2010-06-25 13:04:03 +00:00
{
2010-07-23 15:05:01 +00:00
$graphs = $config [ 'os' ][ $device [ 'os_group' ]][ 'over' ];
2011-03-16 18:28:52 +00:00
}
2010-06-24 18:04:42 +00:00
else
{
2011-03-16 18:28:52 +00:00
$graphs = $config [ 'os' ][ 'default' ][ 'over' ];
2010-06-24 18:04:42 +00:00
}
2011-09-18 13:11:04 +00:00
$url = generate_device_url ( $device , $vars );
2010-07-24 19:14:41 +00:00
$contents = "<div class=list-large>" . $device [ 'hostname' ];
2011-03-16 18:28:52 +00:00
if ( $device [ 'hardware' ]) { $contents .= " - " . $device [ 'hardware' ]; }
2010-07-24 19:14:41 +00:00
$contents .= "</div>" ;
2010-07-23 13:40:31 +00:00
$contents .= "<div>" ;
2011-03-16 18:28:52 +00:00
if ( $device [ 'os' ]) { $contents .= mres ( $config [ 'os' ][ $device [ 'os' ]][ 'text' ]); }
if ( $device [ 'version' ]) { $contents .= " " . mres ( $device [ 'version' ]); }
if ( $device [ 'features' ]) { $contents .= " (" . mres ( $device [ 'features' ]) . ")" ; }
# if ($device['hardware']) { $contents .= " - ".$device['hardware']; }
2010-07-23 13:40:31 +00:00
$contents .= "</div>" ;
2010-07-24 19:14:41 +00:00
# if (isset($device['location'])) { $contents .= "" . htmlentities($device['location'])."<br />"; }
2010-07-23 15:05:01 +00:00
foreach ( $graphs as $entry )
2010-06-24 18:04:42 +00:00
{
2010-07-23 15:05:01 +00:00
$graph = $entry [ 'graph' ];
2011-03-16 18:28:52 +00:00
$graphhead = $entry [ 'text' ];
2010-07-23 15:05:01 +00:00
$contents .= '<div style="width: 708px">' ;
$contents .= '<span style="margin-left: 5px; font-size: 12px; font-weight: bold;">' . $graphhead . '</span><br />' ;
2011-04-21 13:41:24 +00:00
$contents .= "<img src= \" graph.php?id=" . $device [ 'device_id' ] . "&from= $start &to= $end &width=275&height=100&type= $graph &legend=no" . '" style="margin: 2px;">' ;
2011-05-17 19:21:20 +00:00
$contents .= "<img src= \" graph.php?id=" . $device [ 'device_id' ] . "&from=" . $config [ 'time' ][ 'week' ] . "&to= $end &width=275&height=100&type= $graph &legend=no" . '" style="margin: 2px;">' ;
2010-07-23 15:05:01 +00:00
$contents .= '</div>' ;
2010-06-24 18:04:42 +00:00
}
2011-03-16 18:28:52 +00:00
2010-06-24 18:04:42 +00:00
$text = htmlentities ( $text );
$link = overlib_link ( $url , $text , $contents , $class );
2011-03-16 18:28:52 +00:00
if ( device_permitted ( $device [ 'device_id' ]))
{
2010-06-24 18:04:42 +00:00
return $link ;
} else {
return $device [ 'hostname' ];
}
return $link ;
}
2011-03-16 18:28:52 +00:00
function overlib_link ( $url , $text , $contents , $class )
{
2010-05-02 23:24:47 +00:00
global $config ;
2011-03-16 18:28:52 +00:00
2010-05-02 23:24:47 +00:00
$contents = str_replace ( " \" " , "\'" , $contents );
$output = "<a class='" . $class . "' href='" . $url . "'" ;
$output .= " onmouseover= \" return overlib('" . $contents . "'" . $config [ 'overlib_defaults' ] . "); \" onmouseout= \" return nd(); \" >" ;
$output .= $text . "</a>" ;
2011-03-16 18:28:52 +00:00
2010-05-02 23:24:47 +00:00
return $output ;
}
2011-03-16 18:28:52 +00:00
function generate_graph_popup ( $graph_array )
2010-05-02 23:24:47 +00:00
{
global $config ;
2011-09-20 14:37:54 +00:00
2010-05-02 23:24:47 +00:00
## Take $graph_array and print day,week,month,year graps in overlib, hovered over graph
$graph = generate_graph_tag ( $graph_array );
$content = "<div class=list-large>" . $graph_array [ 'popup_title' ] . "</div>" ;
$content .= "<div style=\'width: 850px\'>" ;
$graph_array [ 'legend' ] = "yes" ;
$graph_array [ 'height' ] = "100" ;
$graph_array [ 'width' ] = "340" ;
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'day' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'week' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'month' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'year' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
$content .= "</div>" ;
2011-09-20 16:09:54 +00:00
$graph_array [ 'link' ] = "graphs/type=" . $graph_array [ 'type' ] . "/id=" . $graph_array [ 'id' ];
2010-05-02 23:24:47 +00:00
2011-03-31 10:51:02 +00:00
return overlib_link ( $graph_array [ 'link' ], $graph , $content , NULL );
2010-05-02 23:24:47 +00:00
}
function print_graph_popup ( $graph_array )
{
2010-11-20 14:04:07 +00:00
echo ( generate_graph_popup ( $graph_array ));
2010-05-02 23:24:47 +00:00
}
2011-03-16 18:28:52 +00:00
function permissions_cache ( $user_id )
2010-07-31 21:08:35 +00:00
{
2010-04-24 14:23:16 +00:00
$permissions = array ();
2011-05-12 20:16:03 +00:00
foreach ( dbFetchRows ( "SELECT * FROM devices_perms WHERE user_id = '" . $user_id . "'" ) as $device )
2011-03-16 18:28:52 +00:00
{
$permissions [ 'device' ][ $device [ 'device_id' ]] = 1 ;
2010-04-24 14:23:16 +00:00
}
2011-05-12 20:16:03 +00:00
foreach ( dbFetchRows ( "SELECT * FROM ports_perms WHERE user_id = '" . $user_id . "'" ) as $port )
2011-03-16 18:28:52 +00:00
{
2010-06-10 20:13:41 +00:00
$permissions [ 'port' ][ $port [ 'interface_id' ]] = 1 ;
2010-04-24 14:23:16 +00:00
}
2011-05-12 20:16:03 +00:00
foreach ( dbFetchRows ( "SELECT * FROM bill_perms WHERE user_id = '" . $user_id . "'" ) as $bill )
2011-03-16 18:28:52 +00:00
{
2010-07-31 21:08:35 +00:00
$permissions [ 'bill' ][ $bill [ 'bill_id' ]] = 1 ;
}
2011-03-31 10:51:02 +00:00
2010-04-24 14:23:16 +00:00
return $permissions ;
}
2011-03-16 18:28:52 +00:00
function bill_permitted ( $bill_id )
2010-07-31 21:08:35 +00:00
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2011-03-16 18:28:52 +00:00
2010-07-31 21:08:35 +00:00
if ( $_SESSION [ 'userlevel' ] >= "5" ) {
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( $permissions [ 'bill' ][ $bill_id ]) {
2010-07-31 21:08:35 +00:00
$allowed = TRUE ;
} else {
$allowed = FALSE ;
}
2011-03-16 18:28:52 +00:00
return $allowed ;
2010-07-31 21:08:35 +00:00
}
2011-03-16 18:28:52 +00:00
2010-08-01 14:17:06 +00:00
function port_permitted ( $interface_id , $device_id = NULL )
2010-04-24 22:43:25 +00:00
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2010-08-01 14:17:06 +00:00
2011-03-16 18:28:52 +00:00
if ( ! is_numeric ( $device_id )) { $device_id = get_device_id_by_interface_id ( $interface_id ); }
if ( $_SESSION [ 'userlevel' ] >= "5" )
{
2010-04-24 22:43:25 +00:00
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( device_permitted ( $device_id )) {
2010-04-24 22:43:25 +00:00
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( $permissions [ 'port' ][ $interface_id ]) {
2010-04-24 22:43:25 +00:00
$allowed = TRUE ;
} else {
$allowed = FALSE ;
}
2011-03-16 18:28:52 +00:00
2010-04-24 22:43:25 +00:00
return $allowed ;
}
2010-08-01 14:17:06 +00:00
function application_permitted ( $app_id , $device_id = NULL )
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2011-09-20 14:37:54 +00:00
2011-03-16 18:28:52 +00:00
if ( is_numeric ( $app_id ))
2010-08-01 14:17:06 +00:00
{
2011-03-16 18:28:52 +00:00
if ( ! $device_id ) { $device_id = device_by_id_cache ( $app_id ); }
2010-08-01 14:17:06 +00:00
if ( $_SESSION [ 'userlevel' ] >= "5" ) {
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( device_permitted ( $device_id )) {
2010-08-01 14:17:06 +00:00
$allowed = TRUE ;
2011-03-16 18:28:52 +00:00
} elseif ( $permissions [ 'application' ][ $app_id ]) {
2010-08-01 14:17:06 +00:00
$allowed = TRUE ;
} else {
$allowed = FALSE ;
}
} else {
$allowed = FALSE ;
}
2011-03-31 10:51:02 +00:00
2010-08-01 14:17:06 +00:00
return $allowed ;
}
function device_permitted ( $device_id )
2010-04-24 22:43:25 +00:00
{
2011-03-31 17:19:54 +00:00
global $permissions ;
2011-03-16 18:28:52 +00:00
if ( $_SESSION [ 'userlevel' ] >= "5" )
{
2010-04-24 22:43:25 +00:00
$allowed = true ;
2011-03-27 10:21:19 +00:00
} elseif ( $permissions [ 'device' ][ $device_id ]) {
2010-04-24 22:43:25 +00:00
$allowed = true ;
} else {
$allowed = false ;
}
2011-03-16 18:28:52 +00:00
return $allowed ;
2010-04-24 22:43:25 +00:00
}
2011-04-22 20:46:19 +00:00
function print_graph_tag ( $args )
2010-03-11 21:58:50 +00:00
{
2011-04-22 20:46:19 +00:00
echo ( generate_graph_tag ( $args ));
2010-03-11 21:58:50 +00:00
}
2011-04-22 20:46:19 +00:00
function generate_graph_tag ( $args )
2010-03-11 21:58:50 +00:00
{
2011-03-16 18:28:52 +00:00
foreach ( $args as $key => $arg )
2010-03-11 21:58:50 +00:00
{
2011-04-22 20:46:19 +00:00
$urlargs [] = $key . "=" . $arg ;
2010-03-11 21:58:50 +00:00
}
2011-03-31 10:51:02 +00:00
2011-04-22 20:46:19 +00:00
return '<img src="graph.php?' . implode ( '&' , $urlargs ) . '" border="0" />' ;
2010-03-11 21:58:50 +00:00
}
2011-06-14 14:04:56 +00:00
function generate_graph_js_state ( $args ) {
// we are going to assume we know roughly what the graph url looks like here.
// TODO: Add sensible defaults
$from = ( is_numeric ( $args [ 'from' ]) ? $args [ 'from' ] : 0 );
$to = ( is_numeric ( $args [ 'to' ]) ? $args [ 'to' ] : 0 );
$width = ( is_numeric ( $args [ 'width' ]) ? $args [ 'width' ] : 0 );
$height = ( is_numeric ( $args [ 'height' ]) ? $args [ 'height' ] : 0 );
$legend = str_replace ( "'" , "" , $args [ 'legend' ]);
$state = <<< STATE
<script type="text/javascript" language="JavaScript">
document.graphFrom = $from;
document.graphTo = $to;
document.graphWidth = $width;
document.graphHeight = $height;
document.graphLegend = '$legend';
</script>
STATE ;
return $state ;
}
2011-04-22 20:46:19 +00:00
function print_percentage_bar ( $width , $height , $percent , $left_text , $left_colour , $left_background , $right_text , $right_colour , $right_background )
2010-02-16 00:44:10 +00:00
{
2011-09-16 22:45:01 +00:00
2011-09-20 14:37:54 +00:00
if ( $percent > "100" ) { $size_percent = "100" ; } else { $size_percent = $percent ; }
2011-09-16 22:45:01 +00:00
2010-02-16 00:44:10 +00:00
$output = '
<div style="font-size:11px;">
<div style=" width:' . $width . 'px; height:' . $height . 'px; background-color:#' . $right_background . ';">
2011-09-16 22:45:01 +00:00
<div style="width:' . $size_percent . '%; height:' . $height . 'px; background-color:#' . $left_background . '; border-right:0px white solid;"></div>
2011-03-04 16:14:21 +00:00
<div style="vertical-align: middle;height: ' . $height . 'px;margin-top:-' . ( $height ) . 'px; color:#' . $left_colour . '; padding-left :4px;"><b>' . $left_text . '</b></div>
<div style="vertical-align: middle;height: ' . $height . 'px;margin-top:-' . ( $height ) . 'px; color:#' . $right_colour . '; padding-right:4px;text-align:right;"><b>' . $right_text . '</b></div>
2010-02-16 00:44:10 +00:00
</div>
</div>' ;
2011-03-31 10:51:02 +00:00
2010-02-13 23:55:56 +00:00
return $output ;
}
2010-08-02 22:09:52 +00:00
function generate_port_link ( $args , $text = NULL , $type = NULL )
2009-10-02 13:20:24 +00:00
{
2011-05-17 19:21:20 +00:00
global $config ;
2011-03-31 10:51:02 +00:00
2009-10-02 13:20:24 +00:00
$args = ifNameDescr ( $args );
2011-03-16 18:28:52 +00:00
if ( ! $text ) { $text = fixIfName ( $args [ 'label' ]); }
if ( $type ) { $args [ 'graph_type' ] = $type ; }
2011-05-05 14:39:50 +00:00
if ( ! isset ( $args [ 'graph_type' ])) { $args [ 'graph_type' ] = 'port_bits' ; }
2011-03-16 18:28:52 +00:00
2009-10-02 13:20:24 +00:00
$class = ifclass ( $args [ 'ifOperStatus' ], $args [ 'ifAdminStatus' ]);
2011-05-19 10:02:55 +00:00
2011-03-16 18:28:52 +00:00
if ( ! isset ( $args [ 'hostname' ])) { $args = array_merge ( $args , device_by_id_cache ( $args [ 'device_id' ])); }
2010-05-02 23:24:47 +00:00
$content = "<div class=list-large>" . $args [ 'hostname' ] . " - " . fixifName ( $args [ 'label' ]) . "</div>" ;
2011-03-16 18:28:52 +00:00
if ( $args [ 'ifAlias' ]) { $content .= $args [ 'ifAlias' ] . "<br />" ; }
2010-05-02 23:24:47 +00:00
$content .= "<div style=\'width: 850px\'>" ;
$graph_array [ 'type' ] = $args [ 'graph_type' ];
$graph_array [ 'legend' ] = "yes" ;
$graph_array [ 'height' ] = "100" ;
$graph_array [ 'width' ] = "340" ;
2011-09-20 14:37:54 +00:00
$graph_array [ 'to' ] = $config [ 'time' ][ 'now' ];
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'day' ];
2010-08-01 00:38:01 +00:00
$graph_array [ 'id' ] = $args [ 'interface_id' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'week' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'month' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
2011-05-17 19:21:20 +00:00
$graph_array [ 'from' ] = $config [ 'time' ][ 'year' ];
2010-05-02 23:24:47 +00:00
$content .= generate_graph_tag ( $graph_array );
$content .= "</div>" ;
2011-03-16 18:28:52 +00:00
2011-05-17 19:21:20 +00:00
$url = generate_port_url ( $args );
2010-05-02 23:24:47 +00:00
2011-05-19 10:02:55 +00:00
if ( port_permitted ( $args [ 'interface_id' ], $args [ 'device_id' ])) {
2010-05-02 23:24:47 +00:00
return overlib_link ( $url , $text , $content , $class );
} else {
return fixifName ( $text );
}
2009-10-02 13:20:24 +00:00
}
2011-09-18 13:11:04 +00:00
function generate_port_url ( $port , $vars = array ())
{
2011-09-19 11:16:04 +00:00
return generate_url ( array ( 'page' => 'device' , 'device' => $port [ 'device_id' ], 'tab' => 'port' , 'port' => $port [ 'interface_id' ]), $vars );
2011-05-17 19:21:20 +00:00
}
2011-03-16 18:28:52 +00:00
function generate_port_thumbnail ( $args )
2010-03-11 21:58:50 +00:00
{
2011-03-31 10:51:02 +00:00
if ( ! $args [ 'bg' ]) { $args [ 'bg' ] = "FFFFF" ; }
$args [ 'content' ] = "<img src='graph.php?type=" . $args [ 'graph_type' ] . "&id=" . $args [ 'interface_id' ] . "&from=" . $args [ 'from' ] . "&to=" . $args [ 'to' ] . "&width=" . $args [ 'width' ] . "&height=" . $args [ 'height' ] . "&legend=no&bg=" . $args [ 'bg' ] . "'>" ;
echo ( generate_port_link ( $args , $args [ 'content' ]));
2009-10-02 13:20:24 +00:00
}
2011-09-14 13:38:01 +00:00
function print_optionbar_start ( $height = 0 , $width = 0 , $marginbottom = 5 )
2010-03-11 21:58:50 +00:00
{
2009-10-02 13:20:24 +00:00
echo ( "
2011-09-20 09:55:11 +00:00
<div class='rounded-5px' style='display: block; background: #e5e5e5; text-align: left; margin-top: 0px;
2011-09-15 23:05:06 +00:00
margin-bottom: " . $marginbottom . "px; " . ( $width ? 'max-width: ' . $width . ( strstr ( $width , '%' ) ? '' : 'px' ) . '; ' : '' ) . "
padding: 7px 14px'>" );
2009-10-02 13:20:24 +00:00
}
2011-03-16 18:28:52 +00:00
function print_optionbar_end ()
2010-03-11 21:58:50 +00:00
{
2011-09-15 23:05:06 +00:00
echo ( ' </div>' );
2009-10-02 13:20:24 +00:00
}
2011-03-16 18:28:52 +00:00
function geteventicon ( $message )
2010-07-07 13:58:11 +00:00
{
if ( $message == "Device status changed to Down" ) { $icon = "server_connect.png" ; }
if ( $message == "Device status changed to Up" ) { $icon = "server_go.png" ; }
2011-03-27 10:21:19 +00:00
if ( $message == "Interface went down" || $message == "Interface changed state to Down" ) { $icon = "if-disconnect.png" ; }
if ( $message == "Interface went up" || $message == "Interface changed state to Up" ) { $icon = "if-connect.png" ; }
2010-07-07 13:58:11 +00:00
if ( $message == "Interface disabled" ) { $icon = "if-disable.png" ; }
if ( $message == "Interface enabled" ) { $icon = "if-enable.png" ; }
if ( isset ( $icon )) { return $icon ; } else { return false ; }
}
2011-03-16 18:28:52 +00:00
function overlibprint ( $text )
{
return "onmouseover= \" return overlib('" . $text . "'); \" onmouseout= \" return nd(); \" " ;
2010-07-07 13:58:11 +00:00
}
2011-03-16 18:28:52 +00:00
function humanmedia ( $media )
2010-07-07 13:58:11 +00:00
{
2011-09-20 09:55:11 +00:00
array_preg_replace ( $rewrite_iftype , $media );
2010-07-07 13:58:11 +00:00
return $media ;
}
2011-03-16 18:28:52 +00:00
function humanspeed ( $speed )
2010-07-07 13:58:11 +00:00
{
$speed = formatRates ( $speed );
if ( $speed == "" ) { $speed = "-" ; }
return $speed ;
}
2011-03-16 18:28:52 +00:00
function devclass ( $device )
2010-07-17 22:53:53 +00:00
{
2011-03-16 18:28:52 +00:00
if ( isset ( $device [ 'status' ]) && $device [ 'status' ] == '0' ) { $class = "list-device-down" ; } else { $class = "list-device" ; }
if ( isset ( $device [ 'ignore' ]) && $device [ 'ignore' ] == '1' )
{
2010-07-17 22:53:53 +00:00
$class = "list-device-ignored" ;
if ( isset ( $device [ 'status' ]) && $device [ 'status' ] == '1' ) { $class = "list-device-ignored-up" ; }
2011-03-16 18:28:52 +00:00
}
if ( isset ( $device [ 'disabled' ]) && $device [ 'disabled' ] == '1' ) { $class = "list-device-disabled" ; }
2010-07-17 22:53:53 +00:00
return $class ;
}
2011-03-31 17:19:54 +00:00
function getlocations ()
{
# Fetch override locations, not through get_dev_attrib, this would be a huge number of queries
2011-05-12 20:16:03 +00:00
$rows = dbFetchRows ( "SELECT attrib_type,attrib_value,device_id FROM devices_attribs WHERE attrib_type LIKE 'override_sysLocation%' ORDER BY attrib_type" );
foreach ( $rows as $row )
2011-03-31 17:19:54 +00:00
{
if ( $row [ 'attrib_type' ] == 'override_sysLocation_bool' && $row [ 'attrib_value' ] == 1 )
{
$ignore_dev_location [ $row [ 'device_id' ]] = 1 ;
}
# We can do this because of the ORDER BY, "bool" will be handled before "string"
elseif ( $row [ 'attrib_type' ] == 'override_sysLocation_string' && $ignore_dev_location [ $row [ 'device_id' ]] == 1 )
{
2011-03-31 17:35:09 +00:00
if ( ! in_array ( $row [ 'attrib_value' ], $locations )) { $locations [] = $row [ 'attrib_value' ]; }
2011-03-31 17:19:54 +00:00
}
}
# Fetch regular locations
if ( $_SESSION [ 'userlevel' ] >= '5' )
{
2011-05-12 20:16:03 +00:00
$rows = dbFetchRows ( "SELECT D.device_id,location FROM devices AS D GROUP BY location ORDER BY location" );
2011-03-31 17:19:54 +00:00
} else {
2011-05-12 20:16:03 +00:00
$rows = dbFetchRows ( "SELECT D.device_id,location FROM devices AS D, devices_perms AS P WHERE D.device_id = P.device_id AND P.user_id = ? GROUP BY location ORDER BY location" , array ( $_SESSION [ 'user_id' ]));
2011-03-31 17:19:54 +00:00
}
2011-05-12 20:16:03 +00:00
foreach ( $rows as $row )
2011-03-31 17:19:54 +00:00
{
# Only add it as a location if it wasn't overridden (and not already there)
if ( $row [ 'location' ] != '' && ! $ignore_dev_location [ $row [ 'device_id' ]])
{
if ( ! in_array ( $row [ 'location' ], $locations )) { $locations [] = $row [ 'location' ]; }
}
}
sort ( $locations );
return $locations ;
}
2011-04-25 17:15:36 +00:00
?>