Add Network Management module with collapsible left nav.

Consolidate devices, topology, alarms, WebCRT, and collection tasks under /network; keep legacy path redirects and workbench entry.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-07-31 09:48:31 +08:00
parent 3bd5d5b7da
commit 2fc47e5135
13 changed files with 595 additions and 182 deletions

View file

@ -2612,3 +2612,140 @@ pre {
opacity: 0.6;
cursor: not-allowed;
}
/* —— Network Management shell (left nav + main) —— */
.network-shell {
display: flex;
height: calc(100vh - 56px);
min-height: 480px;
margin: -20px -28px -32px;
background: #e8edf3;
overflow: hidden;
}
.network-nav {
width: 220px;
flex-shrink: 0;
display: flex;
flex-direction: column;
background: #f7f9fc;
border-right: 1px solid #d0d7e2;
min-height: 0;
}
.network-nav__scroll {
flex: 1;
min-height: 0;
overflow: auto;
padding: 6px 0 16px;
}
.network-nav__group {
margin: 0;
}
.app-main .network-nav__group-toggle,
.network-nav__group-toggle {
display: flex;
align-items: center;
gap: 6px;
width: 100%;
padding: 10px 12px;
border: 0;
border-radius: 0;
background: transparent;
color: #0f172a;
font-size: 13px;
font-weight: 600;
text-align: left;
cursor: pointer;
}
.app-main .network-nav__group-toggle:hover,
.network-nav__group-toggle:hover {
background: #eef2f7;
}
.network-nav__group.is-active-group .network-nav__group-toggle {
color: #1565c0;
}
.network-nav__chevron {
display: inline-block;
width: 1em;
color: #64748b;
font-size: 12px;
line-height: 1;
}
.network-nav__group-label {
flex: 1;
min-width: 0;
}
.network-nav__list {
list-style: none;
margin: 0;
padding: 0 0 6px;
}
.network-nav__link {
display: block;
padding: 7px 12px 7px 30px;
color: #334155;
text-decoration: none;
font-size: 13px;
border-left: 3px solid transparent;
}
.network-nav__link:hover {
background: #eef2f7;
color: #0f172a;
}
.network-nav__link.is-active {
background: #e3effc;
color: #1565c0;
border-left-color: #1565c0;
font-weight: 600;
}
.network-main {
flex: 1;
min-width: 0;
min-height: 0;
overflow: auto;
padding: 16px 20px 24px;
background: #eef2f7;
}
.network-main:has(.topo-page),
.network-main:has(.webcrt-shell) {
padding: 0;
overflow: hidden;
}
.network-main .topo-page,
.network-main .topo-page.is-sidebar-collapsed {
height: 100%;
margin: 0;
min-height: 0;
}
.network-main .webcrt-shell {
height: 100%;
margin: 0;
min-height: 0;
border: 0;
}
.network-placeholder h2 {
margin: 0 0 8px;
}
.network-placeholder__list {
margin: 12px 0 0;
padding-left: 1.25rem;
color: #475569;
line-height: 1.6;
}