70 lines
2.1 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage web
* @copyright (C) Adam Armstrong
*
*/
$vlans = dbFetchRows('SELECT * FROM `ports_vlans` AS PV, vlans AS V WHERE PV.`port_id` = ? and PV.`device_id` = ? AND V.`vlan_vlan` = PV.vlan AND V.device_id = PV.device_id', [$port['port_id'], $device['device_id']]);
echo generate_box_open();
echo('<table class="table table-striped table-hover table-condensed">');
echo("<thead><tr><th>VLAN</th><th>Description</th><th>Cost</th><th>Priority</th><th>State</th><th>Other Ports</th></tr></thead>");
$row = 0;
foreach ($vlans as $vlan) {
$row++;
$row_colour = is_intnum($row / 2) ? OBS_COLOUR_LIST_A : OBS_COLOUR_LIST_B;
echo('<tr>');
echo('<td style="width: 100px;" class="entity-title"> Vlan ' . $vlan['vlan'] . '</td>');
echo('<td style="width: 200px;" class="small">' . $vlan['vlan_name'] . '</td>');
if ($vlan['state'] == "blocking") {
$class = "red";
} elseif ($vlan['state'] == "forwarding") {
$class = "green";
} else {
$class = "none";
}
echo("<td>" . $vlan['cost'] . "</td><td>" . $vlan['priority'] . "</td><td class=$class>" . $vlan['state'] . "</td>");
$vlan_ports = [];
$otherports = dbFetchRows("SELECT * FROM `ports_vlans` AS V, `ports` as P WHERE V.`device_id` = ? AND V.`vlan` = ? AND P.port_id = V.port_id", [$device['device_id'], $vlan['vlan']]);
foreach ($otherports as $otherport) {
$vlan_ports[$otherport['ifIndex']] = $otherport;
}
$otherports = dbFetchRows("SELECT * FROM ports WHERE `device_id` = ? AND `ifVlan` = ?", [$device['device_id'], $vlan['vlan']]);
foreach ($otherports as $otherport) {
$vlan_ports[$otherport['ifIndex']] = array_merge($otherport, ['untagged' => '1']);
}
ksort($vlan_ports);
echo("<td>");
$vsep = '';
foreach ($vlan_ports as $otherport) {
echo($vsep . generate_port_link_short($otherport));
if ($otherport['untagged']) {
echo("(U)");
}
$vsep = ", ";
}
echo("</td>");
echo("</tr>");
}
echo("</table>");
echo generate_box_close();
// EOF