diff --git a/CHANGELOG.md b/CHANGELOG.md
index 24374e0aa..6a472fab2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,31 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie
---
+[1.1.176] – 2025-05-26
+🐞 Fixed
+Problem behoben, dass das Modal „POI hinzufügen“ nach erfolgreichem Submit nicht geschlossen wurde und die Meldung „Wird hinzugefügt…“ dauerhaft sichtbar blieb.
+
+Ursache: Die Service-Datei addPoiService.js verwendete die falsche URL /addLocation statt /addPoi.
+
+Die unwrap()-Verwendung im AddPOIModal.js wurde beibehalten und korrekt abgeschlossen.
+
+✅ Clean
+resetAddPoiStatus() wird jetzt direkt nach onClose() dispatcht, um Status in Redux auf idle zurückzusetzen.
+
+Ladeindikator „Wird hinzugefügt...“ wird zuverlässig entfernt.
+
+Fehleranzeige funktioniert weiterhin über Redux (status === "failed" und error).
+
+🧠 Architektur
+Vollständige Redux-Anbindung des Modals über addPoiSlice, addPoiThunk, addPoiService und addPoi.js.
+
+Thunk-Erfolg löst incrementTrigger() aus und synchronisiert die Marker auf der Karte durch erneutes Laden via fetchPoiMarkersThunk().
+
+🔧 Version
+📦 Version erhöht auf 1.1.176
+
+---
+
[1.1.174] – 2025-05-26
♻️ Refactor
useDrawLines.js vollständig auf Redux umgestellt:
diff --git a/README.md b/README.md
index 6fd9d3c24..a7170d2c3 100644
--- a/README.md
+++ b/README.md
@@ -116,13 +116,24 @@ redux/ → globale Zustände (Slices)
📦redux
┣ 📂slices
┃ ┣ 📂database
- ┃ ┃ ┣ 📜addPoiSlice.js
- ┃ ┃ ┣ 📜gisLinesSlice.js
+ ┃ ┃ ┣ 📂pois
+ ┃ ┃ ┃ ┣ 📜addPoiOnPolylineSlice.js
+ ┃ ┃ ┃ ┣ 📜addPoiSlice.js
+ ┃ ┃ ┃ ┣ 📜currentPoiSlice.js
+ ┃ ┃ ┃ ┣ 📜poiIconsDataSlice.js
+ ┃ ┃ ┃ ┣ 📜poiLayerVisibleSlice.js
+ ┃ ┃ ┃ ┣ 📜poiReadFromDbTriggerSlice.js
+ ┃ ┃ ┃ ┣ 📜poiTypesSlice.js
+ ┃ ┃ ┃ ┣ 📜poiTypSlice.js
+ ┃ ┃ ┃ ┣ 📜readPoiMarkersStoreSlice.js
+ ┃ ┃ ┃ ┗ 📜selectedPoiSlice.js
+ ┃ ┃ ┣ 📂polylines
+ ┃ ┃ ┃ ┣ 📜gisLinesSlice.js
+ ┃ ┃ ┃ ┣ 📜polylineContextMenuSlice.js
+ ┃ ┃ ┃ ┣ 📜polylineEventsDisabledSlice.js
+ ┃ ┃ ┃ ┗ 📜polylineLayerVisibleSlice.js
┃ ┃ ┣ 📜locationDevicesFromDBSlice.js
┃ ┃ ┣ 📜locationDevicesSlice.js
- ┃ ┃ ┣ 📜poiIconsDataSlice.js
- ┃ ┃ ┣ 📜poiTypesSlice.js
- ┃ ┃ ┣ 📜poiTypSlice.js
┃ ┃ ┗ 📜priorityConfigSlice.js
┃ ┣ 📂webservice
┃ ┃ ┣ 📜gisLinesStatusSlice.js
@@ -131,29 +142,25 @@ redux/ → globale Zustände (Slices)
┃ ┃ ┣ 📜gisStationsStatusDistrictSlice.js
┃ ┃ ┣ 📜gisSystemStaticSlice.js
┃ ┃ ┗ 📜userRightsSlice.js
- ┃ ┣ 📜addPoiOnPolylineSlice.js
- ┃ ┣ 📜currentPoiSlice.js
┃ ┣ 📜lineVisibilitySlice.js
┃ ┣ 📜mapLayersSlice.js
- ┃ ┣ 📜poiLayerVisibleSlice.js
- ┃ ┣ 📜poiReadFromDbTriggerSlice.js
- ┃ ┣ 📜polylineContextMenuSlice.js
- ┃ ┣ 📜polylineEventsDisabledSlice.js
- ┃ ┣ 📜polylineLayerVisibleSlice.js
- ┃ ┣ 📜readPoiMarkersStoreSlice.js
┃ ┣ 📜selectedAreaSlice.js
┃ ┣ 📜selectedDeviceSlice.js
- ┃ ┣ 📜selectedPoiSlice.js
┃ ┣ 📜urlParameterSlice.js
┃ ┗ 📜zoomTriggerSlice.js
┣ 📂thunks
┃ ┣ 📂database
- ┃ ┃ ┣ 📜addPoiThunk.js
- ┃ ┃ ┣ 📜fetchGisLinesThunk.js
+ ┃ ┃ ┣ 📂pois
+ ┃ ┃ ┃ ┣ 📜addPoiThunk.js
+ ┃ ┃ ┃ ┣ 📜deletePoiThunk.js
+ ┃ ┃ ┃ ┣ 📜fetchPoiIconsDataThunk.js
+ ┃ ┃ ┃ ┣ 📜fetchPoiTypThunk.js
+ ┃ ┃ ┃ ┗ 📜updatePoiThunk.js
+ ┃ ┃ ┣ 📂polylines
+ ┃ ┃ ┃ ┗ 📜fetchGisLinesThunk.js
┃ ┃ ┣ 📜fetchLocationDevicesThunk.js
- ┃ ┃ ┣ 📜fetchPoiIconsDataThunk.js
- ┃ ┃ ┣ 📜fetchPoiTypThunk.js
- ┃ ┃ ┗ 📜fetchPriorityConfigThunk.js
+ ┃ ┃ ┣ 📜fetchPriorityConfigThunk.js
+ ┃ ┃ ┗ 📜getDeviceIdByNameThunk.js
┃ ┗ 📂webservice
┃ ┃ ┣ 📜fetchGisLinesStatusThunk.js
┃ ┃ ┣ 📜fetchGisStationsMeasurementsThunk.js
@@ -166,15 +173,20 @@ redux/ → globale Zustände (Slices)
services/ → API-Kommunikation, Mock-Logik
📦services
┣ 📂database
- ┃ ┣ 📜addPoiService.js
+ ┃ ┣ 📂pois
+ ┃ ┃ ┣ 📜addPoiService.js
+ ┃ ┃ ┣ 📜deletePoiService.js
+ ┃ ┃ ┣ 📜fetchPoiDataByIdService.js
+ ┃ ┃ ┣ 📜fetchPoiDataService.js
+ ┃ ┃ ┣ 📜fetchPoiIconsDataService.js
+ ┃ ┃ ┣ 📜fetchPoiTypService.js
+ ┃ ┃ ┗ 📜updatePoiService.js
+ ┃ ┣ 📂polylines
+ ┃ ┃ ┗ 📜fetchGisLinesService.js
┃ ┣ 📜fetchDeviceNameByIdService.js
- ┃ ┣ 📜fetchGisLinesService.js
┃ ┣ 📜fetchLocationDevicesService.js
- ┃ ┣ 📜fetchPoiDataByIdService.js
- ┃ ┣ 📜fetchPoiDataService.js
- ┃ ┣ 📜fetchPoiIconsDataService.js
- ┃ ┣ 📜fetchPoiTypService.js
┃ ┣ 📜fetchPriorityConfigService.js
+ ┃ ┣ 📜getDeviceIdByNameService.js
┃ ┗ 📜updateLocationInDatabaseService.js
┣ 📂utils
┃ ┗ 📜fetchWithTimeout.js
diff --git a/components/pois/AddPOIModal.js b/components/pois/AddPOIModal.js
index c75bc78be..a21f9f52e 100644
--- a/components/pois/AddPOIModal.js
+++ b/components/pois/AddPOIModal.js
@@ -5,6 +5,7 @@ import { selectGisStationsStaticDistrict } from "../../redux/slices/webservice/g
import { fetchPoiTypes } from "../../redux/slices/database/pois/poiTypesSlice";
import { incrementTrigger } from "../../redux/slices/database/pois/poiReadFromDbTriggerSlice";
import { addPoiThunk } from "../../redux/thunks/database/pois/addPoiThunk";
+import { resetAddPoiStatus } from "../../redux/slices/database/pois/addPoiSlice";
import { fetchPoiIconsDataThunk } from "../../redux/thunks/database/pois/fetchPoiIconsDataThunk";
const AddPOIModal = ({ onClose, map, latlng }) => {
@@ -54,9 +55,10 @@ const AddPOIModal = ({ onClose, map, latlng }) => {
try {
await dispatch(addPoiThunk(formData)).unwrap();
dispatch(incrementTrigger());
+ dispatch(resetAddPoiStatus()); // ✅ Status zurücksetzen
onClose();
- // Icons im Hintergrund nachladen (nicht blockierend)
+ // Icons im Hintergrund nachladen
setTimeout(() => {
dispatch(fetchPoiIconsDataThunk());
}, 100);
@@ -123,7 +125,7 @@ const AddPOIModal = ({ onClose, map, latlng }) => {
{status === "loading" &&
Wird hinzugefügt...
}
- {status === "failed" && error && Fehler: {error}
}
+ {status === "failed" && error && ❌ Fehler: {error}
}