From b6a946660a016b19555657831c6db91d7bda85b6 Mon Sep 17 00:00:00 2001 From: ISA Date: Fri, 6 Jun 2025 14:10:40 +0200 Subject: [PATCH] feat: EditModeToggle zeigt deaktiviertes Icon bei fehlender Bearbeitungsberechtigung (Right 56) --- CHANGELOG.md | 20 +++++++++ README.md | 3 ++ .../mapLayersControlPanel/EditModeToggle.js | 45 ++++++++++++++----- config/appVersion.js | 2 +- 4 files changed, 58 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27370c300..e386db8a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,26 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie --- +## [1.1.240] – 2025-06-06 + +### ✨ UI-Verbesserung + +- Das Icon für den Bearbeitungsmodus (`EditModeToggle`) wird nun bei fehlender Berechtigung + (Recht-ID 56 nicht vorhanden) ausgegraut dargestellt. +- Tooltip erscheint bei Mouseover mit dem Hinweis: **„Keine Bearbeitungsrechte“** +- Kein Klick möglich – `pointerEvents: none`, bei gleichzeitig sichtbarem Icon für besseres UX + +### ♻️ Refactor + +- `EditModeToggle.js` vollständig angepasst zur dynamischen Rechteprüfung über + `gisUserRightsFromWebservice` Redux Slice. + +### 🔧 Version + +- 📦 `appVersion.js` auf Version **1.1.240** erhöht + +--- + ## [1.1.238] – 2025-06-06 ### ♻️ Refactor diff --git a/README.md b/README.md index 6c369cbc1..abd6650d9 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,9 @@ umgesetzt. entsprechend 4. API-Endpunkte kommunizieren lokal mit Datenbankserver (MySQL) 5. Interaktive Bearbeitung (POI hinzufügen, verschieben, löschen) ist möglich + - Die Bearbeitungsfunktionen (POI hinzufügen, bearbeiten) sind nur aktiv, wenn der Nutzer das + entsprechende Recht (ID 56) besitzt. + - Ist dies nicht der Fall, erscheint das Bearbeitungs-Icon ausgegraut mit Tooltip. --- diff --git a/components/uiWidgets/mapLayersControlPanel/EditModeToggle.js b/components/uiWidgets/mapLayersControlPanel/EditModeToggle.js index f8adcb5c2..100630b35 100644 --- a/components/uiWidgets/mapLayersControlPanel/EditModeToggle.js +++ b/components/uiWidgets/mapLayersControlPanel/EditModeToggle.js @@ -3,8 +3,15 @@ import React, { useState, useEffect } from "react"; import EditOffIcon from "@mui/icons-material/EditOff"; import ModeEditIcon from "@mui/icons-material/ModeEdit"; import Tooltip from "@mui/material/Tooltip"; // Importiere Tooltip von Material-UI +import { useSelector } from "react-redux"; +import { selectGisUserRightsFromWebservice } from "@/redux/slices/webservice/userRightsSlice"; +import BlockIcon from "@mui/icons-material/Block"; // 🚫 Symbol function EditModeToggle() { + const rights = useSelector(selectGisUserRightsFromWebservice); + const hasEditRight = rights.some(r => r.IdRight === 56); + const [isHovered, setIsHovered] = useState(false); + const [editMode, setEditMode] = useState(() => localStorage.getItem("editMode") === "true"); const toggleEditMode = () => { @@ -21,17 +28,33 @@ function EditModeToggle() { }, []); return ( -
- {editMode ? ( - - - - ) : ( - - - - )} -
+ +
+
+ {editMode ? : } +
+
+
); } diff --git a/config/appVersion.js b/config/appVersion.js index b3666b858..ef170b088 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.240"; +export const APP_VERSION = "1.1.241";