feat: render rcon materialized match details

This commit is contained in:
devRaGonSa
2026-05-19 14:58:35 +02:00
parent f0d50d7c4f
commit 6c1edeaf1b
6 changed files with 332 additions and 211 deletions

View File

@@ -1,80 +0,0 @@
---
id: TASK-127
title: Update recent match link actions
status: pending
type: frontend
team: Frontend Senior
supporting_teams:
- Experto en interfaz
- Backend Senior
roadmap_item: rcon-full-data
priority: medium
---
# TASK-127 - Update recent match link actions
## Goal
Update recent match cards so internal details and external scoreboard links are prioritized clearly and safely.
## Background
Recent match cards should always offer internal details when supported and only show public scoreboard links when the backend provides a safe `match_url`. RCON remains primary, and the UI must not expose stale wording or paused Elo/MVP content.
## Constraints
- Do not reintroduce Comunidad Hispana #03.
- Do not show paused Elo/MVP blocks.
- Do not expose public "snapshot" wording.
- Do not show broken external links.
- Do not change backend behavior unless strictly required and justified.
- Preserve HLL Vietnam tactical, sober styling.
## Allowed Changes
- `frontend/assets/js/historico.js`
- `frontend/assets/js/historico-recent-live.js` if needed
- minimal CSS only if needed for the action layout
- 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.html`
- `frontend/assets/js/historico.js`
- `frontend/assets/js/historico-recent-live.js`
- `frontend/assets/css/historico.css`
- Show score when result exists.
- Show `Ver detalles` internal link for every match with internal detail support.
- Show `Ver scoreboard` or `Ver partida externa` only when `match_url` exists.
- If a match has no score yet, show `En curso` or `Resultado no disponible` instead of `---` when a better status exists.
- Keep cards compatible with existing API fallback payloads.
## Validation Commands
- `node --check frontend/assets/js/historico.js`
- `node --check frontend/assets/js/historico-recent-live.js` if changed
- `docker compose up -d --build backend frontend`
## Manual Verification Steps
- Open `http://localhost:8080/historico.html`.
- Confirm scores appear where available.
- Confirm internal detail link is visible when supported.
- Confirm external scoreboard link appears only when `match_url` exists.
- Confirm there is no Elo/MVP/server #03/snapshot wording.
- Confirm `git diff --name-only` matches the allowed scope.
## Git Requirements
- Create a dedicated branch for this task, for example `codex/task-127-recent-match-actions`.
- Run relevant validation before committing.
- Stage only intended files.
- Commit the completed implementation.
- Push the branch to origin.

View File

@@ -1,79 +0,0 @@
---
id: TASK-128
title: Build simplified internal match detail page
status: pending
type: frontend
team: Frontend Senior
supporting_teams:
- Experto en interfaz
- Backend Senior
roadmap_item: rcon-full-data
priority: 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.