From dc74fcae5e87d45036575136146838e10784be31 Mon Sep 17 00:00:00 2001 From: oliver Date: Fri, 12 Apr 2024 04:04:03 +0200 Subject: [PATCH 001/247] =?UTF-8?q?=F0=9F=92=A9=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assignMatches/AssignMatchesKnockout.vue | 5 +- .../assignMatches/TeamContainerDraggable.vue | 5 + .../ViewKnockoutTreeDraggable.vue | 318 ++++++++++++++++++ 3 files changed, 326 insertions(+), 2 deletions(-) create mode 100644 frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue diff --git a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue index bc047771..7d109800 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue @@ -85,11 +85,12 @@ @@ -112,7 +113,7 @@ import DraggablePanel from "@/draggable/DraggablePanel.vue" import PlayerCard from "@/components/views/prepare/components/PlayerCard.vue" import { KnockoutMatch } from "@/interfaces/knockoutSystem" import ViewKnockoutTree from "@/components/views/competition/knockoutSystem/ViewKnockoutTree.vue" -import { getCompetitionDetails } from "@/backend/competition" +import ViewKnockoutTreeDraggable from "@/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue" const route = useRoute() const toast = useToast() diff --git a/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue b/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue index a59d1929..ea33fe4c 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue @@ -16,6 +16,7 @@ 'min-team-height': competition?.mode === Mode.DOUBLE, }" style="box-sizing: content-box" + :single="props.single" > diff --git a/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue b/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue index ea33fe4c..7dc7ca82 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/TeamContainerDraggable.vue @@ -54,10 +54,7 @@ const props = defineProps<{ teams: Team[] competition: Competition animated: boolean - single: { - type: boolean - default: false - } + single: boolean }>() diff --git a/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue b/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue index cc357414..c63d6fd6 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue @@ -100,7 +100,7 @@ import ViewMatchV3 from "@/components/views/competition/knockoutSystem/ViewMatch import { Competition, Mode } from "@/interfaces/competition" import { computed, ref } from "vue" import TeamContainerDraggable from "@/components/views/prepare/assignMatches/TeamContainerDraggable.vue" -import { Team } from "@/interfaces/match" +import { Team } from "@/interfaces/team" const { t } = useI18n({ inheritLocale: true }) From 2a0d36e42ec3eb324b9f60fcd1390d91fdc4c389 Mon Sep 17 00:00:00 2001 From: oliver Date: Mon, 15 Apr 2024 20:39:13 +0200 Subject: [PATCH 004/247] =?UTF-8?q?=F0=9F=9A=A7=20extract=20ViewMatch=20to?= =?UTF-8?q?=20allow=20for=20more=20flexible=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../knockoutSystem/ViewKnockoutTree.vue | 14 ++- .../competition/knockoutSystem/ViewMatch.vue | 88 +++-------------- .../knockoutSystem/ViewMatchEdit.vue | 5 + .../knockoutSystem/ViewMatchView.vue | 97 +++++++++++++++++++ 4 files changed, 129 insertions(+), 75 deletions(-) create mode 100644 frontend/app/src/components/views/competition/knockoutSystem/ViewMatchEdit.vue create mode 100644 frontend/app/src/components/views/competition/knockoutSystem/ViewMatchView.vue diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue index 548d1ac2..aa1d1244 100644 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue +++ b/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue @@ -21,7 +21,17 @@ rowspan="5" class="matchCol" > - + + import { KnockoutMatch } from "@/interfaces/knockoutSystem" import { useI18n } from "vue-i18n" -import ViewMatchV3 from "@/components/views/competition/knockoutSystem/ViewMatch.vue" +import ViewMatch from "@/components/views/competition/knockoutSystem/ViewMatch.vue" import { Mode } from "@/interfaces/competition" import { computed } from "vue" diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch.vue index a23d9559..0efd2585 100644 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch.vue +++ b/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch.vue @@ -1,87 +1,43 @@ \ No newline at end of file + diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchEdit.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchEdit.vue deleted file mode 100644 index 124e42ab..00000000 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchEdit.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchView.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchView.vue deleted file mode 100644 index 6cb59f9f..00000000 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchView.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - - diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchViewArray.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchViewArray.vue deleted file mode 100644 index 68722541..00000000 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatchViewArray.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch_old.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch_old.vue deleted file mode 100644 index 0efd2585..00000000 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewMatch_old.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - diff --git a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesGroups.vue b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesGroups.vue index 01ce964a..79d3676e 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesGroups.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesGroups.vue @@ -31,56 +31,43 @@
- - + + + + +
+ + +
@@ -89,11 +76,8 @@ import { useRoute } from "vue-router" import { useI18n } from "vue-i18n" import { useToast } from "primevue/usetoast" -import { KnockoutMatch } from "@/interfaces/knockoutSystem" import { computed, Ref, ref, watch } from "vue" import { Team } from "@/interfaces/team" -import { TourType } from "@/interfaces/competition" -import ViewKnockoutTree from "@/components/views/competition/knockoutSystem/ViewKnockoutTree_old.vue" import { getCompetitionDetails } from "@/backend/competition" import { getSignedUp } from "@/backend/signup" import { getGroupsDivision, useInitGroups } from "@/backend/group" @@ -207,33 +191,6 @@ async function reset() { animated.value = false } -function generateTree(size: number): KnockoutMatch { - return { - court: "a", - begin: new Date(), - end: new Date(), - finished: false, - winner: null, - teamA: null, - teamB: null, - sets: null, - curGame: null, - prevMatch: - size > 0 - ? { - winner: true, - a: generateTree(size - 1), - b: generateTree(size - 1), - } - : undefined, - } -} - -const knockoutSystem = { - finale: generateTree(1), - thirdPlace: generateTree(0), -} - function adjustUnsorted() { teams.value = teams.value.filter( (t) => !groups.value.some((group) => group.some((st) => st.id === t.id)), diff --git a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue index 1df819c9..b674c332 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue @@ -1,5 +1,5 @@ @@ -54,23 +56,63 @@ import { useRoute } from "vue-router" import { useToast } from "primevue/usetoast" import { useI18n } from "vue-i18n" -import { computed, Ref, ref } from "vue" +import { computed, Ref, ref, watch } from "vue" import { getCompetitionDetails } from "@/backend/competition" import TeamContainerDraggable from "@/components/views/prepare/components/TeamContainerDraggable.vue" -import { Team, teamClientToServer, teamServerToClient } from "@/interfaces/team" +import { Team, teamClientToServer } from "@/interfaces/team" import axios from "axios" -import { KnockoutOrder, Progress } from "@/interfaces/competition" +import { KnockoutOrder } from "@/interfaces/competition" import { KnockoutMatch } from "@/interfaces/knockoutSystem" -import ViewKnockoutTreeDraggable from "@/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue" +import { getSignedUp } from "@/backend/signup" +import ViewKnockoutTree from "@/components/views/competition/knockoutSystem/ViewKnockoutTree.vue" +import ViewMatch from "@/components/views/competition/knockoutSystem/ViewMatch.vue" +import ViewMatchEdit from "@/components/views/prepare/assignMatches/ViewMatchEdit.vue" const route = useRoute() const toast = useToast() const { t } = useI18n({ inheritLocale: true }) +const { data: competition } = getCompetitionDetails(route, t, toast, {}) +const { data: signedUp } = getSignedUp(route, t, toast) + const teams = ref([]) + +const tree = ref(genTree(0)) +watch([signedUp], () => { + if (!signedUp.value) return + + teams.value = [] + signedUp.value.forEach((t) => teams.value.push(t)) + tree.value = genTree(Math.ceil(Math.log2(signedUp.value.length))) +}) + // [row number in the tree][ upper or lower part of a bracket ][just in an array for draggable] const assignedTeams = ref([]) +function genTree(height: number): KnockoutMatch { + const default_game = { + court: null, + begin: null, + end: null, + finished: false, + winner: null, + teamA: null, + teamB: null, + sets: null, + curGame: null, + } + if (height === 0) return default_game + + return { + ...default_game, + prevMatch: { + winner: true, + a: genTree(height - 1), + b: genTree(height - 1), + }, + } +} + const animated = ref(true) const duration = 2000 @@ -88,13 +130,6 @@ function $t(name: string) { return computed(() => t(name)) } -const { data: competition } = getCompetitionDetails(route, t, toast, { - suc: () => { - if (competition.value === null) return - update() - }, -}) - const randomizeItems = ref([ { label: $t("ViewPrepare.editTeams.reroll"), @@ -159,115 +194,69 @@ async function reset() { let firstUpdate = true -async function update() { - animated.value = true - teams.value = [] - while (assignedTeams.value.length > 0) { - assignedTeams.value.pop() - } - // const anFin = sleep(firstUpdate ? 0 : 500) - firstUpdate = false - teamCount.value = 0 - if ( - competition.value?.cProgress === Progress.GAMES || - competition.value?.cProgress === Progress.SCHEDULING - ) { - axios - .get( - `tournament/${route.params.tourId}/competition/${route.params.compId}/knockoutOrder`, - ) - .then(async (response) => { - let sortedTeams = response.data.teams.map((t) => teamServerToClient(t)) - teamCount.value += sortedTeams.length - // initialize the knockout order - for (let i = 0; i < nearestPowerOf2(sortedTeams.length) / 2; i++) { - assignedTeams.value.push([ - [sortedTeams[i * 2]], - [sortedTeams[i * 2 + 1]], - ]) - } - animated.value = false - }) - .catch(() => {}) - } else { - axios - .get( - `tournament/${route.params.tourId}/competition/${route.params.compId}/signedUpTeams`, - ) - .then(async (response) => { - // await anFin - response.data.forEach((team) => { - teams.value.push(teamServerToClient(team)) - teamCount.value++ - }) - // await sleep(500) - if (competition.value?.cProgress === Progress.TEAMS) { - for (let i = 0; i < nearestPowerOf2(teams.value.length) / 2; i++) { - assignedTeams.value.push([[], []]) - } - } - animated.value = false - }) - .catch((error) => { - console.log(error) - }) - } -} - -function nearestPowerOf2(n: number): number { - return 1 << (31 - Math.clz32(n)) -} - -function split(size: number, teams: Team[]): Team[][] { - if (size === 0) { - return [[teams[0]], [teams[1]]] - } - - const count = 2 ** (size + 1) - const first = split(size - 1, teams.slice(0, count / 2)) - const second = split(size - 1, teams.slice(count / 2, count).toReversed()) - return [ - first[0].concat(second[0].toReversed()), - first[1].concat(second[1].toReversed()), - ] -} +// async function update() { +// animated.value = true +// teams.value = [] +// while (assignedTeams.value.length > 0) { +// assignedTeams.value.pop() +// } +// // const anFin = sleep(firstUpdate ? 0 : 500) +// firstUpdate = false +// teamCount.value = 0 +// if ( +// competition.value?.cProgress === Progress.GAMES || +// competition.value?.cProgress === Progress.SCHEDULING +// ) { +// axios +// .get( +// `tournament/${route.params.tourId}/competition/${route.params.compId}/knockoutOrder`, +// ) +// .then(async (response) => { +// let sortedTeams = response.data.teams.map((t) => teamServerToClient(t)) +// teamCount.value += sortedTeams.length +// // initialize the knockout order +// for (let i = 0; i < nearestPowerOf2(sortedTeams.length) / 2; i++) { +// assignedTeams.value.push([ +// [sortedTeams[i * 2]], +// [sortedTeams[i * 2 + 1]], +// ]) +// } +// animated.value = false +// }) +// .catch(() => {}) +// } else { +// axios +// .get( +// `tournament/${route.params.tourId}/competition/${route.params.compId}/signedUpTeams`, +// ) +// .then(async (response) => { +// // await anFin +// response.data.forEach((team) => { +// teams.value.push(teamServerToClient(team)) +// teamCount.value++ +// }) +// // await sleep(500) +// if (competition.value?.cProgress === Progress.TEAMS) { +// for (let i = 0; i < nearestPowerOf2(teams.value.length) / 2; i++) { +// assignedTeams.value.push([[], []]) +// } +// } +// animated.value = false +// }) +// .catch((error) => { +// console.log(error) +// }) +// } +// } -function generateTree( - size: number, - teams: Team[], - reversed = false, -): KnockoutMatch { - const f = reversed ? 1 : 0 - const s = reversed ? 0 : 1 - - const splits = split(size, teams) - return { - court: null, - begin: null, - end: null, - finished: false, - winner: null, - teamA: size === 0 ? teams[f] : null, - teamB: size === 0 ? teams[s] : null, - sets: null, - curGame: null, - prevMatch: - size > 0 - ? { - winner: true, - a: generateTree(size - 1, splits[f]), - b: generateTree(size - 1, splits[s], true), - } - : undefined, - } -} +// function nearestPowerOf2(n: number): number { +// return 1 << (31 - Math.clz32(n)) +// } const size = computed(() => Math.max(0, Math.ceil(Math.log2(teamCount.value)) - 1), ) -const thirdPlace = computed(() => generateTree(0, [])) - function knockoutTreeCompletelyAssigned(): boolean { console.log(assignedTeams.value) for (let i = 0; i < assignedTeams.value.length; i++) { diff --git a/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue b/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue deleted file mode 100644 index 1dee9cf3..00000000 --- a/frontend/app/src/components/views/prepare/assignMatches/ViewKnockoutTreeDraggable.vue +++ /dev/null @@ -1,304 +0,0 @@ - - - - - diff --git a/frontend/app/src/components/views/prepare/assignMatches/ViewMatchEdit.vue b/frontend/app/src/components/views/prepare/assignMatches/ViewMatchEdit.vue new file mode 100644 index 00000000..b71fbd1b --- /dev/null +++ b/frontend/app/src/components/views/prepare/assignMatches/ViewMatchEdit.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/frontend/app/src/components/views/prepare/components/MatchBox.vue b/frontend/app/src/components/views/prepare/components/MatchBox.vue new file mode 100644 index 00000000..b927e0ad --- /dev/null +++ b/frontend/app/src/components/views/prepare/components/MatchBox.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/frontend/app/src/components/views/prepare/components/TeamCard.vue b/frontend/app/src/components/views/prepare/components/TeamCard.vue new file mode 100644 index 00000000..3c3f1201 --- /dev/null +++ b/frontend/app/src/components/views/prepare/components/TeamCard.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/frontend/app/src/components/views/prepare/components/TeamContainerDraggable.vue b/frontend/app/src/components/views/prepare/components/TeamContainerDraggable.vue index a59d1929..0a190283 100644 --- a/frontend/app/src/components/views/prepare/components/TeamContainerDraggable.vue +++ b/frontend/app/src/components/views/prepare/components/TeamContainerDraggable.vue @@ -22,21 +22,10 @@ v-if="item.playerA && competition?.mode === Mode.SINGLE" :player="item.playerA" > - - - - + :team="item" + > @@ -46,8 +35,8 @@ import { TransitionGroup } from "vue" import { Competition, Mode } from "@/interfaces/competition" import { Team } from "@/interfaces/team" import PlayerCard from "@/components/views/prepare/components/PlayerCard.vue" -import TeamBox from "@/components/views/prepare/components/TeamBox.vue" import DraggablePanel from "@/draggable/DraggablePanel.vue" +import TeamCard from "@/components/views/prepare/components/TeamCard.vue" const props = defineProps<{ teams: Team[] diff --git a/frontend/app/src/components/views/prepare/components/TeamTableElementDraggable.vue b/frontend/app/src/components/views/prepare/components/TeamTableElementDraggable.vue deleted file mode 100644 index 99ce306f..00000000 --- a/frontend/app/src/components/views/prepare/components/TeamTableElementDraggable.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - From b6fa3abc170dd2d2301677497f1bfcb265dd43a2 Mon Sep 17 00:00:00 2001 From: Jonas Stahl Date: Fri, 26 Jul 2024 12:43:02 +0200 Subject: [PATCH 019/247] =?UTF-8?q?=F0=9F=90=9B=20Fix=20loading=20issues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../knockoutSystem/ViewKnockoutTree.vue | 6 +++-- .../assignMatches/AssignMatchesKnockout.vue | 23 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue index ac9af5a5..1d673666 100644 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue +++ b/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue @@ -163,7 +163,8 @@ function setEl(level: number, index: number, el: HTMLElement) { if (!resizeObserver.value[level][index]) resizeObserver.value[level][index] = new ResizeObserver(update) matchRefs.value[level][index] = el - resizeObserver.value[level][index].observe(el) + if (el) + resizeObserver.value[level][index].observe(el) } const maxHeight = ref(0) @@ -174,7 +175,8 @@ function update() { let mH = 0 for (const row of matchRefs.value) { for (const match of row ?? []) { - mH = Math.max(mH, match.getBoundingClientRect().height) + if (match) + mH = Math.max(mH, match.getBoundingClientRect().height) } } maxHeight.value = mH diff --git a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue index b674c332..95a50c48 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue @@ -72,19 +72,31 @@ const route = useRoute() const toast = useToast() const { t } = useI18n({ inheritLocale: true }) -const { data: competition } = getCompetitionDetails(route, t, toast, {}) -const { data: signedUp } = getSignedUp(route, t, toast) +let firstUpdate = true +const { data: competition } = getCompetitionDetails(route, t, toast, { + suc: () => { + if (competition.value === null) return + loadFromServer() + }, +}) +const { data: signedUp, isPlaceholderData: signedUpPlaceholder } = getSignedUp(route, t, toast) const teams = ref([]) const tree = ref(genTree(0)) -watch([signedUp], () => { +watch([signedUp], loadFromServer) +if (!signedUpPlaceholder.value) loadFromServer() + +async function loadFromServer() { if (!signedUp.value) return teams.value = [] - signedUp.value.forEach((t) => teams.value.push(t)) tree.value = genTree(Math.ceil(Math.log2(signedUp.value.length))) -}) + await sleep(firstUpdate ? 0 : 400) + firstUpdate = false + + signedUp.value.forEach((t) => teams.value.push(t)) +} // [row number in the tree][ upper or lower part of a bracket ][just in an array for draggable] const assignedTeams = ref([]) @@ -192,7 +204,6 @@ async function reset() { animated.value = false } -let firstUpdate = true // async function update() { // animated.value = true From 40a0830470aa354a253fc3a528b112145b32fc27 Mon Sep 17 00:00:00 2001 From: Jonas Stahl Date: Sat, 27 Jul 2024 15:07:08 +0200 Subject: [PATCH 020/247] =?UTF-8?q?=E2=9C=A8=20Correctly=20sync=20selected?= =?UTF-8?q?=20team=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../knockoutSystem/ViewKnockoutTree.vue | 65 ++++++++++++++----- .../assignMatches/AssignMatchesKnockout.vue | 61 +++++++++++------ .../prepare/assignMatches/ViewMatchEdit.vue | 34 +++++++--- 3 files changed, 114 insertions(+), 46 deletions(-) diff --git a/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue b/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue index 1d673666..43a1d25e 100644 --- a/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue +++ b/frontend/app/src/components/views/competition/knockoutSystem/ViewKnockoutTree.vue @@ -23,7 +23,14 @@ > Fallback @@ -36,7 +43,9 @@
@@ -61,6 +70,14 @@ Fallback @@ -117,6 +134,8 @@ diff --git a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue index 95a50c48..0a9994cf 100644 --- a/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue +++ b/frontend/app/src/components/views/prepare/assignMatches/AssignMatchesKnockout.vue @@ -40,8 +40,8 @@ :border-thickness="2" :border-radius="0" > -