48 lines
1.3 KiB
Vue
48 lines
1.3 KiB
Vue
<script setup>
|
|
import AircraftForm from "components/aircrafts/AircraftForm.vue";
|
|
import {useAircraftsStore} from "stores/Aircrafts";
|
|
import {useRoute, useRouter} from "vue-router";
|
|
import {useQuasar} from "quasar";
|
|
import {onMounted, reactive, ref} from "vue";
|
|
|
|
|
|
let isRequestPending = ref(false);
|
|
const $q = useQuasar();
|
|
const router = useRouter();
|
|
|
|
const aircraftId = parseInt(useRoute().params.id);
|
|
|
|
const handleSave = (formData) => {
|
|
isRequestPending.value = true;
|
|
useAircraftsStore().update(aircraftId, formData).then(() => {
|
|
$q.notify({message: "Letadlo uspesne upraveno", position: "top", color: "positive"});
|
|
|
|
router.push({name: "aircrafts"});
|
|
}).finally(() => {
|
|
isRequestPending.value = true;
|
|
})
|
|
}
|
|
|
|
let loadedAircraft = ref(null);
|
|
onMounted(() => {
|
|
useAircraftsStore().fetchDetail(aircraftId).then((data) => {
|
|
console.log("data ", data);
|
|
loadedAircraft.value = data;
|
|
|
|
} ).catch(err => {
|
|
console.error(err);
|
|
})
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<q-skeleton v-if="!loadedAircraft" />
|
|
<template v-if="loadedAircraft">
|
|
<h1>Editace letadla {{ loadedAircraft.name}}</h1>
|
|
|
|
loaded aircraft: {{ loadedAircraft }}
|
|
|
|
<AircraftForm @save="handleSave" :default-values="loadedAircraft" :is-request-pending="isRequestPending"/>
|
|
</template>
|
|
</template>
|