From d6de1c43fb4398b038a8891e1b9a0e9adda3e3e4 Mon Sep 17 00:00:00 2001 From: Michel ten Voorde Date: Mon, 25 Aug 2025 23:38:30 +0200 Subject: [PATCH] Various improvements --- .../tournament-manage.component.html | 100 +++++++++--------- .../tournament-manage.component.scss | 4 + .../tournament-manage.component.ts | 21 ++-- .../tournament-players.component.html | 2 + .../tournament-players.component.ts | 13 +-- src/app/model/round.ts | 1 + 6 files changed, 81 insertions(+), 60 deletions(-) diff --git a/src/app/components/tournament-manage/tournament-manage.component.html b/src/app/components/tournament-manage/tournament-manage.component.html index 481cece..50ec7cf 100644 --- a/src/app/components/tournament-manage/tournament-manage.component.html +++ b/src/app/components/tournament-manage/tournament-manage.component.html @@ -157,7 +157,9 @@ @for (group of event.groups; track group.id) { - {{ group.name }} + @if (group.status == "FINISHED") { + check +  }{{ group.name }}   @if (getActiveMatchCountForGroup(group) > 0) { {{ getActiveMatchCountForGroup(group) }} @@ -232,7 +234,7 @@
Wedstrijden
@if (round.status == 'NOT_STARTED') { - +
@for (match of round.matches; track match.id) { @@ -250,7 +252,7 @@
} @else if (round.status == 'IN_PROGRESS') { - +
@for (match of round.matches; track match.id) { @@ -303,7 +305,7 @@
} @else if (round.status == 'FINISHED') { - +
@for (match of round.matches; track match.id) { @@ -331,51 +333,53 @@
} -
Stand
+ @if (!round.isFinalsRound) { +
Stand
- - - - - -
Tussen haakjes de gemiddelden per gespeelde wedstrijd
# - @if (event.doublesEvent) { - Team - } @else { - Speler + + + + + + + + + + + + + + @for (entry of getStandingsForRound(round, group).entries; track entry.position) { + + + + + + + + } - - - - - - - - - @for (entry of getStandingsForRound(round, group).entries; track entry.position) { - - - - - - - - - } - -
Tussen haakjes de gemiddelden per gespeelde wedstrijd
# + @if (event.doublesEvent) { + Team + } @else { + Speler + } + GespeeldPuntenGamesWedstrijdpunten
{{ entry.position }}{{ entry.team | teamText }}{{ entry.played }} + @if (entry.played > 0 ) { + {{ entry.points }} ({{ entry.points / entry.played | number: '1.0-2' }}) + } + + @if (entry.played > 0 ) { + {{ entry.gamesWon }}-{{ entry.gamesLost}} ({{ (entry.gamesWon - entry.gamesLost) / entry.played | number: '1.0-2' }}) + } + + @if (entry.played > 0 ) { + {{ entry.pointsWon }}-{{ entry.pointsLost }} ({{ (entry.pointsWon - entry.pointsLost) / entry.played | number: '1.0-2' }}) + } +
GespeeldPuntenGamesWedstrijdpunten
{{ entry.position }}{{ entry.team | teamText }}{{ entry.played }} - @if (entry.played > 0 ) { - {{ entry.points }} ({{ entry.points / entry.played | number: '1.0-2' }}) - } - - @if (entry.played > 0 ) { - {{ entry.gamesWon }}-{{ entry.gamesLost}} ({{ (entry.gamesWon - entry.gamesLost) / entry.played | number: '1.0-2' }}) - } - - @if (entry.played > 0 ) { - {{ entry.pointsWon }}-{{ entry.pointsLost }} ({{ (entry.pointsWon - entry.pointsLost) / entry.played | number: '1.0-2' }}) - } -
+ +
+ }
} @@ -396,7 +400,7 @@ group  Spelerslijst - + diff --git a/src/app/components/tournament-manage/tournament-manage.component.scss b/src/app/components/tournament-manage/tournament-manage.component.scss index 651b2f4..ce8044f 100644 --- a/src/app/components/tournament-manage/tournament-manage.component.scss +++ b/src/app/components/tournament-manage/tournament-manage.component.scss @@ -29,6 +29,10 @@ td.w-fill { width: 90% !important; } +.w-95 { + width: 95% !important; +} + .material-tooltip { white-space: pre-line; } diff --git a/src/app/components/tournament-manage/tournament-manage.component.ts b/src/app/components/tournament-manage/tournament-manage.component.ts index cdd951d..5fc4d74 100644 --- a/src/app/components/tournament-manage/tournament-manage.component.ts +++ b/src/app/components/tournament-manage/tournament-manage.component.ts @@ -61,7 +61,6 @@ import {MatTooltip} from "@angular/material/tooltip"; MatIconButton, DecimalPipe, TournamentValidateComponent, - MatMenuContent, TournamentPlayersComponent, MatExpansionPanelActionRow, ], @@ -75,7 +74,7 @@ import {MatTooltip} from "@angular/material/tooltip"; }) export class TournamentManageComponent implements OnInit, OnDestroy { - @Input() tournament: Tournament; + tournament: Tournament; activeRoundTab: number = 0; @@ -124,7 +123,7 @@ export class TournamentManageComponent implements OnInit, OnDestroy { }); } - getRoundIcon(status: String) { + getRoundIcon(status: string) { if (status == "FINISHED") { return "check"; } else if (status == "IN_PROGRESS") { @@ -205,7 +204,7 @@ export class TournamentManageComponent implements OnInit, OnDestroy { match: match, availableCourts: this.getAvailableCourts(), totalCourts: this.tournament.courts, - availableCounters: this.getAvailableCounters() + availableCounters: this.getAvailableCounters(match) }, minWidth: '800px', minHeight: '250px' @@ -263,7 +262,7 @@ export class TournamentManageComponent implements OnInit, OnDestroy { return courts.filter(court => activeCourts.indexOf(court) < 0); } - getAvailableCounters(): TournamentPlayer[] { + getAvailableCounters(match: Match): TournamentPlayer[] { const activePlayerIds = new Set( this.activeMatches().flatMap(activeMatch => [ activeMatch.match.team1.player1.id, @@ -273,8 +272,18 @@ export class TournamentManageComponent implements OnInit, OnDestroy { ].filter(id => id !== undefined)) ); + const playerIdsInMatchToBeStarted = new Set([ + match.team1.player1.id, + match.team1.player2?.id, + match.team2.player1.id, + match.team2.player2?.id + ].filter(id => id !== undefined)); + return this.tournament.tournamentPlayers.filter( - player => !player.counting && !activePlayerIds.has(player.playerId) + player => + !player.counting + && !activePlayerIds.has(player.playerId) + && !playerIdsInMatchToBeStarted.has(player.playerId) ); } diff --git a/src/app/components/tournament-players/tournament-players.component.html b/src/app/components/tournament-players/tournament-players.component.html index 9682042..0ae63d9 100644 --- a/src/app/components/tournament-players/tournament-players.component.html +++ b/src/app/components/tournament-players/tournament-players.component.html @@ -3,6 +3,7 @@ Naam + Wedstrijden geteld Onderdelen Kosten Betaald @@ -13,6 +14,7 @@ @for (tournamentPlayer of tournament.tournamentPlayers; track tournamentPlayer.playerId) { {{ tournamentPlayer.name }} + {{ tournamentPlayer.counts }} @for (event of tournamentPlayer.events; track event) { {{ event }}  diff --git a/src/app/components/tournament-players/tournament-players.component.ts b/src/app/components/tournament-players/tournament-players.component.ts index 4671742..0bbf561 100644 --- a/src/app/components/tournament-players/tournament-players.component.ts +++ b/src/app/components/tournament-players/tournament-players.component.ts @@ -1,4 +1,4 @@ -import {Component, OnInit} from '@angular/core'; +import {Component, Input, OnInit} from '@angular/core'; import {CurrencyPipe} from "@angular/common"; import {MatSlideToggle, MatSlideToggleChange} from "@angular/material/slide-toggle"; import {TournamentService} from "../../service/tournament.service"; @@ -19,7 +19,7 @@ import {MatSnackBar} from "@angular/material/snack-bar"; }) export class TournamentPlayersComponent implements OnInit { - tournament: Tournament; + @Input() tournament: Tournament; constructor( private tournamentService: TournamentService, @@ -29,10 +29,11 @@ export class TournamentPlayersComponent implements OnInit { ) {} ngOnInit() { - const id = this.route.snapshot.paramMap.get('id'); - this.tournamentService.getById(Number(id)).subscribe(data => { - this.tournament = data; - }); + console.log('Tournament received from parent:', this.tournament); + // const id = this.route.snapshot.paramMap.get('id'); + // this.tournamentService.getById(Number(id)).subscribe(data => { + // this.tournament = data; + // }); } playerPaid($event: MatSlideToggleChange, playerId: number) { diff --git a/src/app/model/round.ts b/src/app/model/round.ts index 92bebd2..b9cd768 100644 --- a/src/app/model/round.ts +++ b/src/app/model/round.ts @@ -10,4 +10,5 @@ export class Round { quit: Team[]; drawnOut: Team; standings: Standings; + isFinalsRound: boolean; }