diff --git a/meshview/templates/node.html b/meshview/templates/node.html index 50d2ba5..af46061 100644 --- a/meshview/templates/node.html +++ b/meshview/templates/node.html @@ -340,6 +340,9 @@ + @@ -1830,6 +1833,11 @@ function showQrCode() { document.getElementById("qrModal").style.display = "flex"; } +function openReachReport() { + if (!fromNodeId) return; + window.location.href = `/reach?node_id=${encodeURIComponent(fromNodeId)}`; +} + function closeQrModal() { document.getElementById("qrModal").style.display = "none"; } diff --git a/meshview/templates/reach.html b/meshview/templates/reach.html index 09b4030..2fd9542 100644 --- a/meshview/templates/reach.html +++ b/meshview/templates/reach.html @@ -8,30 +8,30 @@ } .reach-header { - margin-bottom: 16px; + margin-bottom: 10px; } .reach-header h1 { - font-size: 1.6rem; - margin-bottom: 6px; + font-size: 1.35rem; + margin-bottom: 2px; } .reach-panel { border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 8px; - padding: 16px; + padding: 12px; background: rgba(255, 255, 255, 0.04); } .reach-node-id { font-family: monospace; - font-size: 1.1rem; + font-size: 1rem; } .reach-controls { display: flex; - gap: 10px; - margin-top: 14px; + gap: 8px; + margin-top: 8px; } .reach-search { @@ -48,35 +48,69 @@ .reach-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); - gap: 12px; - margin-top: 16px; + gap: 8px; + margin-top: 10px; } .reach-metric { border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 8px; - padding: 12px; + padding: 8px 10px; background: rgba(0, 0, 0, 0.18); } .reach-metric-value { - font-size: 1.5rem; + font-size: 1.2rem; line-height: 1.2; } .reach-table-wrap { overflow-x: auto; - margin-top: 18px; + margin-top: 10px; } .reach-table { width: 100%; min-width: 760px; + font-size: 0.9rem; } .reach-table th, .reach-table td { vertical-align: top; + padding: 0.35rem 0.5rem; +} + +.reach-count-bar-cell { + min-width: 180px; +} + +.reach-count-bar-track { + position: relative; + height: 20px; + border-radius: 999px; + background: rgba(255, 255, 255, 0.12); + overflow: hidden; +} + +.reach-count-bar-fill { + height: 100%; + min-width: 24px; + border-radius: inherit; + background: #4ade80; +} + +.reach-count-bar-value { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: flex-start; + padding-left: 8px; + font-family: monospace; + font-size: 0.85rem; + color: #fff; + font-weight: 700; } .reach-muted { @@ -109,6 +143,22 @@ +
+ + + + + + + + + + + + +
Node ReachGateway Count
Loading statistics...
+
+
Latest Packets
@@ -143,7 +193,8 @@ {% endblock %}