Delete profile now works.

This commit is contained in:
2024-03-09 15:01:34 +00:00
parent 401af1671f
commit 8b1153df9e

View File

@@ -145,9 +145,9 @@ String getProfilesList(void)
settings.begin("profiles");
list = settings.getString("list");
Serial.println(list);
deserializeJson(jsonList, list);
// deserializeJson(jsonList, list);
settings.end();
serializeJson(jsonList,list);
// serializeJson(jsonList,list);
return list;
}
@@ -197,21 +197,26 @@ boolean deleteProfile(AsyncWebServerRequest * request)
{
bool res = false;
int params = request->params();
if(params == 1){
settings.begin("profiles");
if(params > 0){
String list;
JsonDocument jsonList;
String name = request->getParam("name",true)->value();
deserializeJson(jsonList,settings.getString("list"));
if(jsonList.containsKey(name)){
//remove from list
jsonList.remove(name);
String list;
serializeJson(jsonList,list);
settings.putString("list",list);
//remove profile
settings.remove(name.c_str());
res = true;
}
settings.begin("profiles");
list = settings.getString("list");
Serial.printf("Removing %s from %s.\n",name,list.c_str());
deserializeJson(jsonList,list.c_str());
JsonArray aList = jsonList.as<JsonArray>();
Serial.println(aList.size());
for (JsonArray::iterator it=aList.begin(); it!=aList.end(); ++it) {
String n = (*it).as<String>();
Serial.println(n);
if (n.equals(name)) {
aList.remove(it);
}
}
serializeJson(aList,list);
settings.putString("list",list);
res=true;
settings.end();
}
return res;