Sprava eventu a organizaci

This commit is contained in:
Michal Kváček
2023-09-20 13:26:13 +02:00
parent 6fbaef4a1e
commit 8c3c5ee48d
42 changed files with 624 additions and 56 deletions
@@ -9,6 +9,10 @@ import {loading, aircraft, fetchAircraft} from "src/composables/objects/aircraft
import {useAppStore} from "stores/App";
import FlightsList from "components/flights/FlightsList.vue";
import AircraftDetailCard from "components/aircrafts/AircraftDetailCard.vue";
import {poi} from "src/composables/objects/poi";
import AccessDeniedBanner from "components/banners/AccessDeniedBanner.vue";
import {storeToRefs} from "pinia";
import {useUserStore} from "stores/User";
const $q = useQuasar();
const $router = useRouter();
+5 -1
View File
@@ -19,7 +19,11 @@ onMounted(() => {
:route-add="{name: 'addAircraft'}"
label-add="Vytvořit letadlo"
>
Aktuálně nemáš přidané žádné letadlo.
Aktuálně nemáš přidané žádné letadlo. Přidej se k existující organizaci nebo si sem ulož vlastní letadlo.
<br>
Letadlo můžeš založit i během ukládání informace k tvému prvnímu letu. A pak si ho tu jen doupravit.
</BasicInfoBanner>
<AircraftsList
@@ -8,11 +8,16 @@ import AircraftEditSkeleton from "components/aircrafts/AircraftEditSkeleton.vue"
import {successObject} from "src/composables/dialog";
import {aircraft, fetchAircraft, loading, isRequestPending} from "src/composables/objects/aircraft";
import {useAppStore} from "stores/App";
import {fetchOrganizations, organizations} from "src/composables/objects/organization";
import AccessDeniedBanner from "components/banners/AccessDeniedBanner.vue";
import {storeToRefs} from "pinia";
import {useUserStore} from "stores/User";
const $router = useRouter();
const $q = useQuasar();
const aircraftId = parseInt(useRoute().params.id);
const loggedUser = storeToRefs(useUserStore()).user;
const handleSave = (formData) => {
useAircraftsStore().update(aircraftId, formData).then(() => {
@@ -29,18 +34,24 @@ onMounted(() => {
{to: {name: "aircraftDetail", params: {id: aircraftId}}, label: aircraft.value.callSign},
{label: "Editace"}
])
})
});
});
</script>
<template>
<AircraftEditSkeleton v-if="loading"/>
<AccessDeniedBanner
v-else-if="aircraft.createdById !== loggedUser.id"
:route-back="{name: 'aircraftDetail', params: {id: aircraftId}}"
/>
<q-card v-else class="q-mx-md">
<q-card-section>
<AircraftForm
@save="handleSave"
:default-values="aircraft"
:organizations="loggedUser.organizations"
:is-request-pending="isRequestPending"
/>
</q-card-section>
@@ -3,13 +3,17 @@ import AircraftForm from "components/aircrafts/AircraftForm.vue";
import {useAircraftsStore} from "stores/Aircrafts";
import {useRouter} from "vue-router";
import {useQuasar} from "quasar";
import {ref} from "vue";
import {useAppStore} from "stores/App";
import {successObject} from "src/composables/dialog";
import {isRequestPending} from "src/composables/objects/aircraft";
import {fetchOrganizations, organizations} from "src/composables/objects/organization";
import {onMounted} from "vue";
import {storeToRefs} from "pinia";
import {useUserStore} from "stores/User";
const $q = useQuasar();
const router = useRouter();
const loggedUser = storeToRefs(useUserStore()).user;
const handleSave = (formData) => {
useAircraftsStore().create(formData).then(() => {
@@ -18,17 +22,24 @@ const handleSave = (formData) => {
});
};
useAppStore().setPageTitle("Nové letadlo");
useAppStore().setBreadcrumbs([
{to: {name: "aircrafts"}, label: "Letadla"},
{label: "Nové"}
]);
onMounted(() => {
fetchOrganizations();
useAppStore().setPageTitle("Nové letadlo");
useAppStore().setBreadcrumbs([
{to: {name: "aircrafts"}, label: "Letadla"},
{label: "Nové"}
]);
});
</script>
<template>
<q-card class="q-mx-md q-my-md">
<q-card-section>
<AircraftForm @save="handleSave" :is-request-pending="isRequestPending"/>
<AircraftForm
:is-request-pending="isRequestPending"
:organizations="loggedUser.organizations"
@save="handleSave"
/>
</q-card-section>
</q-card>
</template>