In-progress matches have no link and show "—" for duration #115

Closed
opened 2026-10-09 19:55:41 -04:00 by goddard · 1 comment
Collaborator

On Matches, in-progress matches are dead text.

  • MatchHistory.svelte:330-336 links only completed matches. In-progress and interrupted rows are plain text and don't link to the server either.
  • Duration is "—" for anything not completed, with the reason only in a tooltip (MatchHistory.svelte:369-374).

The server cards already show the running time of the same matches as Match time (ServerCard.svelte:105-106,175).

Screenshots

Before:
Before

After (mockup):
After (mockup)

Fix

  • Link in-progress rows to the live server
  • Show the running match time for in-progress matches, in the same format as the server cards' Match time
On Matches, in-progress matches are dead text. - `MatchHistory.svelte:330-336` links only completed matches. In-progress and interrupted rows are plain text and don't link to the server either. - Duration is "—" for anything not completed, with the reason only in a tooltip (`MatchHistory.svelte:369-374`). The server cards already show the running time of the same matches as Match time (`ServerCard.svelte:105-106,175`). **Screenshots** Before: ![Before](https://gitea.thewrightserver.net/attachments/bc3063d1-9012-4d07-bf48-2a43c66f6aab) After (mockup): ![After (mockup)](https://gitea.thewrightserver.net/attachments/9c7aafbb-1878-40d6-a636-c62d2f8c11ff) **Fix** - [x] Link in-progress rows to the live server - [x] Show the running match time for in-progress matches, in the same format as the server cards' Match time
goddard added the
priority
low
type/ux
labels 2026-10-09 19:55:41 -04:00
josh was assigned by goddard 2026-10-09 19:55:41 -04:00
Author
Collaborator

Reviewed a0663e43b8. In-progress matches now link to their server and show a running time in the server cards' format, so both fix items are done and I'm closing this. There's a related problem in the review notes that's worth its own issue.

Checklist

  • Link in-progress rows to the live server. An in-progress match whose server still exists links its map name to /servers/<name>, keeping the current filters as returnTo (MatchHistory.svelte:349-357). Rows for deleted servers stay plain text. In the preview, Town Survival links to /servers/t6_zombie_town_1 and opens that server's page.
  • Show the running match time. In-progress rows use elapsedSince against the shared clock (MatchHistory.svelte:42,334-339), like the server cards' Match time. That clock ticks every second from the stream the layout starts on every page (stores/servers.ts:150-153, +layout.svelte:97). The phone summary line shows the time too. In the preview, the three in-progress rows read 23m 59s, 39m 59s and 58m 59s, then 24m 02s, 40m 02s and 59m 02s three seconds later. Tests cover the link, a deleted server, and five start times, including a SQLite-style timestamp.

Review notes

  • Good extra catches: the Duration tooltip and the "About match history" text now explain in-progress durations, and interrupted rows still show "—".
  • ui-match-history.test.ts passes locally (17 tests). CI run 847 on this commit is green, and so is run 849 on the current HEAD.
  • Not blocking, but worth its own issue: a match only stops being in progress when its server reports a new match (leaderboard-ingest.ts:83-88) or the server is deleted (server-history.ts:149). If a server is stopped mid-match, or its host goes offline, the row stays "In progress". It now shows a time that keeps growing and a "View live … match" link to a server that isn't running. The server card hides Match time in that case, because it needs players and no game end (ServerCard.svelte:105-106). Ending a server's open match when it stops, or showing the time only while reports are recent, would fix both pages.
Reviewed a0663e43b8ec50e40c2ce1f1b795a30f73a47273. In-progress matches now link to their server and show a running time in the server cards' format, so both fix items are done and I'm closing this. There's a related problem in the review notes that's worth its own issue. **Checklist** - [x] **Link in-progress rows to the live server.** An in-progress match whose server still exists links its map name to `/servers/<name>`, keeping the current filters as `returnTo` (`MatchHistory.svelte:349-357`). Rows for deleted servers stay plain text. In the preview, Town Survival links to `/servers/t6_zombie_town_1` and opens that server's page. - [x] **Show the running match time.** In-progress rows use `elapsedSince` against the shared clock (`MatchHistory.svelte:42,334-339`), like the server cards' Match time. That clock ticks every second from the stream the layout starts on every page (`stores/servers.ts:150-153`, `+layout.svelte:97`). The phone summary line shows the time too. In the preview, the three in-progress rows read 23m 59s, 39m 59s and 58m 59s, then 24m 02s, 40m 02s and 59m 02s three seconds later. Tests cover the link, a deleted server, and five start times, including a SQLite-style timestamp. **Review notes** - Good extra catches: the Duration tooltip and the "About match history" text now explain in-progress durations, and interrupted rows still show "—". - `ui-match-history.test.ts` passes locally (17 tests). CI [run 847](https://gitea.thewrightserver.net/josh/electric-cherry/actions/runs/847) on this commit is green, and so is [run 849](https://gitea.thewrightserver.net/josh/electric-cherry/actions/runs/849) on the current HEAD. - Not blocking, but worth its own issue: a match only stops being in progress when its server reports a new match (`leaderboard-ingest.ts:83-88`) or the server is deleted (`server-history.ts:149`). If a server is stopped mid-match, or its host goes offline, the row stays "In progress". It now shows a time that keeps growing and a "View live … match" link to a server that isn't running. The server card hides Match time in that case, because it needs players and no game end (`ServerCard.svelte:105-106`). Ending a server's open match when it stops, or showing the time only while reports are recent, would fix both pages.
Sign in to join this conversation.