From e34f08ae39ea26335287a0dd654d6411c8bdc394 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Tue, 11 Mar 2025 12:42:36 +0100 Subject: [PATCH] refetch available on start change --- src/stores/admin/configuration/equipment.ts | 6 +++--- src/stores/admin/configuration/force.ts | 6 +++--- src/stores/admin/configuration/vehicle.ts | 6 +++--- .../admin/operation/mission/MissionOverview.vue | 14 +++++++++++--- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/stores/admin/configuration/equipment.ts b/src/stores/admin/configuration/equipment.ts index d7cb786..cbfba15 100644 --- a/src/stores/admin/configuration/equipment.ts +++ b/src/stores/admin/configuration/equipment.ts @@ -41,12 +41,12 @@ export const useEquipmentStore = defineStore("equipment", { this.loading = "failed"; }); }, - getAvailableEquipments() { + getAvailableEquipments(missionId: string) { this.availableEquipments = []; http - .get(`/admin/equipment?available=true`) + .get(`/admin/equipment/available/${missionId}`) .then((res) => { - this.availableEquipments = res.data.equipments; + this.availableEquipments = res.data; }) .catch((err) => {}); }, diff --git a/src/stores/admin/configuration/force.ts b/src/stores/admin/configuration/force.ts index 51f6857..b879791 100644 --- a/src/stores/admin/configuration/force.ts +++ b/src/stores/admin/configuration/force.ts @@ -41,12 +41,12 @@ export const useForceStore = defineStore("force", { this.loading = "failed"; }); }, - getAvailableForces() { + getAvailableForces(missionId: string) { this.availableForces = []; http - .get(`/admin/force?available=true`) + .get(`/admin/force/available/${missionId}`) .then((res) => { - this.availableForces = res.data.forces; + this.availableForces = res.data; }) .catch((err) => {}); }, diff --git a/src/stores/admin/configuration/vehicle.ts b/src/stores/admin/configuration/vehicle.ts index 14ee072..ed640b5 100644 --- a/src/stores/admin/configuration/vehicle.ts +++ b/src/stores/admin/configuration/vehicle.ts @@ -41,12 +41,12 @@ export const useVehicleStore = defineStore("vehicle", { this.loading = "failed"; }); }, - getAvailableVehicles() { + getAvailableVehicles(missionId: string) { this.availableVehicles = []; http - .get(`/admin/vehicle?available=true`) + .get(`/admin/vehicle/available/${missionId}`) .then((res) => { - this.availableVehicles = res.data.vehicles; + this.availableVehicles = res.data; }) .catch((err) => {}); }, diff --git a/src/views/admin/operation/mission/MissionOverview.vue b/src/views/admin/operation/mission/MissionOverview.vue index 479d372..2d4f635 100644 --- a/src/views/admin/operation/mission/MissionOverview.vue +++ b/src/views/admin/operation/mission/MissionOverview.vue @@ -123,12 +123,15 @@ export default defineComponent({ this.manageHash(); this.connectClient(); this.initialize(this.id); - this.getAvailableForces(); - this.getAvailableEquipments(); - this.getAvailableVehicles(); + this.fetchAvailability(); window.addEventListener("beforeunload", () => { localStorage.removeItem("yjsDoc_timestamp"); }); + this.yDoc.getMap("form").observe((event) => { + event.changes.keys.forEach((change, key) => { + if (key === "start") this.fetchAvailability(); + }); + }); }, beforeUnmount() { this.cleanup(); @@ -144,6 +147,11 @@ export default defineComponent({ this.$router.replace({ hash: this.tabs[0].hash }); } }, + fetchAvailability() { + this.getAvailableForces(this.id); + this.getAvailableEquipments(this.id); + this.getAvailableVehicles(this.id); + }, }, });