feat: AlarmIcon nur bei GisStationsStatusDistrict Attribute Alarm :1

This commit is contained in:
ISA
2025-09-15 13:03:54 +02:00
parent 1a046f8212
commit 59c8680c23
7 changed files with 117 additions and 62 deletions

View File

@@ -23,4 +23,4 @@ NEXT_PUBLIC_USE_MOCKS=true
# z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen # z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.364 NEXT_PUBLIC_APP_VERSION=1.1.365

View File

@@ -24,4 +24,4 @@ NEXT_PUBLIC_USE_MOCKS=false
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.364 NEXT_PUBLIC_APP_VERSION=1.1.365

View File

@@ -1,7 +1,7 @@
const AlarmIcon = ({ className = "h-8 w-8" }) => ( const AlarmIcon = ({ className = "h-8 w-8" }) => (
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
fill="none" fill="red"
viewBox="0 0 24 24" viewBox="0 0 24 24"
strokeWidth="1.5" strokeWidth="1.5"
stroke="rgb(0, 174, 239)" stroke="rgb(0, 174, 239)"
@@ -10,7 +10,7 @@ const AlarmIcon = ({ className = "h-8 w-8" }) => (
<path <path
strokeLinecap="round" strokeLinecap="round"
strokeLinejoin="round" strokeLinejoin="round"
d="M14.857 17.082a23.848 23.848 0 005.454-1.31A8.967 8.967 0 0118 9.75v-.7V9A6 6 0 006 9v.75a8.967 8.967 0 01-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 01-5.714 0m5.714 0a3 3 0 11-5.714 0" d="M6 6.9L3.87 4.78l1.41-1.41L7.4 5.5zM13 1v3h-2V1zm7.13 3.78L18 6.9l-1.4-1.4l2.12-2.13zM4.5 10.5v2h-3v-2zm15 0h3v2h-3zM6 20h12a2 2 0 0 1 2 2H4a2 2 0 0 1 2-2m6-15a6 6 0 0 1 6 6v8H6v-8a6 6 0 0 1 6-6"
/> />
</svg> </svg>
); );

View File

@@ -139,6 +139,13 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
const { data: gisLinesStatusData, status: statusGisLinesStatus } = useSelector( const { data: gisLinesStatusData, status: statusGisLinesStatus } = useSelector(
selectGisLinesStatusFromWebservice selectGisLinesStatusFromWebservice
); );
// Alarm Status aus GisStationsStatusDistrict
const gisStationsStatusDistrict = useSelector(state => state.gisStationsStatusDistrict.data);
// Unterstützt sowohl Array-Shape (Statis[]) als auch Objekt mit Statis-Array
const hasActiveAlarm = Array.isArray(gisStationsStatusDistrict)
? gisStationsStatusDistrict.some(item => item?.Alarm === 1)
: gisStationsStatusDistrict?.Statis?.some(item => item?.Alarm === 1) || false;
const poiIconsData = useSelector(selectPoiIconsData); const poiIconsData = useSelector(selectPoiIconsData);
const poiIconsStatus = useSelector(selectPoiIconsStatus); const poiIconsStatus = useSelector(selectPoiIconsStatus);
const poiTypData = useSelector(selectPoiTypData); const poiTypData = useSelector(selectPoiTypData);
@@ -1137,15 +1144,17 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
<div id="map" ref={mapRef} className="z-0" style={{ height: "100vh", width: "100vw" }}></div> <div id="map" ref={mapRef} className="z-0" style={{ height: "100vh", width: "100vw" }}></div>
{/* Top-right controls: layers, info, expand, edit, and base map stack */} {/* Top-right controls: layers, info, expand, edit, and base map stack */}
<div className="absolute top-3 right-3 z-50 pointer-events-auto flex items-center gap-2"> <div className="absolute top-3 right-3 z-50 pointer-events-auto flex items-center gap-2">
{/* Alarm-Icon (mdi) */} {/* Alarm-Icon - nur anzeigen wenn Alarm aktiv */}
<button {hasActiveAlarm && (
onClick={() => {}} <button
aria-label="Alarm" onClick={() => {}}
className="rounded-full bg-white/90 hover:bg-white shadow p-1" aria-label="Alarm aktiv"
title="Alarm" className="rounded-full bg-white/90 hover:bg-white shadow p-1"
> title="Alarm aktiv"
<AlarmIcon className="h-8 w-8" /> >
</button> <AlarmIcon className="h-8 w-8 animate-pulse text-red-500" />
</button>
)}
{/* Marker-Icon (line-md) */} {/* Marker-Icon (line-md) */}
<button <button
onClick={() => {}} onClick={() => {}}

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.364", "version": "1.1.365",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "nodemap", "name": "nodemap",
"version": "1.1.364", "version": "1.1.365",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.364", "version": "1.1.365",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -6,7 +6,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 01 kommend", "Me": "Eingang DE 01 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -15,7 +16,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 31 kommend", "Me": "Eingang DE 31 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -24,7 +26,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 17 kommend", "Me": "Eingang DE 17 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -33,7 +36,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 05 kommend", "Me": "Eingang DE 05 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50984, "IdLD": 50984,
@@ -42,7 +46,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 20 kommend", "Me": "Eingang DE 20 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -51,7 +56,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 32 kommend", "Me": "Eingang DE 32 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50984, "IdLD": 50984,
@@ -60,7 +66,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 01 kommend", "Me": "Eingang DE 01 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50977, "IdLD": 50977,
@@ -69,7 +76,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Station offline", "Me": "Station offline",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50977, "IdLD": 50977,
@@ -78,7 +86,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 01 kommend", "Me": "Eingang DE 01 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -87,7 +96,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Station offline", "Me": "Station offline",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50066, "IdLD": 50066,
@@ -96,7 +106,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "CPL offline", "Me": "CPL offline",
"Feld": 5, "Feld": 5,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50011, "IdLD": 50011,
@@ -105,7 +116,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "CPL offline", "Me": "CPL offline",
"Feld": 16, "Feld": 16,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50011, "IdLD": 50011,
@@ -114,7 +126,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Wasserdruck aus", "Me": "Wasserdruck aus",
"Feld": 16, "Feld": 16,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50011, "IdLD": 50011,
@@ -123,7 +136,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Ein", "Me": "Ein",
"Feld": 16, "Feld": 16,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50011, "IdLD": 50011,
@@ -132,7 +146,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Digitaleingang 1 ON", "Me": "Digitaleingang 1 ON",
"Feld": 16, "Feld": 16,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50000, "IdLD": 50000,
@@ -141,7 +156,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Ein", "Me": "Ein",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -150,7 +166,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Station offline", "Me": "Station offline",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -159,7 +176,8 @@
"Co": "#FF00FF", "Co": "#FF00FF",
"Me": "Eingang DE 32 kommend", "Me": "Eingang DE 32 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -168,7 +186,8 @@
"Co": "#FFFF00", "Co": "#FFFF00",
"Me": "KÜG 07: Überspannung kommend", "Me": "KÜG 07: Überspannung kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -177,7 +196,8 @@
"Co": "#FFFF00", "Co": "#FFFF00",
"Me": "KÜG 08: Überspannung gehend", "Me": "KÜG 08: Überspannung gehend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50977, "IdLD": 50977,
@@ -186,7 +206,8 @@
"Co": "#FFFF00", "Co": "#FFFF00",
"Me": "KÜG 08: Überspannung gehend", "Me": "KÜG 08: Überspannung gehend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50984, "IdLD": 50984,
@@ -195,7 +216,8 @@
"Co": "#FFFF00", "Co": "#FFFF00",
"Me": "KÜG 08: Überspannung gehend", "Me": "KÜG 08: Überspannung gehend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -204,7 +226,8 @@
"Co": "#FFFF00", "Co": "#FFFF00",
"Me": "Eingang DE 02 kommend", "Me": "Eingang DE 02 kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -213,7 +236,8 @@
"Co": "#FFFF00", "Co": "#FFFF00",
"Me": "KÜG 08: Überspannung gehend", "Me": "KÜG 08: Überspannung gehend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -222,7 +246,8 @@
"Co": "#FF9900", "Co": "#FF9900",
"Me": "Eingang DE 03 Test Karte kommend", "Me": "Eingang DE 03 Test Karte kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -231,7 +256,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 01: Aderbruch kommend", "Me": "KÜG 01: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -240,7 +266,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 02: Aderbruch kommend", "Me": "KÜG 02: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50922, "IdLD": 50922,
@@ -249,7 +276,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 03: Aderbruch kommend", "Me": "KÜG 03: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50000, "IdLD": 50000,
@@ -258,7 +286,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "über 8V kommend", "Me": "über 8V kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50984, "IdLD": 50984,
@@ -267,7 +296,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 05: Aderbruch kommend", "Me": "KÜG 05: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50984, "IdLD": 50984,
@@ -276,7 +306,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 02: Isolationsminderung kommend", "Me": "KÜG 02: Isolationsminderung kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50984, "IdLD": 50984,
@@ -285,7 +316,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 06: Aderbruch kommend", "Me": "KÜG 06: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50977, "IdLD": 50977,
@@ -294,7 +326,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 01: Isolationsminderung kommend", "Me": "KÜG 01: Isolationsminderung kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50977, "IdLD": 50977,
@@ -303,7 +336,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 06: Aderbruch kommend", "Me": "KÜG 06: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50977, "IdLD": 50977,
@@ -312,7 +346,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 05: Aderbruch kommend", "Me": "KÜG 05: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50976, "IdLD": 50976,
@@ -321,7 +356,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "CPL offline", "Me": "CPL offline",
"Feld": 3, "Feld": 3,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50976, "IdLD": 50976,
@@ -330,7 +366,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 03: Isolationsminderung kommend", "Me": "KÜG 03: Isolationsminderung kommend",
"Feld": 3, "Feld": 3,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -339,7 +376,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 04: Isolationsminderung kommend", "Me": "KÜG 04: Isolationsminderung kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -348,7 +386,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 02: Isolationsminderung kommend", "Me": "KÜG 02: Isolationsminderung kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -357,7 +396,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 01: Isolationsminderung kommend", "Me": "KÜG 01: Isolationsminderung kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50001, "IdLD": 50001,
@@ -366,7 +406,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "Sammelstörung kommend", "Me": "Sammelstörung kommend",
"Feld": 5, "Feld": 5,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -375,7 +416,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 06: Aderbruch kommend", "Me": "KÜG 06: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50975, "IdLD": 50975,
@@ -384,7 +426,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "KÜG 05: Aderbruch kommend", "Me": "KÜG 05: Aderbruch kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50963, "IdLD": 50963,
@@ -393,7 +436,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "CPL offline", "Me": "CPL offline",
"Feld": 3, "Feld": 3,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50063, "IdLD": 50063,
@@ -402,7 +446,8 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "Digitaleingang 1 EIN", "Me": "Digitaleingang 1 EIN",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
}, },
{ {
"IdLD": 50000, "IdLD": 50000,
@@ -411,6 +456,7 @@
"Co": "#FF0000", "Co": "#FF0000",
"Me": "über 10V kommend", "Me": "über 10V kommend",
"Feld": 4, "Feld": 4,
"Icon": 0 "Icon": 0,
"Alarm": 0
} }
] ]