feat(AnalogInputsChart): Zeitraum im DatePicker und Redux initialisieren und synchronisieren

- Initialwert für Zeitraum (letzte 30 Tage) im Redux-Store gesetzt
- DatePicker-Änderungen werden im Redux gespeichert
- Fetch-Button verwendet Zeitraum aus Redux und loggt die Fetch-URL
- Chart zeigt Daten entsprechend ausgewähltem Zeitraum
This commit is contained in:
ISA
2025-07-21 15:20:04 +02:00
parent 697cae9848
commit 03ee4fb08e
6 changed files with 40 additions and 16 deletions

View File

@@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false
NEXT_PUBLIC_EXPORT_STATIC=false
NEXT_PUBLIC_USE_CGI=false
# App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.617
NEXT_PUBLIC_APP_VERSION=1.6.618
NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter)

View File

@@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL
NEXT_PUBLIC_EXPORT_STATIC=true
NEXT_PUBLIC_USE_CGI=true
# App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.617
NEXT_PUBLIC_APP_VERSION=1.6.618
NEXT_PUBLIC_CPL_MODE=production

View File

@@ -1,3 +1,8 @@
## [1.6.618] 2025-07-21
- feat(mock): Script fetchAnalogInputsData auf ES-Module (.mjs) umgestellt, Datum automatisch gesetzt
---
## [1.6.617] 2025-07-21
- feat(service): CPL-Request verwendet DIA0, DIA1 oder DIA2 je nach Zeitraum für analoge Eingänge

View File

@@ -74,17 +74,37 @@ export default function AnalogInputsChart() {
setLocalZeitraum(zeitraum);
}, [zeitraum]);
// Initialisiere Zeitraum im Redux-Store, falls leer
const vonDatumRedux = useSelector(
(state: RootState) => state.dateRangePicker.vonDatum
);
const bisDatumRedux = useSelector(
(state: RootState) => state.dateRangePicker.bisDatum
);
useEffect(() => {
if (!vonDatumRedux || !bisDatumRedux) {
const today = new Date();
const toDate = today.toISOString().slice(0, 10);
const fromDateObj = new Date(today);
fromDateObj.setDate(today.getDate() - 30);
const fromDate = fromDateObj.toISOString().slice(0, 10);
dispatch(setVonDatum(fromDate));
dispatch(setBisDatum(toDate));
}
}, [vonDatumRedux, bisDatumRedux, dispatch]);
// ✅ Button-Klick → Fetch auslösen
const handleFetchData = () => {
if (!selectedAnalogInput?.id) return;
// Sicherstellen, dass die neuesten Werte aus dem DateRangePicker verwendet werden
const latestVonDatum = vonDatum || new Date().toISOString().slice(0, 10);
const latestBisDatum = bisDatum || new Date().toISOString().slice(0, 10);
// Zeitauswahl ins Redux übernehmen
// Zeitraum aus Redux holen
const latestVonDatum =
vonDatumRedux || new Date().toISOString().slice(0, 10);
const latestBisDatum =
bisDatumRedux || new Date().toISOString().slice(0, 10);
dispatch(setZeitraum(localZeitraum));
// Debug: Fetch-URL loggen
const debugUrl = `/api/cpl/getAnalogInputsHistory?eingang=${selectedAnalogInput.id}&zeitraum=${localZeitraum}&von=${latestVonDatum}&bis=${latestBisDatum}`;
console.log("Fetch-URL:", debugUrl);
dispatch(
getAnalogInputsHistoryThunk({
eingang: selectedAnalogInput.id,
@@ -146,9 +166,8 @@ export default function AnalogInputsChart() {
// ✅ Zeitbereich anwenden (nur Anzeige gefiltert)
const filteredData = inputData.filter((point) => {
const date = new Date(point.t);
const from = vonDatum ? new Date(vonDatum) : null;
const to = bisDatum ? new Date(bisDatum) : null;
const from = vonDatumRedux ? new Date(vonDatumRedux) : null;
const to = bisDatumRedux ? new Date(bisDatumRedux) : null;
return (!from || date >= from) && (!to || date <= to);
});
useEffect(() => {
@@ -327,7 +346,7 @@ export default function AnalogInputsChart() {
},
},
};
// DateRangePicker Event → Redux-Datum setzen (aber KEIN Fetch!)
// DateRangePicker Event → Redux-Datum setzen (aber KEIN Fetch!)
const handleDateChange = (from: string, to: string) => {
dispatch(setVonDatum(from));
dispatch(setBisDatum(to));

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "cpl-v4",
"version": "1.6.617",
"version": "1.6.618",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpl-v4",
"version": "1.6.617",
"version": "1.6.618",
"dependencies": {
"@fontsource/roboto": "^5.1.0",
"@headlessui/react": "^2.2.4",

View File

@@ -1,6 +1,6 @@
{
"name": "cpl-v4",
"version": "1.6.617",
"version": "1.6.618",
"private": true,
"scripts": {
"dev": "next dev",