Redesign: alerts above fold, fix nav, globalise suppress modal
Lint / Python (flake8) (push) Successful in 37s
Lint / JS (eslint) (push) Successful in 7s
Security / Python Security (bandit) (push) Successful in 40s
Test / Python Tests (pytest) (push) Successful in 53s
Lint / Notify on failure (push) Has been skipped
Lint / Deploy (push) Successful in 2s
Lint / Python (flake8) (push) Successful in 37s
Lint / JS (eslint) (push) Successful in 7s
Security / Python Security (bandit) (push) Successful in 40s
Test / Python Tests (pytest) (push) Successful in 53s
Lint / Notify on failure (push) Has been skipped
Lint / Deploy (push) Successful in 2s
- Dashboard: reorder sections so Active Alerts appear immediately below stat cards rather than after 200+ lines of topology — primary content is now above the fold on all screen sizes - Network Hosts section gains a collapse toggle (persisted to localStorage) so the topology diagram can be hidden when not needed - Admin nav corrected: admin now gets a direct Suppressions link; non-admin no longer sees the page at all (it was always admin-only) - Suppress modal moved from index.html into base.html so [S] keyboard shortcut works on every page, not just the dashboard; form listeners wired in app.js accordingly - Settings modal KV grid: replaced lt-kv-row/lt-kv-label/lt-kv-value (light-mode only) with lt-kv-key/lt-kv-val (dark-mode defined) - style.css: add lt-btn-secondary dark-mode definition, lt-cmd-hint-btn class for ⌘K button, topology collapse styles; remove dead .g-page-header, .g-page-title, .empty-state classes; strip redundant inline styles Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -334,6 +334,10 @@ async function submitSuppress(e) {
|
||||
}
|
||||
}
|
||||
|
||||
// ── Suppress form – wired here so the modal works from any page ──────
|
||||
document.getElementById('suppress-form')?.addEventListener('submit', submitSuppress);
|
||||
document.getElementById('sup-type')?.addEventListener('change', updateSuppressForm);
|
||||
|
||||
// ── Global click delegation ───────────────────────────────────────────
|
||||
document.addEventListener('click', e => {
|
||||
// Refresh button
|
||||
|
||||
+39
-8
@@ -96,6 +96,45 @@
|
||||
content: '…';
|
||||
}
|
||||
|
||||
/* ── Secondary button – dark-mode definition ─────────────────────────
|
||||
base.css only defines .lt-btn-secondary in its light-theme block,
|
||||
so dark mode falls back to the default cyan primary appearance.
|
||||
This restores a visually distinct secondary look in dark mode. */
|
||||
.lt-btn-secondary {
|
||||
background: var(--cyan-dim);
|
||||
border-color: rgba(0,212,255,.28);
|
||||
color: var(--cyan);
|
||||
}
|
||||
.lt-btn-secondary:hover {
|
||||
background: rgba(0,212,255,.18);
|
||||
border-color: rgba(0,212,255,.5);
|
||||
}
|
||||
|
||||
/* ── ⌘K hint button in header ────────────────────────────────────── */
|
||||
.lt-cmd-hint-btn {
|
||||
font-size: 0.65rem;
|
||||
opacity: 0.55;
|
||||
letter-spacing: 0.03em;
|
||||
padding: 0.2rem 0.45rem;
|
||||
}
|
||||
|
||||
/* ── Topology section collapse toggle ────────────────────────────── */
|
||||
.topo-collapse-btn {
|
||||
margin-left: auto;
|
||||
font-size: .7em;
|
||||
color: var(--text-muted);
|
||||
background: transparent;
|
||||
border: 1px solid var(--border-color);
|
||||
padding: 2px 8px;
|
||||
cursor: pointer;
|
||||
font-family: var(--font);
|
||||
letter-spacing: .04em;
|
||||
transition: border-color .15s, color .15s;
|
||||
}
|
||||
.topo-collapse-btn:hover { border-color: var(--amber); color: var(--amber); }
|
||||
.topo-collapsible { overflow: hidden; transition: max-height .25s ease; }
|
||||
.topo-collapsible.is-collapsed { display: none; }
|
||||
|
||||
/* ── Animations used by custom components ─────────────────────────── */
|
||||
@keyframes pulse-red {
|
||||
0%,100% { box-shadow: 0 0 0 0 rgba(255,45,85,.5); }
|
||||
@@ -145,13 +184,6 @@
|
||||
.events-filter-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
||||
.events-filter-bar .lt-input-sm { width: 220px; }
|
||||
.sev-pills { display: flex; gap: 4px; }
|
||||
.g-page-header { margin-bottom: 20px; }
|
||||
.g-page-title {
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
color: var(--text-accent);
|
||||
letter-spacing: .06em;
|
||||
}
|
||||
.g-page-sub { font-size: .78em; color: var(--text-muted); margin-top: 4px; }
|
||||
|
||||
/* ── Badge severity color variants (used with lt-badge) ───────────── */
|
||||
@@ -180,7 +212,6 @@
|
||||
.ts-cell { color: var(--text-muted); font-size: .75em; white-space: nowrap; }
|
||||
.desc-cell { max-width: 280px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
||||
.ticket-link{ color: var(--amber); text-shadow: var(--glow-amber); font-weight: bold; }
|
||||
.empty-state { padding: 28px; text-align: center; color: var(--text-muted); font-size: .82em; }
|
||||
.pagination-notice { font-size: .8em; color: var(--text-muted); padding: 6px 0 8px; }
|
||||
.pagination-notice a { color: var(--amber); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user