fixed chart add/edit - now its not deleting data when just changing min/max

This commit is contained in:
DeltaLima 2025-04-13 21:29:03 +02:00
parent caa9e1d1a4
commit c99b55968d
2 changed files with 27 additions and 11 deletions

View file

@ -768,11 +768,12 @@ String Str_Chart_Json(bool escapeUnit = false) {
/* build path to chart data dir */
char chartDirPath[10];
snprintf(chartDirPath, sizeof(chartDirPath), "%s%d", CHART_BASE_PATH, i);
objChart["min"] = config.grow.dashboard.chartMin[i];
objChart["max"] = config.grow.dashboard.chartMax[i];
/* count number of datasets stored */
unsigned short dataIndex = 0;
//Serial.println(chartDirPath);
/* https://github.com/cotestatnt/async-esp-fs-webserver/blob/master/src/AsyncFsWebServer.cpp */
File rootDir = LittleFS.open(chartDirPath, "r");
File file = rootDir.openNextFile();

View file

@ -1276,6 +1276,10 @@ String Proc_WebPage_grow_dashboard_gaugeAdd(const String& var) {
String html;
html += Html_SelectOpt_Sensor_Read();
return html;
} else if(var == "MIN") {
return String(0);
} else if(var == "MAX") {
return String(100);
} else {
return String();
}
@ -1409,6 +1413,10 @@ String Proc_WebPage_grow_dashboard_chartAdd(const String& var) {
String html;
html += Html_SelectOpt_Sensor_Read();
return html;
} else if(var == "MIN") {
return String(0);
} else if(var == "MAX") {
return String(100);
} else {
return String();
}
@ -1476,16 +1484,27 @@ void WebPage_grow_dashboard_chartAdd(AsyncWebServerRequest *request) {
config.grow.dashboard.chartConfigured[chartId] = true;
}
chartSensor_old = config.grow.dashboard.chartSensor[chartId];
if(request->hasParam("chartSensor", true)) {
const AsyncWebParameter* param = request->getParam("chartSensor", true);
chartSensor_old = config.grow.dashboard.chartSensor[chartId];
config.grow.dashboard.chartSensor[chartId] = param->value().toInt();
byte chartSensor = param->value().toInt();
if(chartSensor != chartSensor_old) {
LFS_Chart_Purge_Data(chartId);
}
config.grow.dashboard.chartSensor[chartId] = chartSensor;
}
chartRead_old = config.grow.dashboard.chartRead[chartId];
if(request->hasParam("chartRead", true)) {
const AsyncWebParameter* param = request->getParam("chartRead", true);
chartRead_old = config.grow.dashboard.chartRead[chartId];
config.grow.dashboard.chartRead[chartId] = param->value().toInt();
byte chartRead = param->value().toInt();
if(chartRead != chartRead_old) {
LFS_Chart_Purge_Data(chartId);
}
config.grow.dashboard.chartRead[chartId] = chartRead;
}
if(request->hasParam("chartMin", true)) {
@ -1504,10 +1523,6 @@ void WebPage_grow_dashboard_chartAdd(AsyncWebServerRequest *request) {
//const AsyncWebParameter* param = request->getParam("chartColor", true);
//strlcpy(config.grow.dashboard.chartColor[chartId], param->value().c_str(), sizeof(config.grow.dashboard.chartColor[chartId]));
//}
/* purge all data */
if((config.grow.dashboard.chartSensor[chartId] != chartSensor_old) || (config.grow.dashboard.chartRead[chartId] != chartRead_old))
LFS_Chart_Purge_Data(chartId);
SaveConfig();
request->redirect("/grow/dashboard/?success");