Harden topology canvas edge delete, discover cancel, and map UX.

Persist Fabric edge deletes, stop LLDP jobs from the canvas, surface truncation/placeholders/stale edges, and fix LLDP job deep-links.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-05 21:23:00 +08:00
parent 5e567408e7
commit 617d4245b0
14 changed files with 468 additions and 238 deletions

View file

@ -1377,6 +1377,17 @@ const en = {
folderHint: "Regions group maps. After creating a region, add a physical or custom map yourself.",
folderHintShort: "Region folder",
outsidePeers: "{{count}} outside peer(s) linked but not on this map",
projectNeighbors: "Project neighbors",
projectedNeighbors: "Projected {{count}} neighbor(s) onto the map",
localBrowserOnly: "this browser only",
deleteEdgeConfirm:
"Delete selected link(s)? This removes them from Fabric globally; LLDP may recreate them on the next collect.",
edgeDeleted: "Deleted {{count}} link(s)",
discoverCancelled: "Discovery cancelled",
truncatedMembership: "Membership cap reached; some neighbors were not placed. Use classify/slices or a new map.",
truncatedNodes: "Too many view nodes; display truncated. Narrow membership or create another map.",
truncatedEdges: "Too many edges; display truncated. Filter status or create another map.",
truncatedGeneric: "Graph data truncated. Narrow scope or create another map.",
newMap: "New",
newMapName: "New topology",
rename: "Rename",
@ -1399,7 +1410,7 @@ const en = {
unsavedConfirm: "You have unsaved changes. Discard and switch maps?",
saving: "Saving…",
saved: "Topology saved",
discover: "Discover all links",
discover: "Discover links",
discovering: "Discovering…",
discoverOne: "Discover links",
discovered: "Discovery done: +{{added}} updated {{updated}} missing {{stale}}",
@ -1541,16 +1552,6 @@ const en = {
discoverParserStub: "Parser \"{{parser}}\" is still a stub; output was collected but neighbors were not parsed",
discoverNoTargets:
"No scannable NEs on the map. Add managed NEs, or UME NEs with a CLI connect profile.",
discoverFilter: "Result filter",
discoverFilterIssues: "Issues",
discoverFilterFail: "Failed",
discoverFilterWarn: "Warnings",
discoverFilterOk: "OK",
discoverFilterAll: "All",
discoverFilterDetail: "Details",
discoverListTitle: "Discovery details",
discoverListEmpty: "No NEs under the current filter.",
discoverShowLimited: "Showing first {{shown}} / {{total}} (narrow with filters)",
discoverViewDetail: "Detail",
discoverLinkCount: "{{count}} link(s)",
discoverLinksTitle: "Matched links ({{count}})",

View file

@ -1369,6 +1369,16 @@ const zh = {
folderHint: "区域用于分组。新建区域后请自行添加物理拓扑或自定义图。",
folderHintShort: "区域目录",
outsidePeers: "图外对端 {{count}} 个(有链路未上图)",
projectNeighbors: "投影邻居上图",
projectedNeighbors: "已投影 {{count}} 个邻居上图",
localBrowserOnly: "仅本浏览器",
deleteEdgeConfirm: "删除选中链路?将从 Fabric 全局移除;LLDP 下次采集若仍存在可能再次出现。",
edgeDeleted: "已删除 {{count}} 条链路",
discoverCancelled: "发现已取消",
truncatedMembership: "视图已达成员上限,部分邻居未上图。可去分类/切片或新建视图。",
truncatedNodes: "画布节点过多已截断显示。建议新建视图或收紧成员范围。",
truncatedEdges: "画布链路过多已截断显示。建议筛选状态或新建视图。",
truncatedGeneric: "图数据已截断显示。建议收紧范围或新建视图。",
newMap: "新建",
newMapName: "新拓扑图",
rename: "重命名",
@ -1391,7 +1401,7 @@ const zh = {
unsavedConfirm: "有未保存的更改,确定丢弃并切换吗?",
saving: "保存中…",
saved: "拓扑已保存",
discover: "发现全量链路",
discover: "发现链路",
discovering: "发现中…",
discoverOne: "发现链路",
discovered: "发现完成:新增 {{added}},更新 {{updated}},未发现 {{stale}}",
@ -1531,16 +1541,6 @@ const zh = {
discoverVendorRequired: "未设置厂商/设备类型,已跳过下发 LLDP 命令",
discoverParserStub: "厂商解析器「{{parser}}」仍为 stub,已采集到输出但未能解析邻居",
discoverNoTargets: "画布上没有可扫描网元。请添加托管网元,或添加已配置 CLI 凭据的 UME 网元。",
discoverFilter: "结果筛选",
discoverFilterIssues: "问题",
discoverFilterFail: "失败",
discoverFilterWarn: "警告",
discoverFilterOk: "成功",
discoverFilterAll: "全部",
discoverFilterDetail: "详情",
discoverListTitle: "发现详情",
discoverListEmpty: "当前筛选下没有网元。",
discoverShowLimited: "仅显示前 {{shown}} / {{total}} 条(请用筛选缩小范围)",
discoverViewDetail: "详情",
discoverLinkCount: "链路 {{count}}",
discoverLinksTitle: "匹配链路({{count}})",