X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=resources%2Fjs%2Fhelpers%2FTournament.js;fp=resources%2Fjs%2Fhelpers%2FTournament.js;h=7ff04df0d821da7874e58a56f2337bc69c8d12ea;hb=e0616336a824a6d59c4b9d25ef4ed7fa26214cef;hp=60354c2b6bdeae9d927a0cd32714b74e6941d830;hpb=6f22614d8c68c68c88b44804802cdffeb3c6a3c7;p=alttp.git diff --git a/resources/js/helpers/Tournament.js b/resources/js/helpers/Tournament.js index 60354c2..7ff04df 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}` }; + 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