// /utils/utils.js import { useState } from "react"; import circleIcon from "../components/CircleIcon"; export const parsePoint = (position) => { const [longitude, latitude] = position.slice(6, -1).split(" "); return { latitude: parseFloat(latitude), longitude: parseFloat(longitude) }; }; //---------------------------------------------- export const determinePriority = (iconPath) => { const [priorityConfig, setPriorityConfig] = useState([]); for (let priority of priorityConfig) { if (iconPath.includes(priority.name.toLowerCase())) { return priority.level; } } return 5; // Default priority (lowest) }; //---------------------------------------------- //---------------------------------------------- export const fetchPriorityConfig = async () => { try { const response = await fetch("/api/talas_v5_DB/priorityConfig"); const data = await response.json(); console.log("Prioritätskonfiguration:", data); setPriorityConfig(data); } catch (error) { console.error("Fehler beim Laden der Prioritätskonfiguration:", error); } }; //---------------------------------------------- export const fetchGisStatusStations = async (idMap, idUser) => { try { const response = await fetch(`/api/talas5/webserviceMap/GisStationsStatusDistrict?idMap=${idMap}&idUser=${idUser}`); if (!response.ok) { throw new Error(`Error: ${response.statusText}`); } const data = await response.json(); console.log("GisStatusStations:", data); return data; } catch (error) { console.error("Fehler beim Abrufen der Daten in utils/utils.js :", error); } }; //---------------------------------------------- export const handleEditPoi = (marker) => { // Prüfung, ob der Benutzer die notwendigen Rechte hat if (!userRights || !userRights.includes(56)) { toast.error("Benutzer hat keine Berechtigung zum Bearbeiten.", { position: "top-center", autoClose: 5000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); console.log("Benutzer hat keine Berechtigung zum Bearbeiten."); return; // Beendet die Funktion frühzeitig, wenn keine Berechtigung vorliegt } //console.log("Selected Marker ID (idPoi):", marker.options.idPoi); //console.log("Selected Marker Description:", marker.options.description); setCurrentPoiData({ idPoi: marker.options.id, name: marker.options.name, description: marker.options.description, }); //console.log("POI-Daten1:", currentPoiData); fetchPoiData(marker.options.id); setShowPoiUpdateModal(true); }; //---------------------------------------------- export const insertNewMarker = (closestPoints, newPoint, lineData, map) => { const newMarker = L.marker(newPoint, { icon: circleIcon, draggable: true, }).addTo(map); lineData.coordinates.splice(closestPoints[2], 0, [newPoint.lat, newPoint.lng]); // Hier direkt speichern nach Einfügen saveLineData(lineData); redrawPolyline(lineData); // Event-Listener für das Verschieben des Markers hinzufügen newMarker.on("dragend", () => { const newCoords = newMarker.getLatLng(); setNewCoords(newCoords); const newCoordinates = [...lineData.coordinates]; newCoordinates[closestPoints[2]] = [newCoords.lat, newCoords.lng]; lineData.coordinates = newCoordinates; redrawPolyline(lineData); updateMarkerPosition(newMarker.getLatLng(), lineData, newMarker); saveLineData(lineData); // Speichern der neuen Koordinaten nach dem Verschieben }); }; //---------------------------------------------- /* export const addItemsToMapContextMenu = () => { const [menuItemAdded, setMenuItemAdded] = useState(false); if (!menuItemAdded) { //console.log("contextMenuItems hasRights:", hasRights); map.contextmenu.addItem({ text: "POI hinzufügen", icon: "img/add_station.png", className: "background-red", callback: (event) => addStationCallback(event, hasRights), }); setMenuItemAdded(true); // Menüpunkt wurde hinzugefült, Zustand aktualisieren } }; */ //---------------------------------------------- export const saveLineData = (lineData) => { fetch("/api/talas_v5_DB/gisLines/updateLineCoordinates", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ idModul: lineData.idModul, idLD: lineData.idLD, newCoordinates: lineData.coordinates, }), }) .then((response) => { if (!response.ok) { throw new Error("Fehler beim Speichern der Linienänderungen"); } return response.json(); }) .then((data) => { console.log("Linienänderungen gespeichert:", data); }) .catch((error) => { console.error("Fehler beim Speichern der Linienänderungen:", error); }); }; //----------------------------------------------