Compare commits

..

No commits in common. "9d5e23d8f0a2e756311c3969b6bb806c73c2e53b" and "fe8274828e9b5959ab907ad57b1916c53dbcd6d4" have entirely different histories.

2 changed files with 20 additions and 17 deletions

View File

@ -14,16 +14,16 @@ preg_match_all("/(?<=\n)vlan (?P<pvid>\d+)[\r\n]+(?: name (?P<name>.+)[\r\n]+| d
preg_match_all("/(?<=\n)interface [\w-]+(?P<member>\d+)\/0\/(?P<port>\d+)[\r\n]+(?: port hybrid (?:pvid )?vlan (?:(?P<tagged>\d+) tagged|(?P<untagged>\d+)(?: \d+)* untagged)[\r\n]+| port (?:access |trunk |hybrid |pvid |vlan )*(?P<pvid>\d+)[\r\n]+| voice-vlan (?P<voice_vlan>\d+) enable[\r\n]+| .*[\r\n]+)*(?<!#)/", $conf, $interfaces, PREG_SET_ORDER); preg_match_all("/(?<=\n)interface [\w-]+(?P<member>\d+)\/0\/(?P<port>\d+)[\r\n]+(?: port hybrid (?:pvid )?vlan (?:(?P<tagged>\d+) tagged|(?P<untagged>\d+)(?: \d+)* untagged)[\r\n]+| port (?:access |trunk |hybrid |pvid |vlan )*(?P<pvid>\d+)[\r\n]+| voice-vlan (?P<voice_vlan>\d+) enable[\r\n]+| .*[\r\n]+)*(?<!#)/", $conf, $interfaces, PREG_SET_ORDER);
$stack = array(); $stack = array();
foreach ($interfaces as $interface) { foreach ($interfaces as $interface) {
if (!isset($stack[$interface["member"]])) $stack[$interface["member"]] = [[], []]; if (!isset($stack[$interface["member"]])) $stack[$interface["member"]] = array();
$interface["style"] = ""; $interface["style"] = "";
if (!empty($interface["pvid"])) $interface["style"] .= "--pvid: {$interface["pvid"]}; "; if (!empty($interface["pvid"])) $interface["style"] .= "--pvid: {$interface["pvid"]}; ";
if (!empty($interface["tagged"])) $interface["style"] .= "--tagged: {$interface["tagged"]}; "; if (!empty($interface["tagged"])) $interface["style"] .= "--tagged: {$interface["tagged"]}; ";
if (!empty($interface["untagged"])) $interface["style"] .= "--untagged: {$interface["untagged"]}; "; if (!empty($interface["untagged"])) $interface["style"] .= "--untagged: {$interface["untagged"]}; ";
$stack[$interface["member"]][1 - $interface["port"] % 2][$interface["port"]] = $interface; $stack[$interface["member"]][$interface["port"]] = $interface;
} }
/*echo ("<!--"); /*echo ("<!--");
var_dump($stack); var_dump($interfaces);
echo ("-->");*/ echo ("-->");*/
?> ?>
@ -51,15 +51,18 @@ echo ("-->");*/
</caption> </caption>
<tbody> <tbody>
<?php <?php
foreach ($stack as $member => $lines) { function display_interface($interface, $odd)
echo "<tr>\n<th>$member</th>\n<td>\n<table class='member'>\n<tbody>\n"; {
foreach ($lines as $interfaces) { if ($interface["port"] % 2 == $odd) {
echo "<tr>\n";
foreach ($interfaces as $interface) {
echo "<td class='{$interface[0]}" . (isset($interface["voice_vlan"]) ? " voice_vlan" : "") . "' title='{$interface[0]}' style='{$interface["style"]}'>{$interface["port"]}</td>\n"; echo "<td class='{$interface[0]}" . (isset($interface["voice_vlan"]) ? " voice_vlan" : "") . "' title='{$interface[0]}' style='{$interface["style"]}'>{$interface["port"]}</td>\n";
};
echo "</tr>\n";
} }
}
foreach ($stack as $member => $interfaces) {
echo "<tr>\n<th>$member</th>\n<td>\n<table class='member'>\n<tbody>\n<tr>\n";
foreach ($interfaces as $interface) display_interface($interface, 1);
echo "</tr>\n<tr>\n";
foreach ($interfaces as $interface) display_interface($interface, 0);
echo "</tr>\n</tbody>\n</table>\n</td>\n</tr>\n"; echo "</tr>\n</tbody>\n</table>\n</td>\n</tr>\n";
} }
?> ?>

View File

@ -153,11 +153,11 @@ td {
.vlan { .vlan {
color: #ecf0f1; color: #ecf0f1;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
background-color: hsl(calc(var(--k) * var(--pvid)) 97% 65%); background-color: hsl(calc(var(--k) * var(--pvid)) 97% 60%);
} }
.vlan:hover { .vlan:hover {
background-color: hsl(calc(var(--k) * var(--pvid)) 65% 75%); background-color: hsl(calc(var(--k) * var(--pvid)) 65% 70%);
} }
.trunk { .trunk {
@ -179,16 +179,16 @@ td {
.hybrid { .hybrid {
background-image: linear-gradient( background-image: linear-gradient(
135deg, 135deg,
hsl(calc(var(--k) * var(--tagged)) 97% 65%) 50%, hsl(calc(var(--k) * var(--tagged)) 97% 60%) 50%,
hsl(calc(var(--k) * var(--untagged)) 97% 65%) 50% hsl(calc(var(--k) * var(--untagged)) 97% 60%) 50%
); );
} }
.hybrid:hover { .hybrid:hover {
background-image: linear-gradient( background-image: linear-gradient(
135deg, 135deg,
hsl(calc(var(--k) * var(--tagged)) 65% 75%) 50%, hsl(calc(var(--k) * var(--tagged)) 65% 70%) 50%,
hsl(calc(var(--k) * var(--untagged)) 65% 75%) 50% hsl(calc(var(--k) * var(--untagged)) 65% 70%) 50%
); );
} }