Ukladani metadat k planum
This commit is contained in:
@@ -21,6 +21,12 @@ import FlightPlanMap from "components/flightPlans/FlightPlanMap.vue";
|
||||
import FlightPlanRoute from "components/flightPlans/FlightPlanRoute.vue";
|
||||
import FlightPlanMarkersList from "components/flightPlans/FlightPlanMarkersList.vue";
|
||||
import DatetimePicker from "components/inputs/DatetimePicker.vue";
|
||||
import {useAircraftsStore} from "stores/Aircrafts";
|
||||
import ComboboxInput from "components/inputs/ComboboxInput.vue";
|
||||
import FormWrapper from "components/FormWrapper.vue";
|
||||
import {successObject} from "src/composables/dialog";
|
||||
import {useQuasar} from "quasar";
|
||||
import {useCopilotsStore} from "stores/Copilots";
|
||||
|
||||
const {flightPlan} = storeToRefs(useFlightPlansStore());
|
||||
|
||||
@@ -34,6 +40,7 @@ useAppStore().setBreadcrumbs([
|
||||
|
||||
onMounted(() => {
|
||||
useAirspacesStore().fetch();
|
||||
useAircraftsStore().fetch({});
|
||||
usePointsOfInterestStore().fetch({limit: 10000});
|
||||
useAirportsStore().fetch();
|
||||
});
|
||||
@@ -41,25 +48,29 @@ onMounted(() => {
|
||||
const {pointsOfInterest} = storeToRefs(usePointsOfInterestStore());
|
||||
const {airspaces: airspacesData, areAirspacesLoading: isQueryRunning} = storeToRefs(useAirspacesStore())
|
||||
const {airports} = storeToRefs(useAirportsStore());
|
||||
const {aircrafts: aircraftsData} = storeToRefs(useAircraftsStore());
|
||||
const {copilots: copilotsData} = storeToRefs(useCopilotsStore());
|
||||
const aircrafts = computed(() => aircraftsData.value.map(a => ({id: a.id, name: a.callSign})));
|
||||
|
||||
|
||||
const {getMarkersFrom} = useFlightPlanUtils();
|
||||
const {markerObject} = useFlightPlanObjects();
|
||||
|
||||
const formData = ref({
|
||||
name: flightPlan.value?.name || null,
|
||||
isDefaultName: flightPlan.value?.isDefaultName || false,
|
||||
isEditableByCopilot: flightPlan.value?.isEditableByCopilot || false,
|
||||
isPublic: flightPlan.value?.isPublic || false,
|
||||
takeoffTime: flightPlan.value?.takeoffTime || null,
|
||||
aircraft: flightPlan.value?.aircraft || null,
|
||||
plannedSpeed: flightPlan.value?.plannedSpeed || 150
|
||||
plannedTakeoffDatetime: flightPlan.value?.plannedTakeoffDatetime || null,
|
||||
aircraft: flightPlan.value && flightPlan.value.aircraft ? {id: flightPlan.value.aircraft.id, name: flightPlan.value.aircraft.callSign} : null,
|
||||
plannedSpeed: flightPlan.value?.plannedSpeed || 150,
|
||||
})
|
||||
|
||||
const openedTab = ref("route");
|
||||
const flightPlannerDialogOpen = ref(false);
|
||||
const flightPlanMarkers = ref(getMarkersFrom(flightPlan.value));
|
||||
|
||||
const updateFlightPlanName = () => {
|
||||
formData.value.name = flightPlanMarkers.value.map(m => m.name).join(" - ");
|
||||
}
|
||||
const autoFlightName = computed(() => flightPlanMarkers.value.map(m => m.name).join(" - "))
|
||||
|
||||
|
||||
const handleMarkersChanges = (markers) => {
|
||||
@@ -76,7 +87,13 @@ const handleMarkersChanges = (markers) => {
|
||||
});
|
||||
};
|
||||
|
||||
const handleFlightPlanInfoSave = () => useFlightPlansStore().update(flightPlan.value.id, formData.value);
|
||||
|
||||
const $q = useQuasar();
|
||||
const handleFlightPlanInfoSave = () => {
|
||||
useFlightPlansStore().update(flightPlan.value.id, formData.value).then(() => {
|
||||
$q.notify(successObject("Ulozeno"));
|
||||
})
|
||||
}
|
||||
const insertAtPosition = ref(flightPlanMarkers.value.length);
|
||||
</script>
|
||||
|
||||
@@ -107,7 +124,7 @@ const insertAtPosition = ref(flightPlanMarkers.value.length);
|
||||
@markers-changed="handleMarkersChanges"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12 col-md-5 col-lg-2">
|
||||
<div class="col-12 col-md-3 col-lg-2">
|
||||
<FlightPlanMarkersList
|
||||
:insert-position="insertAtPosition"
|
||||
:flight-plan="flightPlan"
|
||||
@@ -121,21 +138,23 @@ const insertAtPosition = ref(flightPlanMarkers.value.length);
|
||||
<q-tab-panel name="info">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<q-form @submit.prevent="handleFlightPlanInfoSave">
|
||||
<q-input v-model="formData.name" label="Jméno letu" v-bind="commonProps"/>
|
||||
<q-btn @click="updateFlightPlanName()">Jmeno automaticky</q-btn>
|
||||
|
||||
<FormWrapper v-model="formData" @save="handleFlightPlanInfoSave">
|
||||
<q-input v-model="formData.name" label="Jméno letu" v-if="!formData.isDefaultName" v-bind="commonProps"/>
|
||||
|
||||
<q-checkbox v-model="formData.isDefaultName" label="Použít automatické jméno"/>
|
||||
|
||||
<q-checkbox v-model="formData.isPublic" label="Zveřejnit"/>
|
||||
<DatetimePicker v-model="formData.takeoffTime" label="Datum a čas vzletu" v-bind="commonProps"/>
|
||||
<q-select v-model="formData.aircraft" :options="[]" label="Letadlo" v-bind="commonProps"/>
|
||||
<q-checkbox v-model="formData.isEditableByCopilot" label="Kopilot může upravovat"/>
|
||||
<DatetimePicker v-model="formData.plannedTakeoffDatetime" label="Datum a čas vzletu" v-bind="commonProps"/>
|
||||
<ComboboxInput v-model="formData.aircraft" :options="aircrafts" label="Letadlo" v-bind="commonProps"/>
|
||||
|
||||
<q-input v-model="formData.plannedSpeed" label="Plánovaná rychlost" v-bind="commonProps">
|
||||
<q-input v-model.number="formData.plannedSpeed" type="number" step="5" label="Plánovaná rychlost" v-bind="commonProps">
|
||||
<template #append>km/h</template>
|
||||
</q-input>
|
||||
|
||||
<q-btn @click="handleFlightPlanInfoSave" icon="save">Ulozit</q-btn>
|
||||
|
||||
</q-form>
|
||||
<!-- <q-btn @click="handleFlightPlanInfoSave" icon="save">Ulozit</q-btn>-->
|
||||
</FormWrapper>
|
||||
</div>
|
||||
</div>
|
||||
</q-tab-panel>
|
||||
|
||||
Reference in New Issue
Block a user