feat(ui): F8-11 — battles table under table submenu (#54)
Tests · UI / test (push) Successful in 2m53s
Tests · UI / test (pull_request) Successful in 3m0s

Adds a sortable battles list as a new entity under the existing
`view → table` submenu (entity slug `battles`), replacing the
standalone top-level `battle log` shortcut which always opened a
"battle not found" placeholder. The single-battle viewer stays put
and is reached only by clicking a row (or a battle marker on the
map), identical to the existing `section-battles.svelte` flow.

Columns are planet (via the shared `planetLabel` helper) and shots
(the per-battle action count carried by `BattleSummary`), sortable
both ways with shots-desc default. No backend / FBS / map changes:
the wire payload is unchanged. Participants / observers / total
mass require the full BattleReport and were intentionally dropped
to avoid N round trips per menu open.

The top-level `battle log` item is removed from `header/view-menu`
and `sidebar/bottom-tabs` (and their stale comment blocks updated);
the now-orphan `game.view.battle` i18n key is dropped from both
locales.
This commit is contained in:
Ilia Denisov
2026-05-27 22:12:51 +02:00
parent e4fbb6644c
commit 209f8508cd
10 changed files with 529 additions and 30 deletions
+6 -1
View File
@@ -183,8 +183,8 @@ const en = {
"game.view.table.fleets": "fleets",
"game.view.table.sciences": "sciences",
"game.view.table.races": "races",
"game.view.table.battles": "battles",
"game.view.report": "turn report",
"game.view.battle": "battle log",
"game.view.mail": "diplomatic mail",
"game.view.mail.badge": "{count}",
"game.events.mail_new.message": "new mail from {from}",
@@ -377,6 +377,11 @@ const en = {
"game.table.fleets.column.speed": "speed",
"game.table.fleets.filter.planet": "planet:",
"game.table.fleets.filter.planet.all": "all planets",
"game.table.battles.title": "battles",
"game.table.battles.loading": "loading battles…",
"game.table.battles.empty": "no battles this turn",
"game.table.battles.column.planet": "planet",
"game.table.battles.column.shots": "shots",
"game.table.ship_classes.title": "ship classes",
"game.table.ship_classes.column.name": "name",
"game.table.ship_classes.column.drive": "drive",
+6 -1
View File
@@ -184,8 +184,8 @@ const ru: Record<keyof typeof en, string> = {
"game.view.table.fleets": "флоты",
"game.view.table.sciences": "науки",
"game.view.table.races": "расы",
"game.view.table.battles": "сражения",
"game.view.report": "отчёт хода",
"game.view.battle": "журнал боёв",
"game.view.mail": "дипломатическая почта",
"game.view.mail.badge": "{count}",
"game.events.mail_new.message": "новое письмо от {from}",
@@ -378,6 +378,11 @@ const ru: Record<keyof typeof en, string> = {
"game.table.fleets.column.speed": "скорость",
"game.table.fleets.filter.planet": "планета:",
"game.table.fleets.filter.planet.all": "все планеты",
"game.table.battles.title": "сражения",
"game.table.battles.loading": "загрузка сражений…",
"game.table.battles.empty": "в этом ходе сражений нет",
"game.table.battles.column.planet": "планета",
"game.table.battles.column.shots": "выстрелы",
"game.table.ship_classes.title": "классы кораблей",
"game.table.ship_classes.column.name": "название",
"game.table.ship_classes.column.drive": "двигатель",