Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ca4bcef26c | |||
| 15120a280f |
@@ -118,6 +118,15 @@
|
|||||||
padding: 0.2rem 0.45rem;
|
padding: 0.2rem 0.45rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ── Form group modifiers ────────────────────────────────────────── */
|
||||||
|
.lt-form-group--last { margin-bottom: 0; }
|
||||||
|
|
||||||
|
/* ── Search input size variant ───────────────────────────────────── */
|
||||||
|
.lt-search-input--sm { width: 180px; }
|
||||||
|
|
||||||
|
/* ── Divider compact variant ─────────────────────────────────────── */
|
||||||
|
.lt-divider--compact { margin: 1rem 0 0.75rem; }
|
||||||
|
|
||||||
/* ── Topology section collapse toggle ────────────────────────────── */
|
/* ── Topology section collapse toggle ────────────────────────────── */
|
||||||
.topo-collapse-btn {
|
.topo-collapse-btn {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
@@ -520,6 +529,7 @@
|
|||||||
/* Bus rails */
|
/* Bus rails */
|
||||||
.topo-bus-section {
|
.topo-bus-section {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-width: 860px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
|||||||
+7
-7
@@ -207,7 +207,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<form id="suppress-form">
|
<form id="suppress-form">
|
||||||
<div class="lt-modal-body">
|
<div class="lt-modal-body">
|
||||||
<div class="lt-form-group" style="margin-bottom:12px">
|
<div class="lt-form-group">
|
||||||
<label class="lt-label" for="sup-type">Target Type</label>
|
<label class="lt-label" for="sup-type">Target Type</label>
|
||||||
<select class="lt-select" id="sup-type" name="target_type">
|
<select class="lt-select" id="sup-type" name="target_type">
|
||||||
<option value="host">Host (all interfaces)</option>
|
<option value="host">Host (all interfaces)</option>
|
||||||
@@ -216,20 +216,20 @@
|
|||||||
<option value="all">Global Maintenance</option>
|
<option value="all">Global Maintenance</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-form-group" id="sup-name-group" style="margin-bottom:12px">
|
<div class="lt-form-group" id="sup-name-group">
|
||||||
<label class="lt-label" for="sup-name">Target Name</label>
|
<label class="lt-label" for="sup-name">Target Name</label>
|
||||||
<input type="text" class="lt-input" id="sup-name" name="target_name" placeholder="e.g. large1">
|
<input type="text" class="lt-input" id="sup-name" name="target_name" placeholder="e.g. large1">
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-form-group" id="sup-detail-group" style="margin-bottom:12px;display:none">
|
<div class="lt-form-group" id="sup-detail-group" style="display:none">
|
||||||
<label class="lt-label" for="sup-detail">Interface <span class="lt-field-hint">(interface type only)</span></label>
|
<label class="lt-label" for="sup-detail">Interface <span class="lt-field-hint">(interface type only)</span></label>
|
||||||
<input type="text" class="lt-input" id="sup-detail" name="target_detail" placeholder="e.g. enp35s0">
|
<input type="text" class="lt-input" id="sup-detail" name="target_detail" placeholder="e.g. enp35s0">
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-form-group" style="margin-bottom:12px">
|
<div class="lt-form-group">
|
||||||
<label class="lt-label" for="sup-reason">Reason <span class="required">*</span></label>
|
<label class="lt-label" for="sup-reason">Reason <span class="required">*</span></label>
|
||||||
<input type="text" class="lt-input" id="sup-reason" name="reason"
|
<input type="text" class="lt-input" id="sup-reason" name="reason"
|
||||||
placeholder="e.g. Planned switch reboot" required>
|
placeholder="e.g. Planned switch reboot" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-form-group" style="margin-bottom:0">
|
<div class="lt-form-group lt-form-group--last">
|
||||||
<label class="lt-label">Duration</label>
|
<label class="lt-label">Duration</label>
|
||||||
<div class="duration-pills">
|
<div class="duration-pills">
|
||||||
<button type="button" class="pill" data-duration="30">30 min</button>
|
<button type="button" class="pill" data-duration="30">30 min</button>
|
||||||
@@ -258,7 +258,7 @@
|
|||||||
<button type="button" class="lt-modal-close" data-modal-close aria-label="Close">✕</button>
|
<button type="button" class="lt-modal-close" data-modal-close aria-label="Close">✕</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-modal-body">
|
<div class="lt-modal-body">
|
||||||
<table class="lt-table" style="width:100%">
|
<table class="lt-table">
|
||||||
<thead><tr><th>Shortcut</th><th>Action</th></tr></thead>
|
<thead><tr><th>Shortcut</th><th>Action</th></tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr><td>Ctrl / ⌘ + K</td><td>Command palette</td></tr>
|
<tr><td>Ctrl / ⌘ + K</td><td>Command palette</td></tr>
|
||||||
@@ -295,7 +295,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="lt-field-hint" id="settings-refresh-hint"></div>
|
<div class="lt-field-hint" id="settings-refresh-hint"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-divider" style="margin:1rem 0 0.75rem"></div>
|
<div class="lt-divider lt-divider--compact"></div>
|
||||||
<div class="lt-kv-grid">
|
<div class="lt-kv-grid">
|
||||||
<span class="lt-kv-key">User</span>
|
<span class="lt-kv-key">User</span>
|
||||||
<span class="lt-kv-val lt-kv-val--cyan">{{ user.name or user.username }}</span>
|
<span class="lt-kv-val lt-kv-val--cyan">{{ user.name or user.username }}</span>
|
||||||
|
|||||||
+11
-11
@@ -31,32 +31,32 @@
|
|||||||
<div class="lt-stat-card{% if summary.critical %} lt-stat-card--alert{% endif %}"
|
<div class="lt-stat-card{% if summary.critical %} lt-stat-card--alert{% endif %}"
|
||||||
id="stat-critical" role="button" tabindex="0"
|
id="stat-critical" role="button" tabindex="0"
|
||||||
data-stat-filter="critical" aria-label="{{ summary.critical or 0 }} critical alerts">
|
data-stat-filter="critical" aria-label="{{ summary.critical or 0 }} critical alerts">
|
||||||
<span class="lt-stat-icon" aria-hidden="true" style="color:var(--red);text-shadow:var(--glow-red)">●</span>
|
<span class="lt-stat-icon lt-text-red" aria-hidden="true">●</span>
|
||||||
<div class="lt-stat-info">
|
<div class="lt-stat-info">
|
||||||
<span class="lt-stat-value" id="stat-critical-val" style="color:var(--red)">{{ summary.critical or 0 }}</span>
|
<span class="lt-stat-value lt-text-red" id="stat-critical-val">{{ summary.critical or 0 }}</span>
|
||||||
<span class="lt-stat-label">Critical</span>
|
<span class="lt-stat-label">Critical</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-stat-card"
|
<div class="lt-stat-card"
|
||||||
id="stat-warning" role="button" tabindex="0"
|
id="stat-warning" role="button" tabindex="0"
|
||||||
data-stat-filter="warning" aria-label="{{ summary.warning or 0 }} warning alerts">
|
data-stat-filter="warning" aria-label="{{ summary.warning or 0 }} warning alerts">
|
||||||
<span class="lt-stat-icon" aria-hidden="true" style="color:var(--amber)">●</span>
|
<span class="lt-stat-icon lt-text-amber" aria-hidden="true">●</span>
|
||||||
<div class="lt-stat-info">
|
<div class="lt-stat-info">
|
||||||
<span class="lt-stat-value" id="stat-warning-val" style="color:var(--amber)">{{ summary.warning or 0 }}</span>
|
<span class="lt-stat-value lt-text-amber" id="stat-warning-val">{{ summary.warning or 0 }}</span>
|
||||||
<span class="lt-stat-label">Warning</span>
|
<span class="lt-stat-label">Warning</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-stat-card" id="stat-hosts" aria-label="Monitored hosts">
|
<div class="lt-stat-card" id="stat-hosts" aria-label="Monitored hosts">
|
||||||
<span class="lt-stat-icon" aria-hidden="true" style="color:var(--cyan)">⬡</span>
|
<span class="lt-stat-icon lt-text-cyan" aria-hidden="true">⬡</span>
|
||||||
<div class="lt-stat-info">
|
<div class="lt-stat-info">
|
||||||
<span class="lt-stat-value" id="stat-hosts-val" style="color:var(--cyan)">{{ snapshot.hosts | length }}</span>
|
<span class="lt-stat-value lt-text-cyan" id="stat-hosts-val">{{ snapshot.hosts | length }}</span>
|
||||||
<span class="lt-stat-label">Hosts</span>
|
<span class="lt-stat-label">Hosts</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="lt-stat-card" id="stat-resolved" aria-label="{{ recent_resolved | length }} alerts resolved in last 24 hours">
|
<div class="lt-stat-card" id="stat-resolved" aria-label="{{ recent_resolved | length }} alerts resolved in last 24 hours">
|
||||||
<span class="lt-stat-icon" aria-hidden="true" style="color:var(--green);text-shadow:var(--glow)">✔</span>
|
<span class="lt-stat-icon lt-text-green" aria-hidden="true">✔</span>
|
||||||
<div class="lt-stat-info">
|
<div class="lt-stat-info">
|
||||||
<span class="lt-stat-value" id="stat-resolved-val" style="color:var(--green)">{{ recent_resolved | length }}</span>
|
<span class="lt-stat-value lt-text-green" id="stat-resolved-val">{{ recent_resolved | length }}</span>
|
||||||
<span class="lt-stat-label">Resolved 24h</span>
|
<span class="lt-stat-label">Resolved 24h</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -253,7 +253,7 @@
|
|||||||
TIER 4 connecting bus – two rails (10G green + 1G amber dashed)
|
TIER 4 connecting bus – two rails (10G green + 1G amber dashed)
|
||||||
showing dual-homing for all 6 servers
|
showing dual-homing for all 6 servers
|
||||||
══════════════════════════════════════════════════════════ -->
|
══════════════════════════════════════════════════════════ -->
|
||||||
<div class="topo-bus-section" style="max-width:860px;">
|
<div class="topo-bus-section">
|
||||||
|
|
||||||
<!-- 10G storage bus (Agg → VLAN90) -->
|
<!-- 10G storage bus (Agg → VLAN90) -->
|
||||||
<div class="topo-bus-10g">
|
<div class="topo-bus-10g">
|
||||||
@@ -315,8 +315,8 @@
|
|||||||
<div class="lt-toolbar" id="host-toolbar">
|
<div class="lt-toolbar" id="host-toolbar">
|
||||||
<div class="lt-toolbar-left">
|
<div class="lt-toolbar-left">
|
||||||
<div class="lt-search">
|
<div class="lt-search">
|
||||||
<input type="search" class="lt-input lt-search-input" id="host-search"
|
<input type="search" class="lt-input lt-search-input lt-search-input--sm" id="host-search"
|
||||||
placeholder="Filter hosts…" autocomplete="off" style="width:180px">
|
placeholder="Filter hosts…" autocomplete="off">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user