X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fhelpers%2FTournament.js;h=8f2239f1695c2a87515d5cf876784b1ef4b769f7;hb=6f34dd7c00bf0bd152a97b175390be00c3a0ba31;hp=60354c2b6bdeae9d927a0cd32714b74e6941d830;hpb=cd36cb0ba2718e6bfa08765e7702d57dfe7fd733;p=alttp.git diff --git a/resources/js/helpers/Tournament.js b/resources/js/helpers/Tournament.js index 60354c2..8f2239f 100644 --- a/resources/js/helpers/Tournament.js +++ b/resources/js/helpers/Tournament.js @@ -30,6 +30,28 @@ export const getRunners = tournament => { .sort(Participant.compareUsername); }; +export const getScoreTable = tournament => { + if (!tournament || !tournament.rounds || !tournament.rounds.length) return []; + const runners = getRunners(tournament); + if (!runners.length) return []; + const running = {}; + runners.forEach(participant => { + running[participant.id] = 0; + }); + const data = [...tournament.rounds, {}].reverse().map(round => { + const entry = { number: round.number ? `#${round.number}` : '' }; + runners.forEach(participant => { + const result = Participant.findResult(participant, round); + if (result && result.score) { + running[participant.id] += result.score; + } + entry[Participant.getUserName(participant)] = running[participant.id]; + }); + return entry; + }); + return data; +}; + export const getTournamentAdmins = tournament => { if (!tournament || !tournament.participants || !tournament.participants.length) return []; return tournament.participants