diff --git a/static/style.css b/static/style.css
index ef97346..160403e 100644
--- a/static/style.css
+++ b/static/style.css
@@ -724,20 +724,6 @@
background: linear-gradient(90deg, transparent, var(--cyan), transparent);
}
-/* Link health summary */
-.link-summary-panel {
- background: var(--bg2);
- border: 1px solid var(--border-color);
- padding: 12px 16px;
- margin-bottom: 12px;
-}
-.link-summary-panel.link-summary-has-alerts { border-color: var(--amber); }
-.link-summary-grid { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-end; }
-.link-summary-stat { min-width: 80px; }
-.link-summary-stat.lss-alert .lss-label { color: var(--amber); }
-.lss-label { display: block; font-size: .62em; color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px; }
-.lss-value { font-size: 1.2em; font-weight: bold; color: var(--text); }
-.lss-sub { font-size: .7em; color: var(--text-muted); font-weight: normal; }
.link-loading { padding: 20px; text-align: center; color: var(--text-muted); font-size: .8em; }
.link-loading::after { content: ' ...'; animation: blink 1s step-end infinite; }
diff --git a/templates/index.html b/templates/index.html
index 2a9663d..7670724 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -270,44 +270,49 @@
-
-
- UniFi network devices
-
-
- | Status |
- Name |
- Type |
- Model |
- IP |
- Actions |
-
-
-
- {% for d in snapshot.unifi %}
-
- |
-
- {{ 'ONLINE' if d.connected else 'OFFLINE' }}
- |
- {{ d.name }} |
- {{ d.type }} |
- {{ d.model }} |
- {{ d.ip }} |
-
- {% if not d.connected %}
-
- {% endif %}
- |
-
- {% endfor %}
-
-
+
+
╚
+
╝
+
+
+
+ UniFi network devices
+
+
+ | Status |
+ Name |
+ Type |
+ Model |
+ IP |
+ Actions |
+
+
+
+ {% for d in snapshot.unifi %}
+
+ |
+
+ {{ 'ONLINE' if d.connected else 'OFFLINE' }}
+ |
+ {{ d.name }} |
+ {{ d.type }} |
+ {{ d.model }} |
+ {{ d.ip }} |
+
+ {% if not d.connected %}
+
+ {% endif %}
+ |
+
+ {% endfor %}
+
+
+
{% endif %}
diff --git a/templates/links.html b/templates/links.html
index 701930c..f4749dc 100644
--- a/templates/links.html
+++ b/templates/links.html
@@ -13,6 +13,19 @@
+
+
@@ -439,10 +452,6 @@ function renderLinks(data) {
const parts = [];
parts.push(buildLinkSummary(hosts, unifiSwitches));
- parts.push(`
-
-
-
`);
parts.push('');
for (const [hostname, ifaces] of Object.entries(hosts)) {
@@ -471,6 +480,17 @@ function renderLinks(data) {
parts.push('
');
document.getElementById('links-container').innerHTML = parts.join('');
restoreCollapseState();
+ document.getElementById('links-toolbar').style.display = '';
+ applyLinksSearch();
+}
+
+// ββ Host/switch search filter βββββββββββββββββββββββββββββββββββββ
+function applyLinksSearch() {
+ const q = (document.getElementById('links-search')?.value || '').trim().toLowerCase();
+ document.querySelectorAll('.link-host-panel').forEach(panel => {
+ const text = (panel.querySelector('.link-host-name')?.textContent || '').toLowerCase();
+ panel.style.display = (!q || text.includes(q)) ? '' : 'none';
+ });
}
function collapseAll() {
@@ -552,5 +572,7 @@ document.addEventListener('click', e => {
if (e.target.closest('[data-action="collapse-all"]')) { collapseAll(); return; }
if (e.target.closest('[data-action="expand-all"]')) { expandAll(); return; }
});
+
+document.getElementById('links-search')?.addEventListener('input', applyLinksSearch);
{% endblock %}
diff --git a/templates/suppressions.html b/templates/suppressions.html
index 48f2239..ca2cf32 100644
--- a/templates/suppressions.html
+++ b/templates/suppressions.html
@@ -184,20 +184,27 @@
-
- {% for name, host in snapshot.hosts.items() %}
-
-
{{ name }}
-
{{ 'Proxmox Host (prometheus)' if host.source == 'prometheus' else 'Ping-only host' }}
- {% if host.interfaces %}
-
- {% for iface in host.interfaces.keys() | sort %}
-
{{ iface }}
+
+
╚
+
╝
+
+
+
+ {% for name, host in snapshot.hosts.items() %}
+
+
{{ name }}
+
{{ 'Proxmox Host (prometheus)' if host.source == 'prometheus' else 'Ping-only host' }}
+ {% if host.interfaces %}
+
+ {% for iface in host.interfaces.keys() | sort %}
+ {{ iface }}
+ {% endfor %}
+
+ {% endif %}
+
{% endfor %}
- {% endif %}
- {% endfor %}