diff --git a/app/pages/admin/areas.vue b/app/pages/admin/areas.vue index 1c06839..971f502 100644 --- a/app/pages/admin/areas.vue +++ b/app/pages/admin/areas.vue @@ -21,6 +21,7 @@ const formData = reactive({ }) const jsonError = ref('') const actionError = ref('') +const modalError = ref('') const deletingAreaId = ref(null) const areaPendingDelete = ref(null) @@ -121,13 +122,15 @@ const renderExistingAreasInModal = (L: any, currentMap: any) => { }, interactive: false }).addTo(currentMap) - } catch(e) {} + } catch (e) { + } } }) } const openCreateModal = () => { actionError.value = '' + modalError.value = '' editingAreaId.value = null formData.name = '' formData.description = '' @@ -171,6 +174,7 @@ const openCreateModal = () => { } jsonError.value = '' + modalError.value = '' mapPoints.value.push([e.latlng.lat, e.latlng.lng]) polygon.setLatLngs(mapPoints.value) updateGeojson() @@ -197,6 +201,7 @@ const loadPolygonFromGeoJson = (boundaryGeojson: any) => { const openEditModal = (area: any) => { actionError.value = '' + modalError.value = '' editingAreaId.value = area.id formData.name = area.name || '' formData.description = area.description || '' @@ -250,6 +255,7 @@ const openEditModal = (area: any) => { } jsonError.value = '' + modalError.value = '' mapPoints.value.push([e.latlng.lat, e.latlng.lng]) polygon.setLatLngs(mapPoints.value) updateGeojson() @@ -263,6 +269,7 @@ const clearMap = () => { polygon.setLatLngs([]) } formData.geojson = '' + modalError.value = '' } const updateGeojson = () => { @@ -270,7 +277,7 @@ const updateGeojson = () => { formData.geojson = '' return } - const coords = mapPoints.value.map(p => [p[1], p[0]] as [number, number]) // Lng, Lat + const coords = mapPoints.value.map(p => [p[1], p[0]] as [number, number]) if (coords[0]) { coords.push([...coords[0]]) } @@ -297,6 +304,7 @@ onBeforeUnmount(() => { const handleCreate = async () => { jsonError.value = '' + modalError.value = '' let parsedGeojson = null try { @@ -331,9 +339,16 @@ const handleCreate = async () => { closeCreateModal() actionError.value = '' } - } catch (err) { + } catch (err: any) { console.error('Failed to save area', err) - actionError.value = 'Errore durante il salvataggio dell\'area.' + + const backendError = err?.data?.error || err?.response?.data?.error || err?.response?._data?.error; + + if (backendError === 'area_outside_allowed_boundary') { + modalError.value = "Attenzione: l'area disegnata esce dai confini consentiti per il Comune di Bari."; + } else { + modalError.value = err?.data?.message || err?.message || "Errore durante il salvataggio dell'area."; + } } } @@ -379,7 +394,7 @@ const handleDeleteArea = async () => {
Torna al pannello admin
@@ -441,7 +456,8 @@ const handleDeleteArea = async () => { - +