Fix AP location and table root consistency

- Only include APs in getSwitchesInLocation for AP sub-locations
- Update table.js to include APs in switch graph like render.js

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ian Gulliver
2026-02-02 22:17:50 -08:00
parent 92ab5d8a6e
commit ced0a6e599
2 changed files with 6 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
import { getLabel, getFirstName, isSwitch, getInterfaceSpeed, getInterfaceErrors, getInterfaceRates, getInterfaceUptime, getInterfaceLastError } from './nodes.js'; import { getLabel, getFirstName, isSwitch, isAP, getInterfaceSpeed, getInterfaceErrors, getInterfaceRates, getInterfaceUptime, getInterfaceLastError } from './nodes.js';
import { buildSwitchUplinks } from './topology.js'; import { buildSwitchUplinks } from './topology.js';
import { escapeHtml, formatUniverse } from './format.js'; import { escapeHtml, formatUniverse } from './format.js';
import { tableData, tableSortKeys, setTableSortKeys } from './state.js'; import { tableData, tableSortKeys, setTableSortKeys } from './state.js';
@@ -96,7 +96,7 @@ export function renderNetworkTable() {
nodes.forEach(node => nodesByTypeId.set(node.id, node)); nodes.forEach(node => nodesByTypeId.set(node.id, node));
const upstreamConnections = new Map(); const upstreamConnections = new Map();
const allSwitches = nodes.filter(n => isSwitch(n)); const allSwitches = nodes.filter(n => isSwitch(n) || isAP(n));
const switchLinks = []; const switchLinks = [];
links.forEach(link => { links.forEach(link => {
@@ -104,8 +104,8 @@ export function renderNetworkTable() {
const nodeB = nodesByTypeId.get(link.node_b_id); const nodeB = nodesByTypeId.get(link.node_b_id);
if (!nodeA || !nodeB) return; if (!nodeA || !nodeB) return;
const aIsSwitch = isSwitch(nodeA); const aIsSwitch = isSwitch(nodeA) || isAP(nodeA);
const bIsSwitch = isSwitch(nodeB); const bIsSwitch = isSwitch(nodeB) || isAP(nodeB);
if (aIsSwitch && !bIsSwitch) { if (aIsSwitch && !bIsSwitch) {
upstreamConnections.set(nodeB.id, { upstreamConnections.set(nodeB.id, {

View File

@@ -130,7 +130,8 @@ export function getSwitchesInLocation(loc, assignedNodes) {
const switches = []; const switches = [];
const nodes = assignedNodes.get(loc) || []; const nodes = assignedNodes.get(loc) || [];
nodes.forEach(n => { nodes.forEach(n => {
if (isSwitch(n) || isAP(n)) switches.push(n); if (isSwitch(n)) switches.push(n);
if (isAP(n) && loc.isAPLocation) switches.push(n);
}); });
loc.children.forEach(child => { loc.children.forEach(child => {
if (child.anonymous || child.isAPLocation) { if (child.anonymous || child.isAPLocation) {