Enhance knockout round functionality by adding group count validation

This commit updates the `TournamentTab.vue` component to ensure that knockout rounds can only be started or reset if there is more than one group present in the tournament. A new method, `getTotalNumberOfGroups`, is introduced to calculate the total number of groups, improving the logic for determining the availability of knockout rounds. These changes enhance the tournament management experience by preventing invalid operations in single-group scenarios.
This commit is contained in:
Torsten Schulz (local)
2025-11-15 22:26:17 +01:00
parent 911c07e522
commit 4a83e5c159

View File

@@ -530,18 +530,18 @@
Spiele erstellen
</button>
</div>
<div v-if="canStartKnockout && !showKnockout" class="ko-start">
<div v-if="canStartKnockout && !showKnockout && getTotalNumberOfGroups() > 1" class="ko-start">
<button @click="startKnockout">
K.o.-Runde starten
</button>
</div>
<div v-if="showKnockout && canResetKnockout" class="ko-reset" style="margin-top:1rem">
<div v-if="showKnockout && canResetKnockout && getTotalNumberOfGroups() > 1" class="ko-reset" style="margin-top:1rem">
<button @click="resetKnockout" class="trash-btn">
🗑️ K.o.-Runde
</button>
</div>
<section v-if="showKnockout" class="ko-round">
<section v-if="showKnockout && getTotalNumberOfGroups() > 1" class="ko-round">
<h4>K.-o.-Runde</h4>
<table>
<thead>
@@ -1304,10 +1304,26 @@ export default {
// kein Gruppenmodus → immer starten
return true;
}
// Gruppenmodus → prüfe Anzahl der Gruppen
const totalGroups = this.getTotalNumberOfGroups();
if (totalGroups <= 1) {
// Nur eine Gruppe → keine K.O.-Runde möglich
return false;
}
// Gruppenmodus → nur, wenn es Gruppenspiele gibt und alle beendet sind
return this.groupMatches.length > 0
&& this.groupMatches.every(m => m.isFinished);
},
getTotalNumberOfGroups() {
if (!this.isGroupTournament) return 0;
// Wenn es Klassen gibt, summiere die Gruppen pro Klasse
if (this.tournamentClasses && this.tournamentClasses.length > 0) {
return Object.values(this.groupsPerClass).reduce((sum, count) => sum + (count || 0), 0);
}
// Sonst verwende numberOfGroups
return this.numberOfGroups || 0;
},
canResetKnockout() {
// KOMatches existieren und keiner ist beendet