Testing#36
Open
alastair-punler wants to merge 20 commits into
Open
Conversation
- Strip to NHL and IIHF rinks only; NHL rink is now the home page - Remove all other sports HTML files - Auto-select team based on click side + period; zone labels on rink - Remove Player field; shot types reduced to Shot and Goal - Add Player Stats panel with roster (hits, turnovers, FO win/loss) - Roster seeded with Perth Thunder 2026 squad - Roster stats recorded to main shot table with period tracking - Shaped markers on ice: triangle=turnover, diamond=hit, circle=FO - Roster stat legend added to rink legend - CSV upload/download for roster - Rink size switcher (NHL ↔ IIHF) in Customize Setup modal Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
nginx:alpine serves static files; PORT injected via envsubst template. Redirects / → /html/ and handles extensionless HTML URLs. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Fix nginx: add explicit index directive, serve root directly instead of 301 redirect (avoids Railway health check issues) - Roster: add minus button per stat cell to undo most recent entry - Roster: move add-player form and CSV controls below the table - Fix stat cell text alignment with absolutely-positioned minus button Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Wrap page content in Bootstrap Inputs/Summary tabs - New js/summary/summary.js: D3-drawn rink, period filter, shot counts - Rink dimensions fully dynamic from cfgSportA (works for both NHL and IIHF) - Period 2 shots X-flipped so home always attacks right in summary view - Dots coloured by team; Shots For/Against counts shown above rink Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Clone live rink SVG (with faceoff circles, dots, all markings) instead of simplified D3-drawn version - Rename cloned clipPath IDs (s-clipBorder etc.) to avoid document-level ID conflicts with the inputs rink - Relabel zones as Offensive Zone / Defensive Zone - Add Shots / Hits / Turnovers toggle buttons - Hits render as red diamonds, turnovers as purple triangles - All event types normalised for period 2 end-switch Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Add Faceoffs toggle to summary event type bar - getFaceoffDots(): hardcoded positions from SVG for both NHL (200x85) and IIHF (60x30) — 9 dots each matching actual SVG circle/spot coords - aggregateFaceoffs(): nearest-neighbour clustering of normalised FO Win/Loss events to each faceoff dot - renderFaceoffAnalytics(): W/L count + % badge at each dot with data; green % >= 50%, red % < 50%; white semi-transparent background - Period filter applies to faceoff analytics the same as other events Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Each dot now shows P1/P2/P3/OT above it so it's clear why a P2 hit on the right correctly appears on the left (defensive zone) - Normalisation is correct: P2 right = defensive zone → left in summary - Fallback to period "1" if rowData.period is missing (hidden column edge case) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Inputs tab: - Dots on the rink now show only the current period's events - Period change hides/shows dots via CSS class (period-hidden !important) so it layers cleanly on top of the existing table-filter visibility system - All events remain in the table regardless of period selection - Also applied on page load when restoring saved dots Summary tab: - Stats tables rendered at top before the rink, always showing all periods - Shots table: Home / Away / Total per period + game total - Player stats table: Hits / Turnovers / FO Win / FO Loss / FO% per period + total Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Top-right of header, requires confirmation before wiping localStorage and reloading — clears all shots, roster stats, and settings. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Export/import now use a canonical 6-column schema (Period, Team, Type, Player, X, Y), decoupled from the visible shot-table headers. Stat rows export as (Type=Label, Player=#NN) and are rebuilt on import with isStatRow=true + applyImportedStat() so player counters, ice markers, and the Summary tab all restore correctly. Previously every imported row was drawn as a regular shot dot. - js/csv.js: fixed CSV_HEADER schema, STAT label<->key maps; rewrite downloadCSV and processCSV; reset roster state before parse and renderRoster on complete - js/roster/roster.js: add applyImportedStat (increment stat + push event + drawMarker with id == row id) and resetRosterForImport - CLAUDE.md: document the new CSV schema and breaking change - 4.19.2026-15.28.csv: round-trip sample data in the new schema Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
CSV: fix roster stat round-trip via fixed schema
"Defensive Zone / Offensive Zone" was confusing on first use; now shows "[Away] Shoots" / "[Home] Shoots" so the attacking direction is obvious. Shot count bar updated to match. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Matches the summary tab change — labels now read "[Team] Shoots" instead of just the team name. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.