[style](trx-frontend): shorten aprs live bar window

Limit the APRS live bar to the last 15 minutes and show that
window in the overlay header.

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
2026-03-01 18:23:07 +01:00
parent 00f5108a58
commit 353ce517ec
2 changed files with 13 additions and 2 deletions
@@ -4,7 +4,7 @@ const aprsPacketsEl = document.getElementById("aprs-packets");
const aprsFilterInput = document.getElementById("aprs-filter");
const aprsBarOverlay = document.getElementById("aprs-bar-overlay");
const APRS_MAX_PACKETS = 100;
const APRS_BAR_WINDOW_MS = 60 * 60 * 1000;
const APRS_BAR_WINDOW_MS = 15 * 60 * 1000;
let aprsFilterText = "";
let aprsPacketHistory = [];
@@ -112,7 +112,7 @@ function updateAprsBar() {
aprsBarOverlay.style.display = "none";
return;
}
let html = '<div class="aprs-bar-header"><span class="aprs-bar-title"><span class="aprs-bar-title-word">APRS</span><span class="aprs-bar-title-word">Live</span></span><span class="aprs-bar-clear-wrap"><span class="aprs-bar-clear" role="button" tabindex="0" onclick="window.clearAprsBar()" onkeydown="if(event.key===\'Enter\'||event.key===\' \'){event.preventDefault();window.clearAprsBar();}" aria-label="Clear APRS overlay">Clear</span></span></div>';
let html = '<div class="aprs-bar-header"><span class="aprs-bar-title"><span class="aprs-bar-title-word">APRS</span><span class="aprs-bar-title-word">Live</span></span><span class="aprs-bar-clear-wrap"><span class="aprs-bar-clear" role="button" tabindex="0" onclick="window.clearAprsBar()" onkeydown="if(event.key===\'Enter\'||event.key===\' \'){event.preventDefault();window.clearAprsBar();}" aria-label="Clear APRS overlay">Clear</span></span><span class="aprs-bar-window">Last 15 minutes</span></div>';
for (const pkt of okFrames) {
const ts = pkt._ts ? `<span class="aprs-bar-time">${pkt._ts}</span>` : "";
const call = `<span class="aprs-bar-call">${escapeMapHtml(pkt.srcCall)}</span>`;
@@ -686,6 +686,17 @@ small { color: var(--text-muted); }
.aprs-bar-title-word {
display: inline-block;
}
.aprs-bar-window {
margin-left: auto;
display: inline-flex;
align-items: center;
color: var(--text-muted);
font-size: 0.72em;
font-weight: 600;
letter-spacing: 0.03em;
text-transform: none;
white-space: nowrap;
}
.aprs-bar-clear-wrap {
display: inline-flex;
align-items: center;