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.",