feat: add current match page and live kill feed
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
---
|
||||
id: TASK-150
|
||||
title: Server card history and current match entrypoints
|
||||
status: done
|
||||
type: frontend
|
||||
team: Frontend Senior
|
||||
supporting_teams: []
|
||||
roadmap_item: rcon-full-data
|
||||
priority: high
|
||||
---
|
||||
|
||||
# TASK-150 - Server card history and current match entrypoints
|
||||
|
||||
## Goal
|
||||
|
||||
Add server-specific navigation buttons to the home page and make the internal
|
||||
historical page accept an initial server filter through the URL.
|
||||
|
||||
## Background
|
||||
|
||||
The home page currently renders live server cards in
|
||||
`frontend/assets/js/main.js`. Each server card currently has a single
|
||||
"Historico" action built through `renderServerAction(server)`.
|
||||
|
||||
We need clearer per-server actions for the active Comunidad Hispana servers:
|
||||
|
||||
- Open the public current scoreboard.
|
||||
- Open our internal historical page already filtered by that server.
|
||||
- Open our future internal live/current match page already filtered by that
|
||||
server.
|
||||
|
||||
Important URL correction:
|
||||
|
||||
The current public scoreboard URLs are the base scoreboard URLs, without
|
||||
`/games`:
|
||||
|
||||
- `comunidad-hispana-01` -> `https://scoreboard.comunidadhll.es`
|
||||
- `comunidad-hispana-02` -> `https://scoreboard.comunidadhll.es:5443`
|
||||
|
||||
The `/games` URLs are only for the external public historical scoreboard, if
|
||||
needed later:
|
||||
|
||||
- `comunidad-hispana-01` -> `https://scoreboard.comunidadhll.es/games`
|
||||
- `comunidad-hispana-02` -> `https://scoreboard.comunidadhll.es:5443/games`
|
||||
|
||||
## Constraints / DO NOT BREAK
|
||||
|
||||
- Do not change backend storage.
|
||||
- Do not change RCON ingestion.
|
||||
- Do not change scoreboard correlation logic.
|
||||
- Do not depend on server #03.
|
||||
- Do not expose arbitrary URLs received from API payloads.
|
||||
- Do not remove existing server card live status rendering.
|
||||
- Do not implement the full live match page in this task.
|
||||
- Keep the change frontend-focused and minimal.
|
||||
- Preserve existing responsive layout.
|
||||
|
||||
## Allowed Changes
|
||||
|
||||
- `frontend/assets/js/main.js`
|
||||
- `frontend/assets/css/main.css` or equivalent home CSS file
|
||||
- historical page JS/CSS/HTML files needed to support `?server=`
|
||||
- optionally add a minimal placeholder `partida-actual.html` if needed to
|
||||
avoid a broken link
|
||||
- docs only if needed
|
||||
|
||||
## Implementation Requirements
|
||||
|
||||
1. Replace the current single "Historico" server-card action with a small
|
||||
action group.
|
||||
2. For each active supported server, render these actions:
|
||||
- "Scoreboard público"
|
||||
- "Nuestro histórico"
|
||||
- "Partida actual"
|
||||
3. "Scoreboard público" must open the current public scoreboard base URL:
|
||||
- `comunidad-hispana-01` -> `https://scoreboard.comunidadhll.es`
|
||||
- `comunidad-hispana-02` -> `https://scoreboard.comunidadhll.es:5443`
|
||||
It must NOT append `/games`.
|
||||
4. "Nuestro histórico" must open the internal historical page with a server
|
||||
query parameter:
|
||||
- `historico.html?server=comunidad-hispana-01`
|
||||
- `historico.html?server=comunidad-hispana-02`
|
||||
5. "Partida actual" must open:
|
||||
- `partida-actual.html?server=comunidad-hispana-01`
|
||||
- `partida-actual.html?server=comunidad-hispana-02`
|
||||
6. Add trusted frontend mappings for supported active servers only:
|
||||
- `comunidad-hispana-01`
|
||||
- `comunidad-hispana-02`
|
||||
Do not add server #03.
|
||||
7. The server identifier should be resolved from the server payload using
|
||||
`external_server_id` or another already existing stable server slug. If the
|
||||
server cannot be resolved to a trusted known server, do not render
|
||||
public/current-match actions for it.
|
||||
8. Update the historical page initialization so that:
|
||||
- `?server=comunidad-hispana-01` selects Comunidad Hispana #01 instead of
|
||||
defaulting to all servers.
|
||||
- `?server=comunidad-hispana-02` selects Comunidad Hispana #02 instead of
|
||||
defaulting to all servers.
|
||||
- unknown or missing server query values fall back to the current default
|
||||
behavior.
|
||||
9. If `partida-actual.html` does not exist yet, create a minimal placeholder
|
||||
page that:
|
||||
- reads `?server=`
|
||||
- displays "Partida actual"
|
||||
- displays the selected server slug/name
|
||||
- explains that the live detail view will be implemented in the next task
|
||||
- includes a safe link back to the home page and historical page
|
||||
Do not implement live data polling yet.
|
||||
10. Ensure all generated URLs are built from trusted constants, not directly
|
||||
from API-provided arbitrary values.
|
||||
|
||||
## Files to Read First
|
||||
|
||||
- `AGENTS.md`
|
||||
- `ai/architecture-index.md`
|
||||
- `ai/repo-context.md`
|
||||
- `ai/orchestrator/frontend-senior.md`
|
||||
- `frontend/assets/js/main.js`
|
||||
- historical page files used for the existing server filter flow
|
||||
|
||||
## Expected Files to Modify
|
||||
|
||||
- `frontend/assets/js/main.js`
|
||||
- home CSS only if the new action group needs layout styling
|
||||
- historical page files needed for `?server=` initialization
|
||||
- `partida-actual.html` only if a placeholder is needed
|
||||
|
||||
## Validation
|
||||
|
||||
- Run `node --check` on every modified frontend JS file.
|
||||
- Review `git diff --name-only` and confirm the changed files match this task.
|
||||
|
||||
## Manual Verification
|
||||
|
||||
1. Open the home page.
|
||||
2. Verify Comunidad Hispana #01 card shows:
|
||||
- Scoreboard público
|
||||
- Nuestro histórico
|
||||
- Partida actual
|
||||
3. Verify Comunidad Hispana #02 card shows:
|
||||
- Scoreboard público
|
||||
- Nuestro histórico
|
||||
- Partida actual
|
||||
4. Click "Scoreboard público" for Comunidad Hispana #01 and verify it opens:
|
||||
`https://scoreboard.comunidadhll.es`
|
||||
5. Click "Scoreboard público" for Comunidad Hispana #02 and verify it opens:
|
||||
`https://scoreboard.comunidadhll.es:5443`
|
||||
6. Click "Nuestro histórico" for Comunidad Hispana #01 and verify the
|
||||
historical page loads with Comunidad Hispana #01 selected.
|
||||
7. Click "Nuestro histórico" for Comunidad Hispana #02 and verify the
|
||||
historical page loads with Comunidad Hispana #02 selected.
|
||||
8. Click "Partida actual" for both servers and verify the page opens with the
|
||||
correct server query parameter.
|
||||
9. Verify no server #03 action is introduced.
|
||||
|
||||
## Commit Message
|
||||
|
||||
`feat: add current match server entrypoints`
|
||||
|
||||
## Expected Outcome
|
||||
|
||||
The home page exposes clear per-server navigation actions, and the internal
|
||||
historical page can open directly filtered by server.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Replaced the home server-card history URL path with a trusted frontend action
|
||||
catalog for active servers `comunidad-hispana-01` and
|
||||
`comunidad-hispana-02` only. Payload-provided `community_history_url`
|
||||
values and the previous server #03 fallback are no longer used for those
|
||||
card actions.
|
||||
- Added the three per-server entrypoints from trusted constants: public
|
||||
scoreboard base URL, internal historical filter URL and internal current
|
||||
match URL.
|
||||
- Confirmed `frontend/assets/js/historico.js` already normalizes the supported
|
||||
`?server=` values into the active selector and falls back to `all-servers`
|
||||
for unknown or missing values, so no historical page code change was needed.
|
||||
- Added a minimal `partida-actual.html` placeholder with a trusted server label
|
||||
map and safe internal links for TASK-151 to upgrade.
|
||||
- Validation: `node --check frontend/assets/js/main.js`.
|
||||
- Scope review: `git diff --name-only` and `git status --short` were reviewed
|
||||
for the task move plus frontend files. Browser click verification was not
|
||||
completed because the in-app browser JavaScript control tool was not
|
||||
available after tool discovery in this session.
|
||||
|
||||
## Change Budget
|
||||
|
||||
- Prefer fewer than 5 modified files.
|
||||
- Prefer changes under 200 lines when feasible.
|
||||
- Split the work into follow-up tasks if the scope grows.
|
||||
Reference in New Issue
Block a user