From 1da279bb249dced27c1ab00eb68a91d548f5be56 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Sat, 10 May 2025 22:22:12 +0200 Subject: [PATCH] feat: Add FightEdit and GroupEdit components for enhanced event management --- .../moderator/components/FightEdit.svelte | 219 ++++++++++++++++++ .../moderator/pages/event/EventEdit.svelte | 9 + .../pages/event/EventFightList.svelte | 20 +- .../moderator/pages/event/EventView.svelte | 6 +- .../moderator/pages/event/FightEditRow.svelte | 41 ++++ .../moderator/pages/event/GroupEditRow.svelte | 16 ++ .../moderator/pages/event/TeamTable.svelte | 4 +- 7 files changed, 308 insertions(+), 7 deletions(-) create mode 100644 src/components/moderator/components/FightEdit.svelte create mode 100644 src/components/moderator/pages/event/FightEditRow.svelte create mode 100644 src/components/moderator/pages/event/GroupEditRow.svelte diff --git a/src/components/moderator/components/FightEdit.svelte b/src/components/moderator/components/FightEdit.svelte new file mode 100644 index 0000000..4d0e5a0 --- /dev/null +++ b/src/components/moderator/components/FightEdit.svelte @@ -0,0 +1,219 @@ + + +
+ + + + {#snippet child({ props })} + + {/snippet} + + + + + + No fight modus found. + + {#each $gamemodes as modus} + { + fightModus = modus; + }} + > + + {modus} + + {/each} + + + + + + + + + {#snippet child({ props })} + + {/snippet} + + + + + + No map found. + + {#each $mapsStore as map} + { + fightMap = map; + }} + > + + {map} + + {/each} + + + + + + + + + {#snippet child({ props })} + + {/snippet} + + + + + + No map found. + + {#each teams as team} + { + fightBlueTeam = team; + }} + > + + {team.name} + + {/each} + + + + + + + + + {#snippet child({ props })} + + {/snippet} + + + + + + No map found. + + {#each teams as team} + { + fightRedTeam = team; + }} + > + + {team.name} + + {/each} + + + + + + + + + +
+ +{@render actions(dirty, submit)} diff --git a/src/components/moderator/pages/event/EventEdit.svelte b/src/components/moderator/pages/event/EventEdit.svelte index bb3d0f8..505db45 100644 --- a/src/components/moderator/pages/event/EventEdit.svelte +++ b/src/components/moderator/pages/event/EventEdit.svelte @@ -106,6 +106,15 @@ No schematic type found. + { + eventSchematicType = null; + }} + > + + Keinen + {#each $schemTypes as type}
@@ -35,12 +35,12 @@

Teams

- +

Referees

- + diff --git a/src/components/moderator/pages/event/FightEditRow.svelte b/src/components/moderator/pages/event/FightEditRow.svelte new file mode 100644 index 0000000..0f44410 --- /dev/null +++ b/src/components/moderator/pages/event/FightEditRow.svelte @@ -0,0 +1,41 @@ + + +
+ + + + + + + Fight bearbeiten + Hier kannst du die Daten des Kampfes bearbeiten. + + + {#snippet actions(dirty, submit)} + + + + {/snippet} + + + + +
diff --git a/src/components/moderator/pages/event/GroupEditRow.svelte b/src/components/moderator/pages/event/GroupEditRow.svelte new file mode 100644 index 0000000..4e1f1f0 --- /dev/null +++ b/src/components/moderator/pages/event/GroupEditRow.svelte @@ -0,0 +1,16 @@ + + +
+ + +
diff --git a/src/components/moderator/pages/event/TeamTable.svelte b/src/components/moderator/pages/event/TeamTable.svelte index 50f85a3..94a0975 100644 --- a/src/components/moderator/pages/event/TeamTable.svelte +++ b/src/components/moderator/pages/event/TeamTable.svelte @@ -26,18 +26,20 @@ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@components/ui/command"; import { teams } from "@components/stores/stores"; - const { event }: { event: ExtendedEvent } = $props(); + const { event = $bindable() }: { event: ExtendedEvent } = $props(); let team = $state(event.teams); async function addTeam(value: number) { await $eventRepo.updateTeams(event.event.id.toString(), [value]); team = await $eventRepo.listTeams(event.event.id.toString()); + event.teams = team; } async function removeTeam(value: number) { await $eventRepo.deleteTeams(event.event.id.toString(), [value]); team = await $eventRepo.listTeams(event.event.id.toString()); + event.teams = team; } let teamSearch = $state("");