From a01976cbe8300382db3199418332305080389f75 Mon Sep 17 00:00:00 2001 From: Alpinux Date: Wed, 6 May 2026 14:14:06 +0200 Subject: [PATCH] =?UTF-8?q?Bannis=20:=20blocs=20AS=20repliables=20par=20d?= =?UTF-8?q?=C3=A9faut=20(fixes=20#47)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chaque AS est replié au chargement (▶). Clic sur la ligne titre pour déplier/replier. Bouton "Tout déplier / Tout replier". La recherche dynamique déplie automatiquement les blocs qui contiennent un résultat. Co-Authored-By: Claude Sonnet 4.6 --- app/static/app.css | 3 +++ app/templates/errors_404.html | 39 ++++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/app/static/app.css b/app/static/app.css index d539c81..d882d92 100644 --- a/app/static/app.css +++ b/app/static/app.css @@ -381,6 +381,9 @@ footer { background: var(--blue-dark); color: rgba(255,255,255,.6); margin-top: .err-ignored-chip { display: inline-flex; align-items: center; gap: .35rem; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 20px; padding: .2rem .6rem .2rem .8rem; font-size: .82rem; font-family: monospace; } .err-ignored-remove { background: none; border: none; cursor: pointer; font-size: .75rem; color: #9ca3af; line-height: 1; padding: 0; transition: color .15s; } .err-ignored-remove:hover { color: #ef4444; } +.banned-as-row td { cursor: pointer; } +.banned-as-row td:last-child { cursor: default; } +.banned-toggle { display: inline-block; width: 1rem; font-size: .8rem; color: var(--muted); user-select: none; } .banned-table .col-asn { width: 7rem; } .banned-table .col-country { width: 4rem; text-align: center; } .banned-as-row td { background: var(--blue-light); border-top: 2px solid var(--border); } diff --git a/app/templates/errors_404.html b/app/templates/errors_404.html index 920c17d..d6459a6 100644 --- a/app/templates/errors_404.html +++ b/app/templates/errors_404.html @@ -90,6 +90,7 @@
+
@@ -307,8 +308,9 @@ for (const g of data.groups) { const asnLabel = g.asn ? `AS${escHtml(g.asn)}` : 'AS inconnu'; const n = g.entries.length; - html += ` + html += ` @@ -317,7 +319,7 @@ `; for (const entry of g.entries) { - html += ` + html += `
+ ${asnLabel}${g.name ? ' · '+escHtml(g.name) : ''}${g.country ? ' ['+escHtml(g.country)+']' : ''} ${n} entrée${n!==1?'s':''}