Files
comunidadhll/ai/tasks/done/TASK-128-build-simplified-internal-match-detail-page.md
2026-05-19 14:58:35 +02:00

4.1 KiB

id, title, status, type, team, supporting_teams, roadmap_item, priority
id title status type team supporting_teams roadmap_item priority
TASK-128 Build simplified internal match detail page done frontend Frontend Senior
Experto en interfaz
Backend Senior
rcon-full-data high

TASK-128 - Build simplified internal match detail page

Goal

Make frontend/historico-partida.html useful as a lightweight internal scoreboard-style match detail page backed by the internal RCON detail API.

Background

When a safe public scoreboard link is unavailable, users should still be able to inspect the match through HLL Vietnam. The page should show summary, score, winner, factions/teams if available, player stats and a relevant event timeline without advanced charts.

Constraints

  • Do not add advanced charts or graphs.
  • Do not expose raw player IDs unless required by an already approved API contract.
  • Do not reintroduce Comunidad Hispana #03.
  • Do not show paused Elo/MVP blocks.
  • Do not expose public "snapshot" wording.
  • Preserve HLL Vietnam styling.

Allowed Changes

  • frontend/historico-partida.html
  • frontend/assets/js/historico-partida.js
  • frontend/assets/css/historico.css if needed
  • this task file when moving it through the workflow

Implementation Requirements

  • Work from a dedicated branch for this task.
  • Read first:
    • AGENTS.md
    • ai/architecture-index.md
    • ai/repo-context.md
    • ai/orchestrator/frontend-senior.md
    • ai/orchestrator/ui-expert.md
    • frontend/historico-partida.html
    • frontend/assets/js/historico-partida.js
    • frontend/assets/css/historico.css
    • backend match detail API code from TASK-124
  • Use the internal match detail API.
  • Display map, server, result, winner, game mode, start/end time, source/confidence and external scoreboard link when available.
  • Add player stats table with player, team, kills, deaths, teamkills, K/D, top weapons, most killed and death by.
  • Add event/timeline section for match start, match end, kill sample/recent kills and useful team switches.
  • Handle partial or missing data gracefully with controlled empty states.
  • Keep implementation in vanilla JavaScript.

Validation Commands

  • node --check frontend/assets/js/historico-partida.js
  • docker compose up -d --build backend frontend

Manual Verification Steps

  • Open a match detail from the recent matches list.
  • Verify a match with AdminLog kill data shows at least one kill/weapon row.
  • Verify a match without player stats shows a controlled empty state.
  • Confirm no Elo/MVP/server #03/snapshot wording appears.
  • Confirm git diff --name-only matches the allowed scope.

Git Requirements

  • Create a dedicated branch for this task, for example codex/task-128-internal-match-detail-page.
  • Run relevant validation before committing.
  • Stage only intended files.
  • Commit the completed implementation.
  • Push the branch to origin.

Outcome

Reworked frontend/historico-partida.html and frontend/assets/js/historico-partida.js into a simplified internal scoreboard-style detail page backed by /api/historical/matches/detail?server=...&match=....

The page correctly URL-encodes materialized RCON match ids containing colons, displays match summary cards, source/confidence, optional external scoreboard action, player stats with K/D, top weapons, most-killed/death-by summaries, and timeline event counts. It handles missing player/timeline data with controlled empty states and does not expose raw player IDs.

Validation Result

  • Passed: node --check frontend/assets/js/historico-partida.js
  • Passed: docker compose up -d --build backend frontend
  • Browser-verified detail navigation from http://localhost:8080/historico.html.
  • Browser-verified known materialized match detail renders at http://localhost:8080/historico-partida.html?server=comunidad-hispana-02&match=comunidad-hispana-02%3A1779178461%3A1779183861%3Acarentanwarfare.
  • Confirmed AntonioPruna renders with 1 kill, 0 deaths and M1 GARAND.
  • Confirmed the victim row renders 1 death and death_by AntonioPruna.
  • Confirmed timeline/event counts render.
  • Confirmed no visible Elo/MVP/Comunidad Hispana #03/snapshot wording appears.