diff --git a/components/MapComponent.js b/components/MapComponent.js index 7e810b3a4..0b5c64b92 100644 --- a/components/MapComponent.js +++ b/components/MapComponent.js @@ -35,7 +35,7 @@ import circleIcon from "./gisPolylines/icons/CircleIcon.js"; import startIcon from "./gisPolylines/icons/StartIcon.js"; import endIcon from "./gisPolylines/icons/EndIcon.js"; import { fetchGisStatusStations, fetchPriorityConfig, fetchPoiData, updateLocationInDatabase, fetchUserRights, fetchDeviceNameById } from "../services/apiService.js"; -import { addContextMenuToMarker } from "../utils/contextMenuUtils.js"; +import { addContextMenuToMarker } from "../utils/addContextMenuToMarker.js"; import { MAP_VERSION } from "../config/settings.js"; import * as layers from "../config/layers.js"; import { zoomIn, zoomOut, centerHere } from "../utils/zoomAndCenterUtils.js"; diff --git a/components/imports.js b/components/imports.js index 5cb01e387..a81e36edb 100644 --- a/components/imports.js +++ b/components/imports.js @@ -35,7 +35,7 @@ import circleIcon from "./gisPolylines/icons/CircleIcon.js"; import startIcon from "./gisPolylines/icons/StartIcon.js"; import endIcon from "./gisPolylines/icons/EndIcon.js"; import { fetchGisStatusStations, fetchPriorityConfig, fetchPoiData, updateLocationInDatabase, fetchUserRights, fetchDeviceNameById } from "../services/apiService.js"; -import { addContextMenuToMarker } from "../utils/contextMenuUtils.js"; +import { addContextMenuToMarker } from "../utils/addContextMenuToMarker.js"; import { MAP_VERSION } from "../config/settings.js"; import * as layers from "../config/layers.js"; import { zoomIn, zoomOut, centerHere } from "../utils/zoomAndCenterUtils.js"; diff --git a/hooks/layers/useCiscoRouterMarkersLayer.js b/hooks/layers/useCiscoRouterMarkersLayer.js index 3822dfdbc..4e7abed3e 100644 --- a/hooks/layers/useCiscoRouterMarkersLayer.js +++ b/hooks/layers/useCiscoRouterMarkersLayer.js @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import L from "leaflet"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { checkOverlappingMarkers } from "../../utils/mapUtils"; const useCiscoRouterMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useDauzMarkersLayer.js b/hooks/layers/useDauzMarkersLayer.js index c4d35858f..bca14ccf3 100644 --- a/hooks/layers/useDauzMarkersLayer.js +++ b/hooks/layers/useDauzMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useDauzMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; const useDauzMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useEciMarkersLayer.js b/hooks/layers/useEciMarkersLayer.js index fe66ad0b1..0f24c43ab 100644 --- a/hooks/layers/useEciMarkersLayer.js +++ b/hooks/layers/useEciMarkersLayer.js @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import L from "leaflet"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { checkOverlappingMarkers } from "../../utils/mapUtils"; const useEciMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useGmaMarkersLayer.js b/hooks/layers/useGmaMarkersLayer.js index df6e0e00b..0615e0b66 100644 --- a/hooks/layers/useGmaMarkersLayer.js +++ b/hooks/layers/useGmaMarkersLayer.js @@ -1,6 +1,6 @@ // /hooks/layers/useGmaMarkersLayer.js import { useEffect } from "react"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; const useGmaMarkersLayer = (map, gmaMarkers, GisStationsMeasurements, GMA, oms) => { useEffect(() => { diff --git a/hooks/layers/useGsmModemMarkersLayer.js b/hooks/layers/useGsmModemMarkersLayer.js index 12ed1e745..8fd0260dc 100644 --- a/hooks/layers/useGsmModemMarkersLayer.js +++ b/hooks/layers/useGsmModemMarkersLayer.js @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import L from "leaflet"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { checkOverlappingMarkers } from "../../utils/mapUtils"; const useGsmModemMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useMessstellenMarkersLayer.js b/hooks/layers/useMessstellenMarkersLayer.js index 27c16dfca..8757cb888 100644 --- a/hooks/layers/useMessstellenMarkersLayer.js +++ b/hooks/layers/useMessstellenMarkersLayer.js @@ -1,7 +1,7 @@ // /hooks/layers/useMessstellenMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; const useMessstellenMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useOtdrMarkersLayer.js b/hooks/layers/useOtdrMarkersLayer.js index 5111abb58..ff8061655 100644 --- a/hooks/layers/useOtdrMarkersLayer.js +++ b/hooks/layers/useOtdrMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useOtdrMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; // Assuming this function is in poiUtils const useOtdrMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useSiemensMarkersLayer.js b/hooks/layers/useSiemensMarkersLayer.js index 95da3ef66..6d56ac03e 100644 --- a/hooks/layers/useSiemensMarkersLayer.js +++ b/hooks/layers/useSiemensMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useSiemensMarkersLayer.js import { useState, useEffect } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; import { checkOverlappingMarkers } from "../../utils/mapUtils"; diff --git a/hooks/layers/useSmsfunkmodemMarkersLayer.js b/hooks/layers/useSmsfunkmodemMarkersLayer.js index cc7aec7c5..4c5d182cc 100644 --- a/hooks/layers/useSmsfunkmodemMarkersLayer.js +++ b/hooks/layers/useSmsfunkmodemMarkersLayer.js @@ -2,7 +2,7 @@ import { useEffect, useState } from "react"; import L from "leaflet"; import "leaflet-contextmenu"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; const useSmsfunkmodemMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { const [smsfunkmodemMarkers, setSmsfunkmodemMarkers] = useState([]); diff --git a/hooks/layers/useSonstigeMarkersLayer.js b/hooks/layers/useSonstigeMarkersLayer.js index 543972c4b..58b871391 100644 --- a/hooks/layers/useSonstigeMarkersLayer.js +++ b/hooks/layers/useSonstigeMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useSonstigeMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; const useSonstigeMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useTalasMarkers.js b/hooks/layers/useTalasMarkers.js index b1299bf13..b16f94f84 100644 --- a/hooks/layers/useTalasMarkers.js +++ b/hooks/layers/useTalasMarkers.js @@ -6,7 +6,7 @@ import { useRecoilValue } from "recoil"; import { mapLayersState } from "../../store/atoms/mapLayersState.js"; import { selectedAreaState } from "../../store/atoms/selectedAreaState.js"; import { zoomTriggerState } from "../../store/atoms/zoomTriggerState.js"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils.js"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker.js"; import { checkOverlappingMarkers } from "../../utils/mapUtils.js"; import plusRoundIcon from "../../components/PlusRoundIcon.js"; import { gisStationsStaticDistrictState } from "../../store/atoms/gisStationState.js"; diff --git a/hooks/layers/useTalasMarkersLayer.js b/hooks/layers/useTalasMarkersLayer.js index e00ce81ce..c90bd6124 100644 --- a/hooks/layers/useTalasMarkersLayer.js +++ b/hooks/layers/useTalasMarkersLayer.js @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; const useTalasMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { const [talasMarkers, setTalasMarkers] = useState([]); diff --git a/hooks/layers/useTalasiclMarkersLayer.js b/hooks/layers/useTalasiclMarkersLayer.js index 6ac1a315e..78ef58e40 100644 --- a/hooks/layers/useTalasiclMarkersLayer.js +++ b/hooks/layers/useTalasiclMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useTalasiclMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; const useTalasiclMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useUlafMarkersLayer.js b/hooks/layers/useUlafMarkersLayer.js index 0499f0f4a..d4c5fd897 100644 --- a/hooks/layers/useUlafMarkersLayer.js +++ b/hooks/layers/useUlafMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useUlafMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; //import { fetchDeviceNameById } from "../services/apiService"; const useUlafMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/layers/useWagoMarkersLayer.js b/hooks/layers/useWagoMarkersLayer.js index 6c33c9a91..49e033ffe 100644 --- a/hooks/layers/useWagoMarkersLayer.js +++ b/hooks/layers/useWagoMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useWagoMarkersLayer.js import { useState, useEffect } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; import { checkOverlappingMarkers } from "../../utils/mapUtils"; diff --git a/hooks/layers/useWdmMarkersLayer.js b/hooks/layers/useWdmMarkersLayer.js index 362352cba..3393c2d0c 100644 --- a/hooks/layers/useWdmMarkersLayer.js +++ b/hooks/layers/useWdmMarkersLayer.js @@ -1,7 +1,7 @@ // hooks/useWdmMarkersLayer.js import { useEffect, useState } from "react"; import L from "leaflet"; -import { addContextMenuToMarker } from "../../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker"; import { createAndSetDevices } from "../../utils/createAndSetDevices"; const useWdmMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => { diff --git a/hooks/useLayerVisibility.js b/hooks/useLayerVisibility.js index 42046aea1..0f1f2236c 100644 --- a/hooks/useLayerVisibility.js +++ b/hooks/useLayerVisibility.js @@ -1,6 +1,6 @@ // hooks/useLayerVisibility.js import { useEffect } from "react"; -import { addContextMenuToMarker } from "../utils/contextMenuUtils"; +import { addContextMenuToMarker } from "../utils/addContextMenuToMarker"; const useLayerVisibility = (map, markers, mapLayersVisibility, layerKey, oms) => { useEffect(() => { diff --git a/utils/addContextMenuToMarker.js b/utils/addContextMenuToMarker.js new file mode 100644 index 000000000..160b905ba --- /dev/null +++ b/utils/addContextMenuToMarker.js @@ -0,0 +1,11 @@ +// /utils/addContextMenuToMarker.js + +export function addContextMenuToMarker(marker) { + marker.unbindContextMenu(); // Entferne das Kontextmenü, um Duplikate zu vermeiden + + marker.bindContextMenu({ + contextmenu: true, + contextmenuWidth: 140, + contextmenuItems: [], + }); +} diff --git a/utils/contextMenuUtils.js b/utils/contextMenuUtils.js deleted file mode 100644 index 1fa22a1c2..000000000 --- a/utils/contextMenuUtils.js +++ /dev/null @@ -1,40 +0,0 @@ -// contextMenuUtils.js -import { BASE_URL } from "../config/urls"; - -export function addContextMenuToMarker(marker) { - marker.unbindContextMenu(); // Entferne das Kontextmenü, um Duplikate zu vermeiden - - marker.bindContextMenu({ - contextmenu: true, - contextmenuWidth: 140, - contextmenuItems: [], - }); -} - -// Funktion zum Öffnen in einem neuen Tab -export function openInNewTab(e, target) { - const baseUrl = BASE_URL; - let idLD, idModul, link; - - if (target instanceof L.Polyline) { - idLD = target.options.idLD; - idModul = target.options.idModul; - if (idLD) { - link = `${baseUrl}cpl.aspx?id=${idLD}`; - if (idModul) { - //link += `&module=${idModul}`; - } - } else { - console.error("Keine gültige 'idLD' für die Linie gefunden."); - return; - } - } else if (target instanceof L.Marker && target.options.link) { - link = baseUrl + target.options.link; - } else { - console.error("Fehler: Ungültiges Ziel oder keine gültige 'link' Eigenschaft."); - return; - } - - // Öffne den Link in einem neuen Tab - window.open(link, "_blank"); -} diff --git a/utils/initializeMap.js b/utils/initializeMap.js index 925c2ad54..6ce126a56 100644 --- a/utils/initializeMap.js +++ b/utils/initializeMap.js @@ -5,7 +5,8 @@ import "leaflet/dist/leaflet.css"; import "leaflet-contextmenu/dist/leaflet.contextmenu.css"; import * as urls from "../config/urls.js"; import * as layers from "../config/layers.js"; -import { addContextMenuToMarker, openInNewTab } from "./contextMenuUtils.js"; +import { addContextMenuToMarker } from "./addContextMenuToMarker.js"; +import { openInNewTab } from "./openInNewTab.js"; import { disablePolylineEvents, enablePolylineEvents } from "./setupPolylines.js"; export const initializeMap = (mapRef, setMap, setOms, setMenuItemAdded, addItemsToMapContextMenu, hasRights, setPolylineEventsDisabled) => { diff --git a/utils/openInNewTab.js b/utils/openInNewTab.js new file mode 100644 index 000000000..1489634f5 --- /dev/null +++ b/utils/openInNewTab.js @@ -0,0 +1,24 @@ +// /utils/openInNewTab.js +import { BASE_URL } from "../config/urls"; + +export function openInNewTab(e, target) { + let link; + + if (target instanceof L.Polyline) { + const idLD = target.options.idLD; + if (idLD) { + link = `${BASE_URL}cpl.aspx?id=${idLD}`; + } else { + console.error("Keine gültige 'idLD' für die Linie gefunden."); + return; + } + } else if (target instanceof L.Marker && target.options.link) { + link = BASE_URL + target.options.link; + } else { + console.error("Fehler: Ungültiges Ziel oder keine gültige 'link' Eigenschaft."); + return; + } + + // Öffne den Link in einem neuen Tab + window.open(link, "_blank"); +} diff --git a/utils/setupPOIs.js b/utils/setupPOIs.js index 592d2edc2..104b114c3 100644 --- a/utils/setupPOIs.js +++ b/utils/setupPOIs.js @@ -8,7 +8,7 @@ import circleIcon from "../components/gisPolylines/icons/CircleIcon"; import startIcon from "../components/gisPolylines/icons/StartIcon"; import endIcon from "../components/gisPolylines/icons/EndIcon"; import { redrawPolyline } from "./mapUtils"; -import { openInNewTab } from "../utils/contextMenuUtils"; +import { openInNewTab } from "../utils/openInNewTab"; import { disablePolylineEvents, enablePolylineEvents } from "./setupPolylines"; // Importiere die Funktionen export const setupPOIs = async ( diff --git a/utils/setupPolylines.js b/utils/setupPolylines.js index 0b05ed5ca..ff23a2998 100644 --- a/utils/setupPolylines.js +++ b/utils/setupPolylines.js @@ -8,7 +8,7 @@ import circleIcon from "../components/gisPolylines/icons/CircleIcon"; import startIcon from "../components/gisPolylines/icons/StartIcon"; import endIcon from "../components/gisPolylines/icons/EndIcon"; import { redrawPolyline } from "./mapUtils"; -import { openInNewTab } from "./contextMenuUtils"; +import { openInNewTab } from "./openInNewTab"; // Funktion zum Deaktivieren der Polyline-Ereignisse export function disablePolylineEvents(polylines) {