mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
2667649d3c
git-svn-id: http://www.observium.org/svn/observer/trunk@2970 61d68cd4-352d-0410-923a-c4978735b2b8
120 lines
4.5 KiB
PHP
120 lines
4.5 KiB
PHP
<?php
|
|
|
|
if ($vars['view'] == 'graphs' || $vars['view'] == 'minigraphs')
|
|
{
|
|
if (isset($vars['graph'])) { $graph_type = "port_" . $vars['graph']; } else { $graph_type = "port_bits"; }
|
|
}
|
|
|
|
if (!$vars['view']) { $vars['view'] = trim($config['ports_page_default'],'/'); }
|
|
|
|
$link_array = array('page' => 'device',
|
|
'device' => $device['device_id'],
|
|
'tab' => 'ports');
|
|
|
|
print_optionbar_start();
|
|
|
|
$menu_options['basic'] = 'Basic';
|
|
$menu_options['details'] = 'Details';
|
|
$menu_options['arp'] = 'ARP Table';
|
|
|
|
if(dbFetchCell("SELECT * FROM links AS L, ports AS I WHERE I.device_id = '".$device['device_id']."' AND I.interface_id = L.local_interface_id"))
|
|
{
|
|
$menu_options['neighbours'] = 'Neighbours';
|
|
}
|
|
if(dbFetchCell("SELECT COUNT(*) FROM `ports` WHERE `ifType` = 'adsl'"))
|
|
{
|
|
$menu_options['adsl'] = 'ADSL';
|
|
}
|
|
|
|
$sep = "";
|
|
foreach ($menu_options as $option => $text)
|
|
{
|
|
echo($sep);
|
|
if ($vars['view'] == $option) { echo("<span class='pagemenu-selected'>"); }
|
|
echo(generate_link($text,$link_array,array('view'=>$option)));
|
|
if ($vars['view'] == $option) { echo("</span>"); }
|
|
$sep = " | ";
|
|
}
|
|
|
|
unset($sep);
|
|
|
|
echo(' | Graphs: ');
|
|
|
|
$graph_types = array("bits" => "Bits",
|
|
"upkts" => "Unicast Packets",
|
|
"nupkts" => "Non-Unicast Packets",
|
|
"errors" => "Errors",
|
|
"etherlike" => "Etherlike");
|
|
|
|
foreach ($graph_types as $type => $descr)
|
|
{
|
|
echo("$type_sep");
|
|
if ($vars['graph'] == $type && $vars['view'] == "graphs") { echo("<span class='pagemenu-selected'>"); }
|
|
echo(generate_link($descr,$link_array,array('view'=>'graphs','graph'=>$type)));
|
|
if ($vars['graph'] == $type && $vars['view'] == "graphs") { echo("</span>"); }
|
|
|
|
echo(' (');
|
|
if ($vars['graph'] == $type && $vars['view'] == "minigraphs") { echo("<span class='pagemenu-selected'>"); }
|
|
echo(generate_link('Mini',$link_array,array('view'=>'minigraphs','graph'=>$type)));
|
|
if ($vars['graph'] == $type && $vars['view'] == "minigraphs") { echo("</span>"); }
|
|
echo(')');
|
|
$type_sep = " | ";
|
|
}
|
|
|
|
print_optionbar_end();
|
|
|
|
if ($vars['view'] == 'minigraphs')
|
|
{
|
|
$timeperiods = array('-1day','-1week','-1month','-1year');
|
|
$from = '-1day';
|
|
echo("<div style='display: block; clear: both; margin: auto; min-height: 500px;'>");
|
|
unset ($seperator);
|
|
|
|
## FIX THIS. UGLY.
|
|
|
|
foreach (dbFetchRows("select * from ports WHERE device_id = ? ORDER BY ifIndex", array($device['device_id'])) as $port)
|
|
{
|
|
echo("<div style='display: block; padding: 3px; margin: 3px; min-width: 183px; max-width:183px; min-height:90px; max-height:90px; text-align: center; float: left; background-color: #e9e9e9;'>
|
|
<div style='font-weight: bold;'>".makeshortif($port['ifDescr'])."</div>
|
|
<a href=\"" . generate_port_url($port) . "\" onmouseover=\"return overlib('\
|
|
<div style=\'font-size: 16px; padding:5px; font-weight: bold; color: #e5e5e5;\'>".$device['hostname']." - ".$port['ifDescr']."</div>\
|
|
".$port['ifAlias']." \
|
|
<img src=\'graph.php?type=".$graph_type."&id=".$port['interface_id']."&from=".$from."&to=".$now."&width=450&height=150\'>\
|
|
', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 150);\" onmouseout=\"return nd();\" >".
|
|
"<img src='graph.php?type=".$graph_type."&id=".$port['interface_id']."&from=".$from."&to=".$now."&width=180&height=45&legend=no'>
|
|
</a>
|
|
<div style='font-size: 9px;'>".truncate(short_port_descr($port['ifAlias']), 32, '')."</div>
|
|
</div>");
|
|
}
|
|
echo("</div>");
|
|
} elseif ($vars['view'] == "arp" || $vars['view'] == "adsl" || $vars['view'] == "neighbours") {
|
|
include("ports/".$vars['view'].".inc.php");
|
|
} else {
|
|
if ($vars['view'] == "details") { $port_details = 1; }
|
|
echo("<div style='margin: 0px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>");
|
|
$i = "1";
|
|
|
|
global $port_cache, $port_index_cache;
|
|
|
|
$ports = dbFetchRows("SELECT * FROM `ports` WHERE `device_id` = ? AND `deleted` = '0' ORDER BY `ifIndex` ASC", array($device['device_id']));
|
|
### As we've dragged the whole database, lets pre-populate our caches :)
|
|
### FIXME - we should probably split the fetching of link/stack/etc into functions and cache them here too to cut down on single row queries.
|
|
foreach ($ports as $port)
|
|
{
|
|
$port_cache[$port['interface_id']] = $port;
|
|
$port_index_cache[$port['device_id']][$port['ifIndex']] = $port;
|
|
}
|
|
|
|
foreach ($ports as $port)
|
|
{
|
|
include("includes/print-interface.inc.php");
|
|
|
|
$i++;
|
|
}
|
|
echo("</table></div>");
|
|
}
|
|
|
|
$pagetitle[] = "Ports";
|
|
|
|
?>
|