feat: add number of tables to tournament updates and enhance related UI components
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 47s
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 47s
This commit is contained in:
@@ -13,6 +13,10 @@
|
||||
{{ $t('tournaments.winningSets') }}:
|
||||
<input type="number" :value="winningSets" @input="$emit('update:winningSets', parseInt($event.target.value))" min="1" />
|
||||
</label>
|
||||
<label>
|
||||
{{ $t('tournaments.numberOfTables') }}:
|
||||
<input type="number" :value="numberOfTables" @input="$emit('update:numberOfTables', $event.target.value ? parseInt($event.target.value, 10) : null)" min="1" />
|
||||
</label>
|
||||
<button @click="$emit('generate-pdf')" class="btn-primary" style="margin-top: 1rem;">{{ $t('tournaments.exportPDF') }}</button>
|
||||
</div>
|
||||
<label class="checkbox-item">
|
||||
@@ -268,6 +272,11 @@ export default {
|
||||
type: [Number, null],
|
||||
default: null
|
||||
}
|
||||
,
|
||||
numberOfTables: {
|
||||
type: [Number, null],
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -320,6 +329,7 @@ export default {
|
||||
'update:newClassIsDoubles',
|
||||
'update:newClassGender',
|
||||
'update:newClassMinBirthYear'
|
||||
, 'update:numberOfTables'
|
||||
]
|
||||
,
|
||||
methods: {
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
:tournament-name="currentTournamentName"
|
||||
:tournament-date="currentTournamentDate"
|
||||
:winning-sets="currentWinningSets"
|
||||
:number-of-tables="currentNumberOfTables"
|
||||
:is-group-tournament="isGroupTournament"
|
||||
:tournament-classes="tournamentClasses"
|
||||
:show-classes="showClasses"
|
||||
@@ -91,6 +92,7 @@
|
||||
@update:tournamentName="currentTournamentName = $event; updateTournament()"
|
||||
@update:tournamentDate="currentTournamentDate = $event; updateTournament()"
|
||||
@update:winningSets="currentWinningSets = $event; updateTournament()"
|
||||
@update:numberOfTables="currentNumberOfTables = $event; updateTournament()"
|
||||
@update:isGroupTournament="isGroupTournament = $event; onModusChange()"
|
||||
@generate-pdf="generatePDF"
|
||||
@edit-class="editClass"
|
||||
@@ -316,6 +318,7 @@ export default {
|
||||
advancingPerGroup: 1,
|
||||
numberOfGroups: 1,
|
||||
groupsPerClass: {}, // { classId: numberOfGroups }
|
||||
currentNumberOfTables: null,
|
||||
maxGroupSize: null,
|
||||
isGroupTournament: false,
|
||||
groups: [],
|
||||
@@ -459,7 +462,15 @@ export default {
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Beendete Spiele nach unten verschieben (unfertige zuerst)
|
||||
result.sort((a, b) => {
|
||||
const aFinished = a.isFinished ? 1 : 0;
|
||||
const bFinished = b.isFinished ? 1 : 0;
|
||||
if (aFinished !== bFinished) return aFinished - bFinished;
|
||||
return 0;
|
||||
});
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
@@ -1158,6 +1169,7 @@ export default {
|
||||
this.currentTournamentDate = tournament.date || '';
|
||||
this.currentWinningSets = tournament.winningSets || 3;
|
||||
this.isGroupTournament = tournament.type === 'groups';
|
||||
this.currentNumberOfTables = Number.isFinite(Number(tournament.numberOfTables)) ? Number(tournament.numberOfTables) : null;
|
||||
// Defensive: Backend/DB kann (historisch/UI-default) 0/null liefern.
|
||||
// Für gruppenbasierte Turniere ohne Klassen brauchen wir hier aber eine sinnvolle Zahl,
|
||||
// sonst sendet die UI später wieder `0` an `/tournament/groups`.
|
||||
@@ -1516,7 +1528,8 @@ export default {
|
||||
await apiClient.put(`/tournament/${this.currentClub}/${this.selectedDate}`, {
|
||||
name: this.currentTournamentName || this.currentTournamentDate,
|
||||
date: this.currentTournamentDate,
|
||||
winningSets: this.currentWinningSets
|
||||
winningSets: this.currentWinningSets,
|
||||
numberOfTables: this.currentNumberOfTables
|
||||
});
|
||||
// Prüfe, ob es einen Trainingstag für das neue Datum gibt
|
||||
await this.checkTrainingForDate(this.currentTournamentDate);
|
||||
|
||||
Reference in New Issue
Block a user