Flag LiveTrack sessions whose map Garmin no longer serves
CI / check (push) Successful in 42s
CI / deploy (push) Successful in 20s

Ended sessions past the ~24h Garmin appears to keep a live-track page
around for get verified once at app startup and, once confirmed dead,
flagged so the panel greys them out instead of only failing after a
click. Already-flagged sessions are skipped on later startups so this
doesn't keep re-hitting Garmin for the same dead session.
This commit is contained in:
randy committed 2026-09-08 14:19:15 +02:00
1 parent 141b7a08ce
commit 0c4ee97368
5 files changed
+98 -3

No files matched your search

+5
View File
@@ -781,6 +781,11 @@ html, body {
cursor: wait;
}
.livetrack-panel__row:disabled {
opacity: 0.5;
cursor: default;
}
.livetrack-panel__label {
flex: 1;
min-width: 0;
+6 -3
View File
@@ -76,15 +76,18 @@ export class LiveTrackPanelControl {
return;
}
sessions.forEach(({ id, received_at, summary }) => {
sessions.forEach(({ id, received_at, summary, map_available }) => {
const li = document.createElement("li");
li.className = "livetrack-panel__item";
const unavailable = map_available === false;
const button = document.createElement("button");
button.type = "button";
button.className = "livetrack-panel__row";
button.classList.toggle("active", id === this._activeSessionId);
button.title = id;
button.disabled = unavailable;
button.title = unavailable ? "Garmin no longer serves this session's map" : id;
const labelSpan = document.createElement("span");
labelSpan.className = "livetrack-panel__label";
@@ -100,7 +103,7 @@ export class LiveTrackPanelControl {
} else {
button.append(labelSpan, timeSpan);
}
button.addEventListener("click", () => this._toggleTrack(id, button));
if (!unavailable) button.addEventListener("click", () => this._toggleTrack(id, button));
li.appendChild(button);
this._list.appendChild(li);
});