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:
@@ -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() {
|
||||
// KO‑Matches existieren und keiner ist beendet
|
||||
|
||||
Reference in New Issue
Block a user