mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 02:00:46 +08:00
Unify directory NE badges as distinct fabric ids across membership and home.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
3d86bc7594
commit
4b7d13d62b
5 changed files with 188 additions and 162 deletions
|
|
@ -297,34 +297,10 @@ function regionDisplayName(
|
|||
return raw;
|
||||
}
|
||||
|
||||
/** Prefer the folder's primary canvas view (physical / world flat / World drill). */
|
||||
function primaryTreeView(
|
||||
folder: TopologyTreeFolderItem | null | undefined,
|
||||
): TopologyTreeViewItem | null {
|
||||
if (!folder) return null;
|
||||
const views = folder.views || [];
|
||||
if (!views.length) return null;
|
||||
if (isWorldDrillFolder(folder)) {
|
||||
return views.find((v) => v.name === "World") || views[0] || null;
|
||||
}
|
||||
if (isUmeWorldContainer(folder)) {
|
||||
return views.find((v) => isWorldFlatViewName(v.name)) || views[0] || null;
|
||||
}
|
||||
return views[0] || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Directory NE badge from API.
|
||||
* Manual canvases count view membership (placed NEs); UME World surfaces use inventory.
|
||||
*/
|
||||
/** Directory NE badge: API already returns distinct-subtree ne_count. */
|
||||
function folderNeCount(folder: TopologyTreeFolderItem | null | undefined): number {
|
||||
if (!folder) return 0;
|
||||
if (folder.ne_count != null && Number.isFinite(Number(folder.ne_count))) {
|
||||
return Math.max(0, Math.floor(Number(folder.ne_count) || 0));
|
||||
}
|
||||
// Legacy fallback before API ne_count: primary view only (no recursive sum).
|
||||
const primary = primaryTreeView(folder);
|
||||
return primary ? Math.max(0, Math.floor(Number(primary.node_count) || 0)) : 0;
|
||||
return Math.max(0, Math.floor(Number(folder.ne_count) || 0));
|
||||
}
|
||||
|
||||
function formatNeCount(count: number): string {
|
||||
|
|
|
|||
|
|
@ -427,7 +427,7 @@ export type TopologyTreeFolderItem = {
|
|||
sort_order: number;
|
||||
is_system: boolean;
|
||||
external_ref?: string;
|
||||
/** Real NE inventory under this folder (subtree). Region folders are not NEs. */
|
||||
/** Distinct fabric NE count in this folder subtree (API). Region icons excluded. */
|
||||
ne_count?: number;
|
||||
views: TopologyTreeViewItem[];
|
||||
children: TopologyTreeFolderItem[];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue