From 181aebf16a65de9852817e62f57d12e2093b5a7f Mon Sep 17 00:00:00 2001 From: Michel ten Voorde Date: Tue, 23 Sep 2025 20:47:11 +0200 Subject: [PATCH] Invallers --- .../tournament-manage.component.html | 35 +++++++++---------- .../tournament-manage.component.scss | 6 +++- .../tournament-manage.component.ts | 33 ++++++++++++++++- .../tournament-players.component.html | 2 ++ .../tournament-players.component.scss | 4 +++ .../tournament-players.component.ts | 3 ++ 6 files changed, 62 insertions(+), 21 deletions(-) diff --git a/src/app/components/tournament-manage/tournament-manage.component.html b/src/app/components/tournament-manage/tournament-manage.component.html index a920b8e..097fa67 100644 --- a/src/app/components/tournament-manage/tournament-manage.component.html +++ b/src/app/components/tournament-manage/tournament-manage.component.html @@ -25,15 +25,7 @@ settings  Beheer - - - - group -  Spelerslijst - - - - + } @@ -117,15 +109,7 @@ settings  Beheer - - - - group -  Spelerslijst - - - - + } @@ -270,7 +254,20 @@ @for (match of round.matches; track match.id) { - {{ match.team1 | teamText }} + + @if (playerHasSubstituteForEvent(match.team1.player1, event)) { + + {{ getSubstituteForEvent(match.team1.player1, event) }} + + } @else { + {{ match.team1.player1 | fullName }} + } + @if (event.doublesEvent && match.team1.player2 != null) { + + / {{ match.team1.player2 | fullName }} + + } + - {{ match.team2 | teamText }} diff --git a/src/app/components/tournament-manage/tournament-manage.component.scss b/src/app/components/tournament-manage/tournament-manage.component.scss index 46841ba..0ef44cd 100644 --- a/src/app/components/tournament-manage/tournament-manage.component.scss +++ b/src/app/components/tournament-manage/tournament-manage.component.scss @@ -35,7 +35,11 @@ td.w-fill { width: 95% !important; } - .mat-menu-panel { z-index: 1000 !important; } + +.has-substitute { + text-decoration-line: underline; + text-decoration-style: dotted; +} diff --git a/src/app/components/tournament-manage/tournament-manage.component.ts b/src/app/components/tournament-manage/tournament-manage.component.ts index 5346026..edf1126 100644 --- a/src/app/components/tournament-manage/tournament-manage.component.ts +++ b/src/app/components/tournament-manage/tournament-manage.component.ts @@ -26,13 +26,14 @@ import {MatDialog} from "@angular/material/dialog"; import {MatchResultPipe} from "../../pipes/match-result-pipe"; import {Event} from "../../model/event"; import {TournamentValidateComponent} from "../tournament-validate/tournament-validate.component"; -import {Strength} from "../../model/player"; +import {Player, Strength} from "../../model/player"; import {MatSnackBar} from "@angular/material/snack-bar"; import {CourtSelectionComponent} from "../court-selection/court-selection.component"; import {Standings} from "../../model/standings"; import {HeaderService} from "../../service/header.service"; import {TournamentPlayersComponent} from "../tournament-players/tournament-players.component"; import {TournamentPlayer} from "../../model/tournamentPlayer"; +import {MatTooltip} from "@angular/material/tooltip"; @Component({ selector: 'app-tournament-manage', @@ -62,6 +63,7 @@ import {TournamentPlayer} from "../../model/tournamentPlayer"; TournamentValidateComponent, TournamentPlayersComponent, MatExpansionPanelActionRow, + MatTooltip, ], providers: [ FullNamePipe, @@ -412,6 +414,35 @@ export class TournamentManageComponent implements OnInit, OnDestroy { } return count; } + + playerHasSubstituteForEvent(player: Player, event: Event) : boolean { + return this.getSubstituteForEvent(player, event) != undefined; + } + + getSubstituteForEvent(player: Player, event: Event) : string | undefined { + var tournamentPlayer = this.getTournamentPlayerFromPlayer(player); + if (tournamentPlayer === null) return undefined; + if (tournamentPlayer.name == 'Inge Brehler') console.log(tournamentPlayer.name); + + for (let substitution of tournamentPlayer.substitutions) { + if (substitution.event == event.type) { + var substitute = this.tournament.tournamentPlayers.find(p => p.id == substitution.substitute); + return substitute?.name; + } + } + return undefined; + } + + getTournamentPlayerFromPlayer(player: Player) : TournamentPlayer | null { + for (let tournamentPlayer of this.tournament.tournamentPlayers) { + if (tournamentPlayer.playerId == player.id) { + return tournamentPlayer; + } + } + + return null; + } + } class ActiveMatch { diff --git a/src/app/components/tournament-players/tournament-players.component.html b/src/app/components/tournament-players/tournament-players.component.html index 6f09af8..7f1400c 100644 --- a/src/app/components/tournament-players/tournament-players.component.html +++ b/src/app/components/tournament-players/tournament-players.component.html @@ -68,6 +68,7 @@ Naam Wedstrijden geteld Onderdelen + Invallers @@ -81,6 +82,7 @@ {{ event }}  } + {{ hasSubstitutes(tournamentPlayer) ? 'Ja' : 'Nee' }}