Compare commits
	
		
			No commits in common. "a2712504e2a4209ea86757113fd761cf4e6d88e8" and "bb82f20a47a17d09a9205fa891f07d40ba8ed8bf" have entirely different histories. 
		
	
	
		
			a2712504e2
			...
			bb82f20a47
		
	
		
	| 
						 | 
					@ -1,39 +0,0 @@
 | 
				
			||||||
<script setup lang="ts">
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div class="loader">
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
.loader {
 | 
					 | 
				
			||||||
  width: 12px;
 | 
					 | 
				
			||||||
  aspect-ratio: 1;
 | 
					 | 
				
			||||||
  border-radius: 50%;
 | 
					 | 
				
			||||||
  animation: loader-anim 1s infinite linear;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@keyframes loader-anim {
 | 
					 | 
				
			||||||
  0%  {
 | 
					 | 
				
			||||||
    box-shadow: 20px 4px var(--overlay-0), -20px -4px var(--overlay-0);
 | 
					 | 
				
			||||||
    background: var(--overlay-0);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  25% {
 | 
					 | 
				
			||||||
    box-shadow: 20px 0 var(--overlay-0), -20px 0 var(--overlay-0);
 | 
					 | 
				
			||||||
    background: var(--overlay-0);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  50% {
 | 
					 | 
				
			||||||
    box-shadow: 20px -4px var(--overlay-0), -20px 4px var(--overlay-0);
 | 
					 | 
				
			||||||
    background: var(--overlay-0);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  75% {
 | 
					 | 
				
			||||||
    box-shadow: 20px 0 var(--overlay-0), -20px 0 var(--overlay-0);
 | 
					 | 
				
			||||||
    background: var(--overlay-0);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  100% {
 | 
					 | 
				
			||||||
    box-shadow: 20px 4px var(--overlay-0), -20px -4px var(--overlay-0);
 | 
					 | 
				
			||||||
    background: var(--overlay-0);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
<script setup lang="ts">
 | 
					 | 
				
			||||||
import Loader from './Loader.vue';
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div class="loader-container">
 | 
					 | 
				
			||||||
    <Loader />
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped>
 | 
					 | 
				
			||||||
.loader-container {
 | 
					 | 
				
			||||||
  display: flex;
 | 
					 | 
				
			||||||
  width: 100%;
 | 
					 | 
				
			||||||
  justify-content: center;
 | 
					 | 
				
			||||||
  align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -111,7 +111,7 @@ export const useRosterStore = defineStore("roster", () => {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function fetchAvailablePlayers(startTime: number, teamId: number) {
 | 
					  function fetchAvailablePlayers(startTime: number, teamId: number) {
 | 
				
			||||||
    return clientStore.call(
 | 
					    clientStore.call(
 | 
				
			||||||
      fetchAvailablePlayers.name,
 | 
					      fetchAvailablePlayers.name,
 | 
				
			||||||
      () => client.default.viewAvailableAtTime(startTime.toString(), teamId),
 | 
					      () => client.default.viewAvailableAtTime(startTime.toString(), teamId),
 | 
				
			||||||
      (response) => {
 | 
					      (response) => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,22 +1,18 @@
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
import PlayerCard from "../components/PlayerCard.vue";
 | 
					import PlayerCard from "../components/PlayerCard.vue";
 | 
				
			||||||
import { computed, reactive, onMounted, ref } from "vue";
 | 
					import { computed, reactive, onMounted } from "vue";
 | 
				
			||||||
import { useRosterStore } from "../stores/roster";
 | 
					import { useRosterStore } from "../stores/roster";
 | 
				
			||||||
import { useRoute } from "vue-router";
 | 
					import { useRoute } from "vue-router";
 | 
				
			||||||
import moment from "moment";
 | 
					import moment from "moment";
 | 
				
			||||||
import { useEventsStore } from "@/stores/events";
 | 
					import { useEventsStore } from "@/stores/events";
 | 
				
			||||||
import EventSchedulerForm from "@/components/EventSchedulerForm.vue";
 | 
					import EventSchedulerForm from "@/components/EventSchedulerForm.vue";
 | 
				
			||||||
import { useEventForm } from "@/composables/event-form";
 | 
					import { useEventForm } from "@/composables/event-form";
 | 
				
			||||||
import Loader from "@/components/Loader.vue";
 | 
					 | 
				
			||||||
import LoaderContainer from "@/components/LoaderContainer.vue";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const rosterStore = useRosterStore();
 | 
					const rosterStore = useRosterStore();
 | 
				
			||||||
const eventsStore = useEventsStore();
 | 
					const eventsStore = useEventsStore();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const route = useRoute();
 | 
					const route = useRoute();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const isLoading = ref(false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const hasAvailablePlayers = computed(() => {
 | 
					const hasAvailablePlayers = computed(() => {
 | 
				
			||||||
  return rosterStore.availablePlayerRoles.length > 0;
 | 
					  return rosterStore.availablePlayerRoles.length > 0;
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					@ -32,33 +28,22 @@ function closeSelection() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
onMounted(async () => {
 | 
					onMounted(async () => {
 | 
				
			||||||
  isLoading.value = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (eventId.value) {
 | 
					  if (eventId.value) {
 | 
				
			||||||
    const event = await eventsStore.fetchEvent(eventId.value);
 | 
					    const event = await eventsStore.fetchEvent(eventId.value);
 | 
				
			||||||
    rosterStore.startTime = moment(event.startTime).unix();
 | 
					    rosterStore.startTime = moment(event.startTime).unix();
 | 
				
			||||||
    rosterStore.title = event.name;
 | 
					    rosterStore.title = event.name;
 | 
				
			||||||
    rosterStore.description = event.description;
 | 
					    rosterStore.description = event.description;
 | 
				
			||||||
    Object.assign(rosterStore.selectedPlayers, { });
 | 
					    Object.assign(rosterStore.selectedPlayers, { });
 | 
				
			||||||
    rosterStore.fetchPlayersFromEvent(eventId.value)
 | 
					    rosterStore.fetchPlayersFromEvent(eventId.value);
 | 
				
			||||||
      .then(() => {
 | 
					 | 
				
			||||||
        isLoading.value = false;
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    rosterStore.startTime = Number(route.params.startTime);
 | 
					    rosterStore.startTime = Number(route.params.startTime);
 | 
				
			||||||
    rosterStore.fetchAvailablePlayers(rosterStore.startTime, Number(route.params.teamId))
 | 
					    rosterStore.fetchAvailablePlayers(rosterStore.startTime, Number(route.params.teamId));
 | 
				
			||||||
      .then(() => {
 | 
					 | 
				
			||||||
        isLoading.value = false;
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <main v-if="isLoading">
 | 
					  <main>
 | 
				
			||||||
    <LoaderContainer />
 | 
					 | 
				
			||||||
  </main>
 | 
					 | 
				
			||||||
  <main v-else>
 | 
					 | 
				
			||||||
    <div class="top">
 | 
					    <div class="top">
 | 
				
			||||||
      <a>
 | 
					      <a>
 | 
				
			||||||
        <i class="bi bi-arrow-left" />
 | 
					        <i class="bi bi-arrow-left" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -289,8 +289,6 @@ def update_event(player: Player, event_id: int, json: UpdateEventJson, **_):
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            player_event.role = None
 | 
					            player_event.role = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    db.session.commit()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    event.update_discord_message()
 | 
					    event.update_discord_message()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return EventSchema.from_model(event).dict(by_alias=True), 200
 | 
					    return EventSchema.from_model(event).dict(by_alias=True), 200
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue