Commit graph

136 commits

Author SHA1 Message Date
116600cd3c Fiks scroll-til-spillerliste for godt: mål header-høyden live, ikke hardkodet
Presis scratch-måling avdekket at den hardkodede 112px-antagelsen (arvet
fra scroll-mt-28) var feil -- ekte headerhøyde var 141.5px for en runde
med bane+utslag+dato+klokkeslett samtidig, siden headeren pakkes til
flere linjer avhengig av innhold. Ny getHeaderHeight() måler live i
stedet for å gjette. scrollToPlayerList() erstatter scrollIntoView med
manuell beregning; playerListReached bruker samme terskel (delt
SCROLL_GAP_PX-konstant) -- måtte rettes en gang til underveis da de to
brukte ulike terskler. Se CHANGELOG.md #142. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:57:22 +02:00
76b306cb29 Skjul flytende "Registrer score" når spillerlisten er nådd/passert
Ny playerListReached-tilstand skjuler den flytende knappen (og dens
spacer) fra #140 så snart spillerlisten når headerens høyde -- forblir
skjult resten av veien nedover, dukker opp igjen kun ved scroll tilbake
opp forbi listen. Første forsøk med IntersectionObserver+rootMargin var
feil (fyrer ikke på interne terskler mens allerede overlappende) -- byttet
til en scroll/resize-lytter med direkte getBoundingClientRect-sjekk. Se
CHANGELOG.md #141. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:45:54 +02:00
200d00cf5f CHANGELOG: bekreft utrulling av scroll-mt-fiks og flytende Registrer score-knapp
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:27:20 +02:00
ee31b2d00b Flytende "Registrer score" når banekartet er utvidet
V0-eksport integrert: RegisterScoreButton gjenbrukt i normal flyt
(kollapset) og som fixed bottom-pinnet knapp (utvidet), med gradient-
scrim, skygge, safe-area-inset-bottom, og aria-hidden/pointer-events-none
korrekt håndtert når skjult. Se CHANGELOG.md #140. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:25:11 +02:00
7426984e67 Fiks "Registrer score"-hoppet: landet bak sticky headeren pga. for lav scroll-mt
playerListRef brukte scroll-mt-4, mens holePanelRef (samme sticky-header-
problem, hull-til-hull-navigasjon) allerede riktig bruker scroll-mt-28.
Samme verdi nå begge steder. Se CHANGELOG.md #139. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:12:27 +02:00
c949259c77 Score-fanen: kutt hele main-toppaddingen, forrige reduksjon var for liten til å merkes
Bruker viste et nytt skjermbilde fra live etter forrige fiks -- ingen
synlig forskjell. pt-3/pt-4 kuttet bare 12px av en 44-52px kombinert
avstand, for lite til å merkes på en full mobilskjerm. main sin
toppadding er nå pt-0 -- eneste luft mot headeren er nå seksjonenes egne
mt-5/mb-5, samme rytme som resten av siden. Se CHANGELOG.md #136.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 08:00:47 +02:00
d5f49c1c5b CHANGELOG: bekreft utrulling av hindrings-filtrering og Mer-i-navnerad
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 07:50:21 +02:00
a52ff91ff1 Flytt "Mer" inn i navnereden, "Mål et slag" inn i "Mer" -- kun scorekortførers eget kort
V0-eksport integrert: PlayerCardMore utvidet med scoreButton/measureShot-
props, navnereden er nå en ikke-knapp wrapper med score-knappen og en
kompakt "Mer"-pille som søsken (unngår button-i-button). "Mål et slag" er
ikke lenger en egen rad -- ligger nå i "Mer"-panelet, og er (som
historikk) begrenset til player.isSelf; var tidligere synlig for alle
spilleres kort. Se CHANGELOG.md #138. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 07:48:27 +02:00
f10121beaf Score-fanen: mindre luft under headeren + skjul passerte hindringer i avstandsmåleren
To brukerpåpekte funn: (1) unødvendig stort tomrom mellom RoundHeader og
hull-navigatoren når ingen varsel-banner vises -- main sin toppadding
stablet seg oppå seksjonens egen mt-5 i stedet for å erstatte den.
(2) hindringer skal kun vises når de fortsatt ligger mellom spiller og
green -- passerte hindringer var unødvendig støy. Se CHANGELOG.md
#136/#137 for detalj og verifisering. Punkt 2 ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 07:26:29 +02:00
839bed4dd9 CHANGELOG: bekreft utrulling av Mer-knappen på spillerkortene
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 06:59:15 +02:00
49530ffd40 Tone ned Historikk/Avslutt/Send scorekort bak "Mer" på spillerkortene (Score-fanen)
V0-eksport (etter Claude-skrevet prompt) integrert som ny PlayerCardMore-
wrapper -- eier kun vis/skjul, de ekte HoleHistoryPanel/
ParticipantCompletionActions sendes inn uendret. Kun PlayerHoleCards
(Score-fanen) berørt, ikke PlayerList (administrasjonsvisningen). Se
CHANGELOG.md #135 for full detalj og verifisering. Ikke rullet ut ennå.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 06:57:41 +02:00
2e4cb9733c Score-fanen: fjern Deg-badge, begrens historikk til eget kort, fiks kompakt hindrings-ikoner, fjern duplikat manage-knapp
Fire brukerpåpekte oppfølgingsfunn rett etter forrige runde (#133):
Deg-badgen på spillerkort er unødvendig, historikk-panelet viste seg
feilaktig på medspilleres kort, kompakt avstandsmåler falt tilbake til
en generisk varseltrekant i stedet for ekte hindrings-ikoner, og den
nye Spillere-og-runde-vekslen duplikerte RoundHeader sin Administrer-
knapp. Se CHANGELOG.md #134 for full detalj og verifisering.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 06:51:19 +02:00
05599aafe6 Fiks skjult score-registrering og doble Score-faner på rundens Score-fane
Avstandsmåleren fylte hele mobilskjermen uten å antyde at score-
registrering fantes lenger ned (funnet via brukers skjermbilde). Viser nå
kompakt som standard med en "Vis banekart"-utvidelse og en alltid synlig
"Registrer score"-snarvei. Den separate, duplikate "Score"-pillefanen inni
round-detail.tsx (visuelt identisk med RoundHeader sin egen Score/
Scorekort/Leaderboard-rad) er erstattet med én tydelig annerledes
veksle-knapp -- fikser samtidig et reelt navigasjonshull der det ikke
fantes noen vei tilbake til Score fra en ekstern "?tab=manage"-lenke.
2026-08-20 05:54:20 +02:00
724983fe03 Fiks utslagsvalg i spillertabellen: select forsvinner aldri lenger
Funnet via brukers skjermopptak av forsøk på å endre én spillers
utslag -- en ikke-tilordnet rad viste kun en død strek, ingen
interaktiv kontroll, og et feilklikk på den tette avkrysningsboksen
satt brukeren fast. Utslagsvelgeren vises nå alltid; å velge et
utslag tilordner raden automatisk. Boks og select har også fått
tydelig mer avstand for å redusere feilklikk.
2026-08-19 17:37:26 +02:00
24eda54d10 CHANGELOG: bekreft utrulling av utslag-fiksene og HCP-kommunikasjonen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 10:38:42 +02:00
7d5726cf4d Fiks utslag-endring/bulk-tilordning + kommuniser frosset HCP-snapshot tydeligere
To reelle bugs i rundedeltakelse: enkelt-rad utslagsendring sendte feil
ID-type til backend (traff alltid 404, stille), og "Velg alle" hoppet
over allerede-tilordnede deltakere slik at et valgt standardutslag
aldri slo inn for dem. Begge rettet. I tillegg: ny hjelpetekst i
Spillere-steget og et nytt FAQ-spørsmål forklarer at turnering-HCP er
en bevisst frosset kopi av spillerpoolen (ADR-090), ikke en bug.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 10:27:25 +02:00
9b97a3bffb CHANGELOG: bekreft utrulling av HCP-komma/deltakertabell/zebra-fikser
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 09:52:03 +02:00
48f238d158 Fiks HCP-komma app-bredt, utdatert deltakertabell, zebra-striper i spillerpool
HCP: type="number" blokkerte komma-tegnet i nettleseren før JS-parsingen
noensinne så det; byttet til text+inputMode=decimal og lagt til manglende
.replace(",",".") i tre lagre-stier. Deltakertabell: "Rediger i
spillerpoolen" er en full sidenavigasjon, bfcache kunne gjenopprette
turneringssiden i utdatert tilstand -- løst med stille bakgrunns-refresh
ved visibilitychange/pageshow. Spillerpool: zebra-striper lagt tilbake
oppå rutenett-stilen fra forrige runde.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 09:50:56 +02:00
5dca409270 CHANGELOG: bekreft utrulling av spillerpool-tabell-revisjonen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 09:36:51 +02:00
7632f53702 Rutenett-stil for spillerpool-tabellen, ingen sidescroll på bred skjerm (tillegg til ADR-094)
EditTable (player-import-view.tsx) får samme grid-stil som
spillertabellen, med individuell kolonnebredde per felt slik at alle
13 spillerpool-felt får plass uten sidescroll. mode.kind==="roster"-
grenen bevart ved manuell fletting siden V0-eksporten var en eldre
snapshot uten den varianten.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 09:35:37 +02:00
47e3874198 CHANGELOG: bekreft utrulling av spillertabell-revisjonen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 08:43:37 +02:00
072638dc37 Gjør spillertabellen mer regneark-aktig, fyll full bredde (tillegg til ADR-094)
Bruker sammenlignet med et regneark og påpekte unødvendig sidescroll
på bred skjerm -- tettet opp med rutenett-stil og en colgroup som lar
rundekolonnene fylle resten av bredden. Samme props-kontrakt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 08:37:15 +02:00
17589e1707 ADR-094/CHANGELOG: bekreft utrulling av i18n, hjelpeside og spillertabell
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 07:55:51 +02:00
5355aba75d Ekte i18n (next-intl) + hjelpeside/FAQ + Spillere-tabellen slått videre sammen (ADR-094)
Grunnmur for oversettelse (cookie-basert, ingen URL-endring), ny
/hjelp-side med oversikt+FAQ på norsk og engelsk, og Deltakere+
Rundedeltakelse slått sammen til én bred tabell i Spillere-steget.
Resten av appens ~2200 strenger og 479 backend-feilkoder er bevisst
utsatt til senere, avgrensede runder -- se FEATURE_BACKLOG.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 07:54:07 +02:00
59080731f4 ADR-093/CHANGELOG: bekreft utrulling av rundedeltakelse-tabellen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 06:26:27 +02:00
5daf2a764a Rundedeltakelse som bulk-tabell i Spillere-steget (ADR-093)
Oppfølger til ADR-092: fant og fikset misvisende "alle er gruppert"-
tekst i Utslagsgrupper-panelet (viste seg egentlig å bety "ingen
deltakere i runden ennå"). Egentlig årsak: å tilordne en deltaker til
en runde var kun mulig ett om gangen, gjemt bak et rundekort. Ny
bulk-tabell i "Spillere" (V0-generert) med sjekkbokser per runde,
kjønn/alder/utslagssted redigerbart samme sted. Nytt PATCH-endepunkt
for å endre utslagssted uten å miste gruppemedlemskap.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-19 06:21:58 +02:00
1867c65143 Turneringsoppsett som steg-wizard (ADR-092)
Oppsett-fanen var én lang stablet side med alle kort etter hverandre.
Omgjort til 6 klikkbare steg med fri navigasjon, strukturelt inspirert
av Golf GameBooks steg-navigasjon (ikke visuelt -- egne clubhouse-
tokens). Grupper og startliste er det eneste genuint nye steget,
løfter Utslagsgrupper ut av å være gjemt inni hver enkelt runde.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 20:18:47 +02:00
6f25b57f90 ADR-091/CHANGELOG: bekreft utrulling av deltakerstatus og spillerpool-kobling 2026-08-18 18:10:11 +02:00
396fe40b7c Manuell deltakerstatus (DSQ/RTD/DNF/DNS) + spillerpool-kobling (ADR-091)
Ny status-kolonne på tournament_participant, overstyrer leaderboardets
total og blokkerer score i alle runder. Ny direkte lenke fra
turneringens Deltakere-liste til riktig rad i org-spillerpoolen.
Migrasjon 087 lagt til, men IKKE anvendt mot ekte teecup_db ennå.
2026-08-18 18:06:49 +02:00
23f464def1 CHANGELOG: bekreft utrulling av Cut-hjelpetekst 2026-08-18 17:46:29 +02:00
50e0ba902b Forklar Cut sitt "Antall som går videre"-felt med inline hjelpetekst
Bruker spurte hva feltet betyr -- oppførselen (topp N og delt plass) var
allerede riktig, bare uforklart der blikket lander.
2026-08-18 17:38:56 +02:00
5f1c73a917 ADR-090/CHANGELOG: bekreft utrulling av omspill-tiebreak og HCP-retting 2026-08-18 17:31:48 +02:00
0c864f0705 Omspill-tiebreak for vinneren + direkte HCP-retting per deltaker (ADR-090)
'playoff' som ny tiebreak_winner_method-verdi -- rangeres som 'none'
(appen kan ikke avgjøre et omspill selv), men regelen vises proaktivt i
Oppsett og som banner på leaderboardet. HCP: la til handicap_index_
snapshot i TournamentParticipantUpdate + inline redigering i
Deltakere-lista, uten å røre allerede frosne runde-verdier. Migrasjon
086 lagt til, men IKKE anvendt mot ekte teecup_db ennå.
2026-08-18 17:29:59 +02:00
fb00c65430 ADR-089/CHANGELOG: bekreft utrulling av tiebreak, turneringsinnstillinger 2026-08-18 17:02:49 +02:00
c5ab6a18f2 Integrer TournamentSettingsCard (V0-eksport) i Oppsett-fanen
Navn/datoer/synlighet/beskrivelse/påmelding -- rent innbytte mot
props-kontrakten. Fant og fikset samme tidssone-bugklasse som ADR-088
proaktivt denne gangen (mønstergjenkjenning) før den nådde en nettleser.
2026-08-18 17:00:44 +02:00
18bfe555a0 Gjør turneringsnavn/-datoer PATCH-bare, kartlegg org-oppsett-gapet
name/start_date/end_date manglet helt fra TournamentUpdate. Påmeldings-/
synlighetsfeltene var allerede fullt fungerende på backend (ekte
selvregistrerings-logikk), men uten UI noe sted -- V0-prompt skrevet for
en ny TournamentSettingsCard, ikke bygget ennå.
2026-08-18 16:33:41 +02:00
300cb8aeaf Tiebreak ved likt resultat: countback eller laveste HCP (ADR-089)
Organisator velger metode fritt i Oppsett, uavhengig for vinner og
resten av feltet. Countback er kaskaderende siste 9->6->3->1 hull i
siste runde. Påvirker aldri Cut-grensen -- strukturelt håndhevet, ikke
bare avtalt ved konvensjon. Migrasjon 085 lagt til, men IKKE anvendt mot
ekte teecup_db ennå -- venter på bekreftelse.
2026-08-18 16:29:10 +02:00
d57f4e5478 ADR-088/CHANGELOG: bekreft utrulling av utslagsgrupper (migrasjon 084) 2026-08-18 15:59:35 +02:00
9a9fcc84c0 Utslagsgrupper for individuelle turneringer: hvem spiller med hvem (ADR-088)
Tradisjonelt utslag (samme starthull, staggerte klokkeslett med fast
intervall), manuell gruppesammensetning med et forslag å justere, fast
gruppestørrelse. Fire ekte bugs funnet og fikset før utrulling via egen
scratch-verifisering (FK-korrupsjon, str/datetime-mismatch, tidssone,
React state). Migrasjon 084 lagt til, men IKKE anvendt mot ekte
teecup_db ennå -- venter på bekreftelse.
2026-08-18 15:43:39 +02:00
986e27ccd9 ADR-087/CHANGELOG: Cut-migrasjon 083 og utrulling bekreftet 2026-08-18 15:08:39 +02:00
19c527f834 Cut i individuelle turneringer: topp N og delt plass (ADR-087)
Manuelt anvendt (organisator trykker "Anvend cut"), etter et valgt
rundenummer. Kuttede spillere blokkeres fra scoring i senere runder og
vises i egen seksjon på leaderboardet. Migrasjon 083 lagt til, men IKKE
anvendt mot ekte teecup_db ennå -- venter på bekreftelse.
2026-08-18 15:07:21 +02:00
9f81258ef7 CHANGELOG: bekreft utrulling av leaderboard-fiks og duplikat-spørring
Begge rullet ut og bekreftet av bruker; ni ubrukte dubletter i org
8db22cb9 ryddet opp (60 -> 51 spillere).
2026-08-18 14:47:20 +02:00
accf5efd41 Spør organisator om merge/overskriv/dobbel ved e-postløs spillerimport
create_players_bulk matchet kun på e-post -- rader uten e-post ble alltid
satt inn på nytt selv om en identisk spiller allerede fantes (ni ekte
dubletter funnet i produksjon). Bulk-endepunktet tar nå et eksplisitt
match_player_id/duplicate_action per rad; frontend oppdager mulige
duplikater (navnetreff, ingen e-post) og spør organisator eksplisitt før
lagring, i stedet for å gjette.
2026-08-18 14:44:42 +02:00
54795065ef Nøytral "ikke startet"-rad + tee-tid/starthull i leaderboardet
Deltakere som ikke har spilt noe ennå fikk feilaktig totalLabel "E"/"0 p"
(til forveksling likt en ekte, jevn score) og en tallfestet sisteplass.
Vises nå nøytralt: total/posisjon null/None, og runde-nivåets tee-tid/
starthull (hvis satt) i stedet for score-cellen.
2026-08-18 14:23:03 +02:00
985dada178 V0-redesign av StrokePlayLeaderboard integrert
Rent innbytte -- identisk props-kontrakt. Løser bredde/autoscroll-bugene
fra forrige runde mer robust (ekte ResizeObserver-måling i stedet for en
brytningspunkt-antakelse), autostarter rulling for ubetjent
kiosk-visning, og legger til dempet visning for WD/DQ/DNS/NR/CUT-rader.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 13:49:12 +02:00
eeb7e9fb29 Leaderboard: fyller full bredde + autoscroll fungerer på storskjerm
StrokePlayLeaderboard var bygget for å skalere opp på lg:-brytningspunkt,
men satt inni en delt max-w-4xl-wrapper som aldri lot den. Samme
brytningspunkt fjernet skrolle-taket helt, så autoscroll-tickeren fikk
aldri noe å bevege for et stort felt. Begge rettet -- ren visuell polish
kommer i en oppfølgende V0-redesign av samme komponent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 13:18:04 +02:00
207750acba Slett en hel turnering, permanent (ADR-086)
Nytt DELETE /orgs/{id}/tournaments/{id}, kun org-eier/admin. Eksplisitt
riktig-rekkefølge-sletting (ikke naiv kaskade) siden to RESTRICT-FK-er
sitter midt inni kaskade-grafen for begge turneringsformater -- verifisert
med fire nye backend-tester mot ekte populerte data. Søppelbøtte-ikon i
begge turnering-headerne med sterk confirm()-tekst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 12:59:37 +02:00
82343e522b Rediger organisasjonens spillerpool når som helst (ADR-085)
Ny /organizations/[id]/players-rute gjenbruker spillerimport-tabellen
(ADR-082) uendret, men med ny orkestrering: laster eksisterende
spillere og lagrer med ekte PATCH per endret felt, ikke det
fyll-tomme-felt-eneste bulk-importendepunktet (som aldri overskriver
et allerede satt navn/HCP -- ubrukelig for reell redigering).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 12:09:29 +02:00
0a9320991b Hull-valget overlever nå en refresh (?hole=-URL-parameter)
currentHole levde kun i React-state, seedet fra round.start_hole ved
hver mount -- en refresh mistet valget og hoppet alltid tilbake til
starthullet. Fikset med samme URL-parameter-mønster tab-valget
allerede bruker: ny setHoleAndUrl() holder state og ?hole=N i sync
via router.replace (ikke push, for å unngå å fylle historikken med
ett tilbake-steg per hull).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 10:06:48 +02:00
f5c79e8767 ADR-084/CHANGELOG: Tjøme reimportert i teeoff_course_coordinate også
Fant en andre, atskilt kopi av Tjømes koordinatdata (den org-tilknyttede
"official" banen brukt av turneringer/lag-matchplay) som forrige rundes
reimport ikke traff. Samme datasett satt inn der også -- ren datafiks,
ingen kodeendring.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 09:06:45 +02:00