mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Speedup vlans list in device VLANS tab (#11805)
* init * spaces and commas fix
This commit is contained in:
@ -75,13 +75,7 @@ print_optionbar_end();
|
||||
|
||||
echo '<table border="0" cellspacing="0" cellpadding="5" width="100%">';
|
||||
|
||||
$i = '1';
|
||||
|
||||
foreach (dbFetchRows("SELECT * FROM `vlans` WHERE `device_id` = ? ORDER BY 'vlan_vlan'", array($device['device_id'])) as $vlan) {
|
||||
include 'includes/html/print-vlan.inc.php';
|
||||
|
||||
$i++;
|
||||
}
|
||||
include 'includes/html/print-vlan.inc.php';
|
||||
|
||||
echo '</table>';
|
||||
|
||||
|
@ -1,56 +1,61 @@
|
||||
<?php
|
||||
|
||||
if (!is_integer($i / 2)) {
|
||||
$bg_colour = \LibreNMS\Config::get('list_colour.even');
|
||||
} else {
|
||||
$bg_colour = \LibreNMS\Config::get('list_colour.odd');
|
||||
}
|
||||
|
||||
echo "<tr bgcolor='$bg_colour'>";
|
||||
|
||||
echo '<td width=100 class=list-large> Vlan '.$vlan['vlan_vlan'].'</td>';
|
||||
echo '<td width=200 class=box-desc>'.$vlan['vlan_name'].'</td>';
|
||||
echo '<td class=list-bold>';
|
||||
|
||||
$vlan_ports = array();
|
||||
$traverse_ifvlan = true;
|
||||
$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', array($device['device_id'], $vlan['vlan_vlan']));
|
||||
foreach ($otherports as $otherport) {
|
||||
if ($otherport['untagged']) {
|
||||
$traverse_ifvlan = false;
|
||||
$vlans_data = array();
|
||||
|
||||
foreach (dbFetchRows('SELECT * FROM `vlans` WHERE `device_id` = ? GROUP BY `vlan_vlan` ORDER BY `vlan_vlan`', array($device['device_id'])) as $vlan) {
|
||||
foreach ($vlan as $k => $v) {
|
||||
if ($k != "vlan_vlan") {
|
||||
$vlans_data[$vlan['vlan_vlan']][$k]=$v;
|
||||
}
|
||||
}
|
||||
$vlan_ports[$otherport['ifIndex']] = $otherport;
|
||||
}
|
||||
|
||||
if ($traverse_ifvlan) {
|
||||
$otherports = dbFetchRows('SELECT * FROM ports WHERE `device_id` = ? AND `ifVlan` = ?', array($device['device_id'], $vlan['vlan_vlan']));
|
||||
foreach ($otherports as $otherport) {
|
||||
$vlan_ports[$otherport['ifIndex']] = array_merge($otherport, array('untagged' => '1'));
|
||||
$otherports = dbFetchRows('SELECT * FROM `ports_vlans` AS V, `ports` AS P WHERE V.`device_id` = ? AND P.port_id = V.port_id', array($device['device_id']));
|
||||
foreach ($otherports as $n => $otherport) {
|
||||
if (!$otherport['untagged']) {
|
||||
if ($otherport['ifvlan'] == $otherport['vlan']) {
|
||||
$otherport['untagged'] = 1;
|
||||
}
|
||||
}
|
||||
$vlan_ports[$otherport['vlan']][$otherport['ifIndex']] = $otherport;
|
||||
}
|
||||
|
||||
ksort($vlan_ports);
|
||||
|
||||
foreach ($vlan_ports as $port) {
|
||||
$port = cleanPort($port, $device);
|
||||
if ($vars['view'] == 'graphs') {
|
||||
echo "<div style='display: block; padding: 2px; margin: 2px; min-width: 139px; max-width:139px; min-height:85px; max-height:85px; text-align: center; float: left; background-color: " . \LibreNMS\Config::get('list_colour.odd_alt2') . ";'>
|
||||
<div style='font-weight: bold;'>".makeshortif($port['ifDescr'])."</div>
|
||||
<a href='device/device=".$device['device_id'].'/tab=port/port='.$port['port_id']."/' onmouseover=\"return overlib('\
|
||||
<div style=\'font-size: 16px; padding:5px; font-weight: bold; color: #e5e5e5;\'>".$device['hostname'].' - '.$port['ifDescr'].'</div>\
|
||||
'.display($port['ifAlias'])." \
|
||||
<img src=\'graph.php?type=$graph_type&id=" . $port['port_id'] . '&from=' . \LibreNMS\Config::get('time.twoday') . '&to=' . \LibreNMS\Config::get('time.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['port_id'] . '&from=' . \LibreNMS\Config::get('time.twoday') . '&to=' . \LibreNMS\Config::get('time.now') . "&width=132&height=40&legend=no'>
|
||||
</a>
|
||||
<div style='font-size: 9px;'>".substr(short_port_descr($port['ifAlias']), 0, 22).'</div>
|
||||
</div>';
|
||||
} else {
|
||||
echo $vlan['port_sep'].generate_port_link($port, makeshortif($port['label']));
|
||||
$vlan['port_sep'] = ', ';
|
||||
if ($port['untagged']) {
|
||||
echo '(U)';
|
||||
$i=0;
|
||||
foreach ($vlan_ports as $vlan => $ports) {
|
||||
$bg_colour = \LibreNMS\Config::get('list_colour.odd');
|
||||
if (!is_integer($i / 2)) {
|
||||
$bg_colour = \LibreNMS\Config::get('list_colour.even');
|
||||
}
|
||||
|
||||
echo "<tr bgcolor='$bg_colour'>";
|
||||
echo '<td width=100 class=list-large> Vlan '.$vlan.'</td>';
|
||||
echo '<td width=200 class=box-desc>'.$vlans_data[$vlan]['vlan_name'].'</td>';
|
||||
echo '<td class=list-bold>';
|
||||
|
||||
foreach ($ports as $port_id => $port) {
|
||||
$port = cleanPort($port, $device);
|
||||
if ($vars['view'] == 'graphs') {
|
||||
echo "<div style='display: block; padding: 2px; margin: 2px; min-width: 139px; max-width:139px; min-height:85px; max-height:85px; text-align: center; float: left; background-color: " . \LibreNMS\Config::get('list_colour.odd_alt2') . ";'>
|
||||
<div style='font-weight: bold;'>".makeshortif($port['ifDescr'])."</div>
|
||||
<a href='device/device=".$device['device_id'].'/tab=port/port='.$port['port_id']."/' onmouseover=\"return overlib('\
|
||||
<div style=\'font-size: 16px; padding:5px; font-weight: bold; color: #e5e5e5;\'>".$device['hostname'].' - '.$port['ifDescr'].'</div>\
|
||||
'.display($port['ifAlias'])." \
|
||||
<img src=\'graph.php?type=$graph_type&id=" . $port['port_id'] . '&from=' . \LibreNMS\Config::get('time.twoday') . '&to=' . \LibreNMS\Config::get('time.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['port_id'] . '&from=' . \LibreNMS\Config::get('time.twoday') . '&to=' . \LibreNMS\Config::get('time.now') . "&width=132&height=40&legend=no'>
|
||||
</a>
|
||||
<div style='font-size: 9px;'>".substr(short_port_descr($port['ifAlias']), 0, 22).'</div>
|
||||
</div>';
|
||||
} else {
|
||||
echo $vlans_data[$vlan]['port_sep'].generate_port_link($port, makeshortif($port['label']));
|
||||
$vlans_data[$vlan]['port_sep'] = ', ';
|
||||
if ($port['untagged']) {
|
||||
echo '(U)';
|
||||
}
|
||||
}
|
||||
}
|
||||
}//end foreach
|
||||
|
||||
echo '</td></tr>';
|
||||
echo '</td></tr>';
|
||||
$i++;
|
||||
}
|
||||
|
Reference in New Issue
Block a user