2007-04-03 14:10:23 +00:00
< ? php
2011-10-18 14:41:19 +00:00
$pagetitle [] = " Ports " ;
2012-05-25 12:24:34 +00:00
// Set Defaults here
2007-04-03 14:10:23 +00:00
2015-07-13 20:10:26 +02:00
if ( ! isset ( $vars [ 'format' ])) {
$vars [ 'format' ] = " list_basic " ;
}
2007-04-03 14:10:23 +00:00
2011-09-15 22:59:11 +00:00
print_optionbar_start ();
2011-09-14 13:38:01 +00:00
2014-01-13 10:05:19 +00:00
echo ( '<span style="font-weight: bold;">Lists</span> » ' );
2015-07-13 20:10:26 +02:00
$menu_options = array ( 'basic' => 'Basic' , 'detail' => 'Detail' );
2014-01-13 10:05:19 +00:00
$sep = " " ;
2015-07-13 20:10:26 +02:00
foreach ( $menu_options as $option => $text ) {
echo ( $sep );
if ( $vars [ 'format' ] == " list_ " . $option ) {
echo ( " <span class='pagemenu-selected'> " );
}
echo ( '<a href="' . generate_url ( $vars , array ( 'format' => " list_ " . $option )) . '">' . $text . '</a>' );
if ( $vars [ 'format' ] == " list_ " . $option ) {
echo ( " </span> " );
}
$sep = " | " ;
2014-01-13 10:05:19 +00:00
}
?>
|
< span style = " font-weight: bold; " > Graphs </ span > & #187;
< ? php
$menu_options = array ( 'bits' => 'Bits' ,
2015-07-13 20:10:26 +02:00
'upkts' => 'Unicast Packets' ,
'nupkts' => 'Non-Unicast Packets' ,
'errors' => 'Errors' );
2014-01-13 10:05:19 +00:00
$sep = " " ;
2015-07-13 20:10:26 +02:00
foreach ( $menu_options as $option => $text ) {
echo ( $sep );
if ( $vars [ 'format' ] == 'graph_' . $option ) {
echo ( '<span class="pagemenu-selected">' );
}
echo ( '<a href="' . generate_url ( $vars , array ( 'format' => 'graph_' . $option )) . '">' . $text . '</a>' );
if ( $vars [ 'format' ] == 'graph_' . $option ) {
echo ( " </span> " );
}
$sep = " | " ;
2014-01-13 10:05:19 +00:00
}
echo ( '<div style="float: right;">' );
?>
2015-08-11 14:54:05 -07:00
< a href = " csv.php/report=<?php echo generate_url( $vars ,array('format'=>'')); ?> " title = " Export as CSV " target = " _blank " > Export CSV </ a > |
2014-01-13 10:05:19 +00:00
< a href = " <?php echo(generate_url( $vars )); ?> " title = " Update the browser URL to reflect the search criteria. " > Update URL </ a > |
< ? php
2015-07-13 20:10:26 +02:00
if ( isset ( $vars [ 'searchbar' ]) && $vars [ 'searchbar' ] == " hide " ) {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'searchbar' => '' )) . '">Search</a>' );
2015-07-13 20:10:26 +02:00
}
else {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'searchbar' => 'hide' )) . '">Search</a>' );
2015-07-13 20:10:26 +02:00
}
2014-01-13 10:05:19 +00:00
2015-07-13 20:10:26 +02:00
echo ( " | " );
2014-01-13 10:05:19 +00:00
2015-07-13 20:10:26 +02:00
if ( isset ( $vars [ 'bare' ]) && $vars [ 'bare' ] == " yes " ) {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'bare' => '' )) . '">Header</a>' );
2015-07-13 20:10:26 +02:00
}
else {
2014-01-13 10:05:19 +00:00
echo ( '<a href="' . generate_url ( $vars , array ( 'bare' => 'yes' )) . '">Header</a>' );
2015-07-13 20:10:26 +02:00
}
2014-01-13 10:05:19 +00:00
echo ( '</div>' );
print_optionbar_end ();
print_optionbar_start ();
2015-07-13 20:10:26 +02:00
if (( isset ( $vars [ 'searchbar' ]) && $vars [ 'searchbar' ] != " hide " ) || ! isset ( $vars [ 'searchbar' ])) {
2011-09-14 13:38:01 +00:00
?>
2014-01-13 10:05:19 +00:00
< form method = 'post' action = '' class = 'form-inline' role = 'form' >
< div class = " form-group " >
< select name = 'device_id' id = 'device_id' class = 'form-control input-sm' >
2011-09-20 16:03:54 +00:00
< option value = '' > All Devices </ option >
2011-09-14 13:38:01 +00:00
< ? php
2015-07-13 20:10:26 +02:00
if ( $_SESSION [ 'userlevel' ] >= 5 ) {
$results = dbFetchRows ( " SELECT `device_id`,`hostname` FROM `devices` GROUP BY `hostname` ORDER BY `hostname` " );
}
else {
$results = dbFetchRows ( " SELECT `D`.`device_id`,`D`.`hostname` FROM `devices` AS `D`, `devices_perms` AS `P` WHERE `P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id` GROUP BY `hostname` ORDER BY `hostname` " , array ( $_SESSION [ 'user_id' ]));
}
foreach ( $results as $data ) {
echo ( ' <option value="' . $data [ 'device_id' ] . '"' );
if ( $data [ 'device_id' ] == $vars [ 'device_id' ]) {
echo ( " selected " );
}
echo ( " > " . $data [ 'hostname' ] . " </option> " );
}
2014-06-25 14:51:50 +01:00
2015-07-13 20:10:26 +02:00
if ( $_SESSION [ 'userlevel' ] < 5 ) {
$results = dbFetchRows ( " SELECT `D`.`device_id`,`D`.`hostname` FROM `ports` AS `I` JOIN `devices` AS `D` ON `D`.`device_id`=`I`.`device_id` JOIN `ports_perms` AS `PP` ON `PP`.`port_id`=`I`.`port_id` WHERE `PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` GROUP BY `hostname` ORDER BY `hostname` " , array ( $_SESSION [ 'user_id' ]));
}
else {
$results = array ();
}
foreach ( $results as $data ) {
echo ( ' <option value="' . $data [ 'device_id' ] . '"' );
if ( $data [ 'device_id' ] == $vars [ 'device_id' ]) {
echo ( " selected " );
}
echo ( " > " . $data [ 'hostname' ] . " </option> " );
}
2014-06-25 14:51:50 +01:00
2011-09-14 13:38:01 +00:00
?>
</ select >
2015-07-13 20:10:26 +02:00
< input type = " hostname " name = " hostname " id = " hostname " title = " Hostname " class = " form-control input-sm " < ? php if ( strlen ( $vars [ 'hostname' ])) echo ( 'value="' . $vars [ 'hostname' ] . '"' ); ?> placeholder="Hostname" />
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< select name = " state " id = " state " class = " form-control input-sm " >
2011-09-20 16:03:54 +00:00
< option value = " " > All States </ option >
2015-07-13 20:10:26 +02:00
< option value = " up " < ? php if ( $vars [ 'state' ] == " up " ) echo ( " selected " ); ?> >Up</option>
< option value = " down " < ? php if ( $vars [ 'state' ] == " down " ) echo ( " selected " ); ?> >Down</option>
< option value = " admindown " < ? php if ( $vars [ 'state' ] == " admindown " ) echo ( " selected " ); ?> >Shutdown</option>
2011-09-14 13:38:01 +00:00
</ select >
2011-09-14 14:28:42 +00:00
2014-01-13 10:05:19 +00:00
< select name = " ifSpeed " id = " ifSpeed " class = " form-control input-sm " >
< option value = " " > All Speeds </ option >
2011-09-14 13:38:01 +00:00
< ? php
2015-04-22 21:35:16 +01:00
2015-07-13 20:10:26 +02:00
if ( is_admin () === TRUE || is_read () === TRUE ) {
$sql = " SELECT `ifSpeed` FROM `ports` GROUP BY `ifSpeed` ORDER BY `ifSpeed` " ;
}
else {
$sql = " SELECT `ifSpeed` FROM `ports` AS `I`, `devices` AS `D`, `devices_perms` AS `P`, `ports_perms` AS `PP` WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `D`.`device_id`)) AND `D`.`device_id` = `I`.`device_id` GROUP BY `ifSpeed` ORDER BY `ifSpeed` " ;
$param [] = array ( $_SESSION [ 'user_id' ], $_SESSION [ 'user_id' ]);
}
foreach ( dbFetchRows ( $sql , $param ) as $data ) {
if ( $data [ 'ifSpeed' ]) {
echo ( " <option value=' " . $data [ 'ifSpeed' ] . " ' " );
if ( $data [ 'ifSpeed' ] == $vars [ 'ifSpeed' ]) {
echo ( " selected " );
}
echo ( " > " . humanspeed ( $data [ 'ifSpeed' ]) . " </option> " );
}
}
2011-09-14 13:38:01 +00:00
?>
</ select >
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< select name = " ifType " id = " ifType " class = " form-control input-sm " >
2011-09-20 16:03:54 +00:00
< option value = " " > All Media </ option >
2011-09-14 13:38:01 +00:00
< ? php
2015-04-22 21:35:16 +01:00
2015-07-13 20:10:26 +02:00
if ( is_admin () === TRUE || is_read () === TRUE ) {
$sql = " SELECT `ifType` FROM `ports` GROUP BY `ifType` ORDER BY `ifType` " ;
}
else {
$sql = " SELECT `ifType` FROM `ports` AS `I`, `devices` AS `D`, `devices_perms` AS `P`, `ports_perms` AS `PP` WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `D`.`device_id`)) AND `D`.`device_id` = `I`.`device_id` GROUP BY `ifType` ORDER BY `ifType` " ;
$param [] = array ( $_SESSION [ 'user_id' ], $_SESSION [ 'user_id' ]);
}
foreach ( dbFetchRows ( $sql , $param ) as $data ) {
if ( $data [ 'ifType' ]) {
echo ( ' <option value="' . $data [ 'ifType' ] . '"' );
if ( $data [ 'ifType' ] == $vars [ 'ifType' ]) {
echo ( " selected " );
}
echo ( " > " . $data [ 'ifType' ] . " </option> " );
}
}
2011-09-14 13:38:01 +00:00
?>
</ select >
2014-01-13 10:05:19 +00:00
< select name = " port_descr_type " id = " port_descr_type " class = " form-control input-sm " >
2011-09-20 16:03:54 +00:00
< option value = " " > All Port Types </ option >
2011-09-14 14:28:42 +00:00
< ? php
2015-04-22 21:35:16 +01:00
2015-07-13 20:10:26 +02:00
if ( is_admin () === TRUE || is_read () === TRUE ) {
$sql = " SELECT `port_descr_type` FROM `ports` GROUP BY `port_descr_type` ORDER BY `port_descr_type` " ;
}
else {
$sql = " SELECT `port_descr_type` FROM `ports` AS `I`, `devices` AS `D`, `devices_perms` AS `P`, `ports_perms` AS `PP` WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `D`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `D`.`device_id`)) AND `D`.`device_id` = `I`.`device_id` GROUP BY `port_descr_type` ORDER BY `port_descr_type` " ;
$param [] = array ( $_SESSION [ 'user_id' ], $_SESSION [ 'user_id' ]);
}
$ports = dbFetchRows ( $sql , $param );
foreach ( $ports as $data ) {
if ( $data [ 'port_descr_type' ]) {
echo ( ' <option value="' . $data [ 'port_descr_type' ] . '"' );
if ( $data [ 'port_descr_type' ] == $vars [ 'port_descr_type' ]) {
echo ( " selected " );
}
echo ( " > " . ucfirst ( $data [ 'port_descr_type' ]) . " </option> " );
}
}
2011-09-14 14:28:42 +00:00
?>
2014-01-13 10:05:19 +00:00
</ select >
</ div >
< div class = " form-group " >
2015-07-13 20:10:26 +02:00
< input title = " Port Description " type = " text " name = " ifAlias " id = " ifAlias " class = " form-control input-sm " < ? php if ( strlen ( $vars [ 'ifAlias' ])) echo ( 'value="' . $vars [ 'ifAlias' ] . '"' ); ?> placeholder="Port Description"/>
2014-01-13 10:05:19 +00:00
< select name = " location " id = " location " class = " form-control input-sm " >
2011-09-19 11:15:01 +00:00
< option value = " " > All Locations </ option >
2015-07-13 20:10:26 +02:00
< ? php
// FIXME function?
foreach ( getlocations () as $location ) {
if ( $location ) {
echo ( '<option value="' . $location . '"' );
if ( $location == $vars [ 'location' ]) {
echo ( " selected " );
}
echo ( " > " . $location . " </option> " );
}
}
2011-09-19 11:15:01 +00:00
?>
</ select >
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< label for = " ignore " > Ignored </ label >
2015-07-13 20:10:26 +02:00
< input type = checkbox id = " ignore " name = " ignore " value = " 1 " class = " " < ? php if ( $vars [ 'ignore' ]) echo ( " checked " ); ?> ></input>
2015-06-09 23:21:15 +01:00
< label for = " disabled " > Disabled </ label >
2015-07-13 20:10:26 +02:00
< input type = checkbox id = " disabled " name = " disabled " value = 1 class = " " < ? php if ( $vars [ 'disabled' ]) echo ( " checked " ); ?> ></input>
2011-09-19 11:15:01 +00:00
</ label >
2014-01-13 10:05:19 +00:00
< label for = " deleted " > Deleted </ label >
2015-07-13 20:10:26 +02:00
< input type = checkbox id = " deleted " name = " deleted " value = 1 class = " " < ? php if ( $vars [ 'deleted' ]) echo ( " checked " ); ?> ></input>
2011-09-19 11:15:01 +00:00
</ label >
2014-01-13 10:05:19 +00:00
</ div >
< div class = " form-group " >
< select name = " sort " id = " sort " class = " form-control input-sm " >
2011-10-27 09:23:12 +00:00
< ? php
2015-07-13 20:10:26 +02:00
$sorts = array ( 'device' => 'Device' ,
'port' => 'Port' ,
'speed' => 'Speed' ,
'traffic' => 'Traffic' ,
'traffic_in' => 'Traffic In' ,
'traffic_out' => 'Traffic Out' ,
'packets' => 'Packets' ,
'packets_in' => 'Packets In' ,
'packets_out' => 'Packets Out' ,
'errors' => 'Errors' ,
'media' => 'Media' ,
'descr' => 'Description' );
foreach ( $sorts as $sort => $sort_text ) {
echo ( '<option value="' . $sort . '" ' );
if ( $vars [ 'sort' ] == $sort ) {
echo ( " selected " );
}
echo ( '>' . $sort_text . '</option>' );
}
2011-10-27 09:23:12 +00:00
?>
2011-09-26 16:31:13 +00:00
</ select >
2014-01-13 10:05:19 +00:00
</ div >
2014-06-15 19:16:06 +01:00
< button type = " submit " class = " btn btn-default btn-sm " > Search </ button >
< a class = " btn btn-default btn-sm " href = " <?php echo(generate_url(array('page' => 'ports', 'section' => $vars['section'] , 'bare' => $vars['bare'] ))); ?> " title = " Reset critera to default. " > Reset </ a >
2011-09-20 16:03:54 +00:00
</ td >
</ form >
</ tr >
2011-09-14 13:38:01 +00:00
</ table >
2015-07-13 20:10:26 +02:00
< ? php
}
2011-09-14 13:38:01 +00:00
print_optionbar_end ();
$param = array ();
2015-07-13 20:10:26 +02:00
if ( ! isset ( $vars [ 'ignore' ])) {
$vars [ 'ignore' ] = " 0 " ;
}
if ( ! isset ( $vars [ 'disabled' ])) {
$vars [ 'disabled' ] = " 0 " ;
}
if ( ! isset ( $vars [ 'deleted' ])) {
$vars [ 'deleted' ] = " 0 " ;
}
2011-09-14 14:28:42 +00:00
2014-06-26 00:21:22 +01:00
$where = '' ;
2015-06-18 23:16:53 +01:00
$ignore_filter = 0 ;
$disabled_filter = 0 ;
2014-06-26 00:21:22 +01:00
2015-07-13 20:10:26 +02:00
foreach ( $vars as $var => $value ) {
if ( $value != " " ) {
switch ( $var ) {
case 'hostname' :
$where .= " AND D.hostname LIKE ? " ;
$param [] = " % " . $value . " % " ;
break ;
case 'location' :
$where .= " AND D.location LIKE ? " ;
$param [] = " % " . $value . " % " ;
break ;
case 'device_id' :
$where .= " AND D.device_id = ? " ;
$param [] = $value ;
break ;
case 'deleted' :
if ( $value == 1 ) {
$where .= " AND `I`.`deleted` = 1 " ;
$ignore_filter = 1 ;
}
break ;
case 'ignore' :
if ( $value == 1 ) {
$where .= " AND (I.ignore = 1 OR D.ignore = 1) AND I.deleted = 0 " ;
$ignore_filter = 1 ;
}
break ;
case 'disabled' :
if ( $value == 1 ) {
$where .= " AND `I`.`disabled` = 1 AND `I`.`deleted` = 0 " ;
$disabled_filter = 1 ;
}
break ;
case 'ifSpeed' :
if ( is_numeric ( $value )) {
$where .= " AND I. $var = ? " ;
$param [] = $value ;
}
break ;
case 'ifType' :
$where .= " AND I. $var = ? " ;
$param [] = $value ;
break ;
case 'ifAlias' :
case 'port_descr_type' :
$where .= " AND I. $var LIKE ? " ;
$param [] = " % " . $value . " % " ;
break ;
case 'errors' :
if ( $value == 1 ) {
$where .= " AND (I.`ifInErrors_delta` > '0' OR I.`ifOutErrors_delta` > '0') " ;
}
break ;
case 'state' :
if ( $value == " down " ) {
$where .= " AND I.ifAdminStatus = ? AND I.ifOperStatus = ? " ;
$param [] = " up " ;
$param [] = " down " ;
}
elseif ( $value == " up " ) {
$where .= " AND I.ifAdminStatus = ? AND I.ifOperStatus = ? AND I.ignore = '0' AND D.ignore='0' AND I.deleted='0' " ;
$param [] = " up " ;
$param [] = " up " ;
}
elseif ( $value == " admindown " ) {
$where .= " AND I.ifAdminStatus = ? AND D.ignore = 0 " ;
$param [] = " down " ;
}
break ;
2015-06-18 23:16:53 +01:00
}
2011-09-20 16:03:54 +00:00
}
2011-09-14 13:38:01 +00:00
}
2015-06-18 23:16:53 +01:00
if ( $ignore_filter == 0 && $disabled_filter == 0 ) {
$where .= " AND `I`.`ignore` = 0 AND `I`.`disabled` = 0 AND `I`.`deleted` = 0 " ;
}
2012-05-25 10:34:01 +00:00
$query = " SELECT * FROM `ports` AS I, `devices` AS D WHERE I.device_id = D.device_id " . $where . " " . $query_sort ;
$row = 1 ;
list ( $format , $subformat ) = explode ( " _ " , $vars [ 'format' ]);
$ports = dbFetchRows ( $query , $param );
2015-07-13 20:10:26 +02:00
switch ( $vars [ 'sort' ]) {
case 'traffic' :
$ports = array_sort ( $ports , 'ifOctets_rate' , SORT_DESC );
break ;
case 'traffic_in' :
$ports = array_sort ( $ports , 'ifInOctets_rate' , SORT_DESC );
break ;
case 'traffic_out' :
$ports = array_sort ( $ports , 'ifOutOctets_rate' , SORT_DESC );
break ;
case 'packets' :
$ports = array_sort ( $ports , 'ifUcastPkts_rate' , SORT_DESC );
break ;
case 'packets_in' :
$ports = array_sort ( $ports , 'ifInUcastOctets_rate' , SORT_DESC );
break ;
case 'packets_out' :
$ports = array_sort ( $ports , 'ifOutUcastOctets_rate' , SORT_DESC );
break ;
case 'errors' :
$ports = array_sort ( $ports , 'ifErrors_rate' , SORT_DESC );
break ;
case 'speed' :
$ports = array_sort ( $ports , 'ifSpeed' , SORT_DESC );
break ;
case 'port' :
$ports = array_sort ( $ports , 'ifDescr' , SORT_ASC );
break ;
case 'media' :
$ports = array_sort ( $ports , 'ifType' , SORT_ASC );
break ;
case 'descr' :
$ports = array_sort ( $ports , 'ifAlias' , SORT_ASC );
break ;
case 'device' :
default :
$ports = array_sort ( $ports , 'hostname' , SORT_ASC );
2011-09-26 16:31:13 +00:00
}
2015-07-13 20:10:26 +02:00
if ( file_exists ( 'pages/ports/' . $format . '.inc.php' )) {
require 'pages/ports/' . $format . '.inc.php' ;
2011-09-14 13:38:01 +00:00
}
?>