diff --git a/src/client/src/app/components/app/app.component.html b/src/client/src/app/components/app/app.component.html index 3db911a..060255f 100644 --- a/src/client/src/app/components/app/app.component.html +++ b/src/client/src/app/components/app/app.component.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/client/src/app/components/player-events/player-event-details/player-event-details.component.html b/src/client/src/app/components/player-events/player-event-details/player-event-details.component.html index 84b048e..11dab2f 100644 --- a/src/client/src/app/components/player-events/player-event-details/player-event-details.component.html +++ b/src/client/src/app/components/player-events/player-event-details/player-event-details.component.html @@ -126,6 +126,25 @@

{{ translations.playerEvents_registrations() }}

} @if (event.isStarted) {

{{ translations.playerEvents_games() }}

+ + @if (games().length === 0) { + + + +
+ {{ + translations.playerEvents_noGames_general() + }} + {{ + hasRegisteredTimeslot() + ? translations.playerEvents_noGames_registered() + : translations.playerEvents_noGames_notRegistered() + }} +
+
+
+ } + @for (game of games(); track game.timeslot.id) {

diff --git a/src/client/src/app/components/player-events/player-event-details/player-event-details.component.ts b/src/client/src/app/components/player-events/player-event-details/player-event-details.component.ts index 0196c41..6d25480 100644 --- a/src/client/src/app/components/player-events/player-event-details/player-event-details.component.ts +++ b/src/client/src/app/components/player-events/player-event-details/player-event-details.component.ts @@ -95,6 +95,9 @@ export class PlayerEventDetailsComponent { protected readonly timeslots = computed(() => [...(this.event()?.timeslots ?? [])].sort((a, b) => compareTimes(a.time, b.time)) ); + protected readonly hasRegisteredTimeslot = computed(() => + this.timeslots().some(x => x.isRegistered) + ); protected readonly timeslotSaveStates = chainSignals( computed(() => this.timeslots().map(x => x.id), { equal: areArraysEqual }), id => diff --git a/src/client/src/app/i18n/de.json b/src/client/src/app/i18n/de.json index 71620b6..80f4ddd 100644 --- a/src/client/src/app/i18n/de.json +++ b/src/client/src/app/i18n/de.json @@ -226,6 +226,11 @@ "time": "Uhrzeit", "groupCode": "Raumname", "map": "Bahn", + "noGames": { + "general": "Keine Spiele verfügbar.", + "registered": "Der/die Zeitslot(s) für die du angemeldet bist, finden nicht statt, da sich zu wenig Spieler dafür angemeldet haben.", + "notRegistered": "Du hast dich für keinen Zeitslot angemeldet." + }, "error": { "load": "Fehler beim Laden der Veranstaltungen.", "loadOne": "Fehler beim Laden der Veranstaltung.", diff --git a/src/client/src/app/i18n/en.json b/src/client/src/app/i18n/en.json index 1c52325..4e05deb 100644 --- a/src/client/src/app/i18n/en.json +++ b/src/client/src/app/i18n/en.json @@ -226,6 +226,11 @@ "time": "Time", "groupCode": "Group code", "map": "Map", + "noGames": { + "general": "No games available.", + "registered": "The timeslot(s) for which you are registered will not take place because too few players have registered for it.", + "notRegistered": "You have not registered for a timeslot." + }, "error": { "load": "Failed to load events.", "loadOne": "Failed to load event.",