import {ref} from "vue"; import {usePhotosStore} from "stores/Photo"; import {fetchFlight} from "src/composables/objects/flight"; import {usePointsOfInterestStore} from "stores/PointsOfInterest"; export const openBatchEdit = ref(false); export const editBatchPhotos = ref([]); export const openBatchPhotoForm = (photos) => { openBatchEdit.value = true; editBatchPhotos.value = photos; } export const handleBatchPhotoEdit = async (flightId, data) => { const photoIds = data.photoIds; delete data.photoIds; delete data.id; if (data.pointOfInterest && !data.pointOfInterest.id) { const poiData = { ...data.pointOfInterest, isPublic: false, description: "", } await usePointsOfInterestStore().create(poiData).then(poi => data.pointOfInterest = {id: poi.id, name: poi.name}); } const promises = []; for (const id of photoIds) { const updateData = {}; if (data.name !== '') updateData.name = data.name; if (data.description !== '') updateData.description = data.description; if (data.pointOfInterest) updateData.pointOfInterest = data.pointOfInterest; if (Object.keys(updateData).length === 0) continue; promises.push(usePhotosStore().update(id, updateData)); } Promise.all(promises).finally(() => fetchFlight(flightId)) }