feat: Umgebungsspezifisches Laden von Datenquellen implementiert

- Alle fetch-Services (TDM, TDR, analoge/digitale Eingänge/Ausgänge, SystemSettings usw.) angepasst,
  um `NEXT_PUBLIC_NODE_ENV` zu verwenden.
- Entwicklungsumgebung lädt Daten aus /CPLmockData/...
- Produktionsumgebung verwendet echte Endpunkte mit /CPL?/CPL/...
- .env.production und .env.development korrekt berücksichtigt
- loadWindowVariables, WindowVariablesInitializer und verwandte Dateien bereinigt
- Mockdaten erscheinen nicht mehr versehentlich in Produktionsumgebung
This commit is contained in:
ISA
2025-03-27 11:03:23 +01:00
parent 0bec3fb148
commit c55f0e7fe5
21 changed files with 170 additions and 104 deletions

View File

@@ -11,10 +11,13 @@ const WindowVariablesInitializer = () => {
useEffect(() => {
const loadScriptsAndInitialize = async () => {
try {
// Beispielhafter Ladevorgang eines Skripts
await loadScript("/CPLmockData/SERVICE/de.js");
const isDevelopment = window.location.hostname === "localhost";
const scriptPath = isDevelopment
? "/CPLmockData/SERVICE/de.js"
: "/CPL/SERVICE/de.js";
await loadScript(scriptPath);
// Zugriff auf window-Variablen nach dem Laden der Skripte
const winDeState = window.win_de_state || [];
const winDeLabel = window.win_de_label || [];
@@ -26,7 +29,6 @@ const WindowVariablesInitializer = () => {
})
);
// Dispatch der Aktion zum Setzen der Inputs
dispatch(setInputs(initialInputs));
} catch (error) {
console.error(

View File

@@ -3,13 +3,23 @@
import React, { useEffect, useRef, useMemo } from "react";
import { RootState } from "../../../../../../redux/store";
import { useSelector } from "react-redux";
import { useSelector, useDispatch } from "react-redux";
import { AppDispatch } from "../../../../../../redux/store";
import { Chart, registerables } from "chart.js";
import "chartjs-adapter-date-fns";
import { getColor } from "../../../../../../utils/colors";
import TDRChartActionBar from "./TDRChartActionBar";
import { fetchAllTDRChartData } from "../../../../../../redux/thunks/fetchAllTDRChartThunk";
import { fetchAllTDRReferenceChartThunk } from "../../../../../../redux/thunks/fetchAllTDRReferenceChartThunk";
const TDRChart: React.FC<{ isFullScreen: boolean }> = ({ isFullScreen }) => {
const dispatch = useDispatch<AppDispatch>();
useEffect(() => {
dispatch(fetchAllTDRChartData());
dispatch(fetchAllTDRReferenceChartThunk());
}, [dispatch]);
//---------------------------------
const chartRef = useRef<HTMLCanvasElement>(null);
const chartInstance = useRef<Chart | null>(null);
@@ -179,6 +189,8 @@ const TDRChart: React.FC<{ isFullScreen: boolean }> = ({ isFullScreen }) => {
}
});
}, [JSON.stringify(tdrChartData), selectedSlot, selectedChartType]);
return (
<div style={{ width: "100%", height: isFullScreen ? "90%" : "28rem" }}>
<TDRChartActionBar />

View File

@@ -2,7 +2,6 @@
import ReactModal from "react-modal";
import { useState, useEffect } from "react";
import { useSelector, useDispatch } from "react-redux";
import { setVariables } from "../../../../redux/slices/variablesSlice";
import "bootstrap-icons/font/bootstrap-icons.css"; // Import Bootstrap Icons
import handleSave, { OriginalValues } from "./handlers/handleSave";
import handleDisplayEinschalten from "./handlers/handleDisplayEinschalten";