feat(tournament): add participant gave-up functionality and UI updates

- Implemented setParticipantGaveUp and setExternalParticipantGaveUp methods in tournamentController to handle participant resignation.
- Updated ExternalTournamentParticipant and TournamentMember models to include a gaveUp field for tracking resignation status.
- Enhanced tournamentRoutes to include new endpoints for updating gave-up status.
- Modified TournamentGroupsTab and TournamentParticipantsTab components to display and manage gave-up status visually.
- Added localization strings for "gave up" and related hints in German.
- Updated TournamentResultsTab to reflect gave-up status in match results.
This commit is contained in:
Torsten Schulz (local)
2026-01-30 22:45:54 +01:00
parent 18a191f686
commit 7e1b09fa97
11 changed files with 344 additions and 41 deletions

View File

@@ -434,6 +434,20 @@ export const updateParticipantSeeded = async (req, res) => {
}
};
export const setParticipantGaveUp = async (req, res) => {
const { authcode: token } = req.headers;
const { clubId, tournamentId, participantId } = req.params;
const { gaveUp } = req.body;
try {
await tournamentService.setParticipantGaveUp(token, clubId, tournamentId, participantId, gaveUp);
emitTournamentChanged(clubId, tournamentId);
res.status(200).json({ message: 'Aufgabe-Status aktualisiert' });
} catch (err) {
console.error('[setParticipantGaveUp] Error:', err);
res.status(500).json({ error: err.message });
}
};
export const deleteMatchResult = async (req, res) => {
const { authcode: token } = req.headers;
const { clubId, tournamentId, matchId, set } = req.body;
@@ -555,6 +569,20 @@ export const updateExternalParticipantSeeded = async (req, res) => {
}
};
export const setExternalParticipantGaveUp = async (req, res) => {
const { authcode: token } = req.headers;
const { clubId, tournamentId, participantId } = req.params;
const { gaveUp } = req.body;
try {
await tournamentService.setExternalParticipantGaveUp(token, clubId, tournamentId, participantId, gaveUp);
emitTournamentChanged(clubId, tournamentId);
res.status(200).json({ message: 'Aufgabe-Status aktualisiert' });
} catch (error) {
console.error('[setExternalParticipantGaveUp] Error:', error);
res.status(500).json({ error: error.message });
}
};
// Tournament Classes
export const getTournamentClasses = async (req, res) => {
const { authcode: token } = req.headers;