Add named multi-panel traffic boards with dedicated wall tabs.

Persist board/panel layouts server-side, open each board outside the network shell so workbench reloads do not refresh walls, and fix mapped-baseline chart overlay plus fullscreen fit.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-01 17:03:11 +08:00
parent 214bc56774
commit 00d3e95e2d
22 changed files with 1923 additions and 345 deletions

View file

@ -33,6 +33,8 @@ const en = {
webcrtDesc: "Interactive browser login to connected NEs (SSH/Telnet)",
topology: "Topology",
topologyDesc: "Drag NE topology maps; discover links via LLDP/CDP",
portTrafficWall: "Traffic wall",
portTrafficWallDesc: "Named traffic boards in dedicated tabs",
users: "Users",
usersDesc: "Admin: create, disable users and reset passwords",
audit: "Audit",
@ -87,6 +89,36 @@ const en = {
wallEmpty: "No monitored devices yet. Add a device and pick interfaces first.",
fullscreen: "Fullscreen",
exitFullscreen: "Exit fullscreen",
board: "Board",
boardPick: "Select board",
boardPickHint: "Select or create a traffic wall board.",
boardEmpty: "No boards yet. Create one for cutover or duty monitoring.",
boardDefaultName: "Untitled board",
boardName: "Name",
boardCols: "Columns",
boardCreate: "New board",
boardEdit: "Edit layout",
boardSave: "Save",
boardCancel: "Cancel",
boardSaved: "Board saved",
boardCreated: "Board created",
boardDeleted: "Board deleted",
boardConfirmDelete: "Delete this board and its panels?",
boardUnsavedLeave: "You have unsaved changes. Leave anyway?",
boardOpenTab: "Open in new tab",
boardOpen: "Open wall",
boardListHint: "Open a board in its own browser tab; launching Network from the workbench will not refresh open walls.",
boardPanelCount: "Panels",
boardUpdated: "Updated",
boardClosedHint: "You can close this tab, or reopen from Network → Traffic wall list.",
boardAddPanel: "Add panel",
boardNoPanels: "No panels yet. Edit the board and add interfaces.",
boardPickDevice: "Select device",
boardPanelSettings: "Panel settings",
boardPanelTitle: "Title (optional)",
boardColSpan: "Column span",
boardPanelStale: "Interface missing or inactive. Please reselect.",
boardRetarget: "Reselect port",
edit: "Edit",
save: "Save",
start: "Start",
@ -286,6 +318,7 @@ const en = {
titleCollect: "Batch Collect",
titleWebcrt: "WebCRT",
titleTopology: "Topology",
titlePortTrafficWall: "Traffic wall",
titleUsers: "Users",
titleAudit: "Audit",
titleApiKeys: "API Keys",

View file

@ -33,6 +33,8 @@ const zh = {
webcrtDesc: "浏览器内交互登录已连通网元(SSH/Telnet)",
topology: "拓扑管理",
topologyDesc: "拖拽编排网元拓扑,支持 LLDP/CDP 发现链路",
portTrafficWall: "流量大屏",
portTrafficWallDesc: "独立页签打开命名流量大屏",
users: "用户管理",
usersDesc: "管理员添加、禁用用户并重置密码",
audit: "操作审计",
@ -87,6 +89,36 @@ const zh = {
wallEmpty: "暂无监控设备。请先添加设备并勾选接口。",
fullscreen: "全屏",
exitFullscreen: "退出全屏",
board: "大屏",
boardPick: "选择大屏",
boardPickHint: "请选择或新建一张流量大屏。",
boardEmpty: "还没有大屏。可新建一张用于割接/值班监控。",
boardDefaultName: "未命名大屏",
boardName: "名称",
boardCols: "列数",
boardCreate: "新建大屏",
boardEdit: "编辑布局",
boardSave: "保存",
boardCancel: "取消",
boardSaved: "大屏已保存",
boardCreated: "大屏已创建",
boardDeleted: "大屏已删除",
boardConfirmDelete: "删除该大屏及其图格配置?",
boardUnsavedLeave: "有未保存的修改,确定离开?",
boardOpenTab: "新页签打开",
boardOpen: "打开大屏",
boardListHint: "点击条目在独立页签打开大屏;从工作台打开网络管理不会刷新已打开的大屏。",
boardPanelCount: "图格数",
boardUpdated: "更新时间",
boardClosedHint: "可关闭本页签;也可回到网络管理 → 流量大屏列表重新打开。",
boardAddPanel: "添加图格",
boardNoPanels: "该大屏还没有图格,请编辑并添加监控接口。",
boardPickDevice: "选择设备",
boardPanelSettings: "图格设置",
boardPanelTitle: "标题(可选)",
boardColSpan: "跨列",
boardPanelStale: "接口已失效或不存在,请重新选择。",
boardRetarget: "重选接口",
edit: "编辑",
save: "保存",
start: "启动",
@ -286,6 +318,7 @@ const zh = {
titleCollect: "批量采集",
titleWebcrt: "WebCRT",
titleTopology: "拓扑管理",
titlePortTrafficWall: "流量大屏",
titleUsers: "用户管理",
titleAudit: "操作审计",
titleApiKeys: "API Key",