From 2ebd136dc40e7be6f24f37ccab1d8a0530866524 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Thu, 7 Jan 2021 21:49:48 +0100 Subject: [PATCH] Fix Hasp Design routing --- src/svc/hasp_http.cpp | 90 +++++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/src/svc/hasp_http.cpp b/src/svc/hasp_http.cpp index b191b0e2..1be02610 100644 --- a/src/svc/hasp_http.cpp +++ b/src/svc/hasp_http.cpp @@ -158,7 +158,7 @@ String getOption(String value, String label, bool selected) void webSendFooter() { char buffer[16]; - snprintf_P(buffer, sizeof(buffer), PSTR("%u.%u.%u"), HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION); + haspGetVersion(buffer, sizeof(buffer)); #if defined(STM32F4xx) webServer.sendContent(HTTP_END); @@ -175,8 +175,7 @@ void webSendPage(char * nodename, uint32_t httpdatalength, bool gohome = false) { { char buffer[64]; - snprintf_P(buffer, sizeof(buffer), PSTR("%u.%u.%u"), HASP_VERSION_MAJOR, HASP_VERSION_MINOR, - HASP_VERSION_REVISION); + haspGetVersion(buffer, sizeof(buffer)); /* Calculate Content Length upfront */ uint16_t contentLength = strlen(buffer); // verion length @@ -220,10 +219,50 @@ void webSendPage(char * nodename, uint32_t httpdatalength, bool gohome = false) #endif } +void saveConfig() +{ + if(webServer.method() == HTTP_POST) { + if(webServer.hasArg(PSTR("save"))) { + String save = webServer.arg(PSTR("save")); + + DynamicJsonDocument settings(256); + for(int i = 0; i < webServer.args(); i++) settings[webServer.argName(i)] = webServer.arg(i); + + if(save == String(PSTR("hasp"))) { + haspSetConfig(settings.as()); + + #if HASP_USE_MQTT > 0 + } else if(save == String(PSTR("mqtt"))) { + mqttSetConfig(settings.as()); + #endif + + } else if(save == String(PSTR("gui"))) { + settings[FPSTR(F_GUI_POINTER)] = webServer.hasArg(PSTR("pointer")); + guiSetConfig(settings.as()); + + } else if(save == String(PSTR("debug"))) { + debugSetConfig(settings.as()); + + } else if(save == String(PSTR("http"))) { + httpSetConfig(settings.as()); + + // Password might have changed + if(!httpIsAuthenticated(F("config"))) return; + + #if HASP_USE_WIFI > 0 + } else if(save == String(PSTR("wifi"))) { + wifiSetConfig(settings.as()); + #endif + } + } + } +} + void webHandleRoot() { if(!httpIsAuthenticated(F("root"))) return; + saveConfig(); { String httpMessage((char *)0); httpMessage.reserve(HTTP_PAGE_SIZE); @@ -909,41 +948,7 @@ void webHandleConfig() { // http://plate01/config if(!httpIsAuthenticated(F("config"))) return; - if(webServer.method() == HTTP_POST) { - if(webServer.hasArg(PSTR("save"))) { - String save = webServer.arg(PSTR("save")); - - DynamicJsonDocument settings(256); - for(int i = 0; i < webServer.args(); i++) settings[webServer.argName(i)] = webServer.arg(i); - - if(save == String(PSTR("hasp"))) { - haspSetConfig(settings.as()); - - #if HASP_USE_MQTT > 0 - } else if(save == String(PSTR("mqtt"))) { - mqttSetConfig(settings.as()); - #endif - - } else if(save == String(PSTR("gui"))) { - settings[FPSTR(F_GUI_POINTER)] = webServer.hasArg(PSTR("pointer")); - guiSetConfig(settings.as()); - - } else if(save == String(PSTR("debug"))) { - debugSetConfig(settings.as()); - - } else if(save == String(PSTR("http"))) { - httpSetConfig(settings.as()); - - // Password might have changed - if(!httpIsAuthenticated(F("config"))) return; - - #if HASP_USE_WIFI > 0 - } else if(save == String(PSTR("wifi"))) { - wifiSetConfig(settings.as()); - #endif - } - } - } + saveConfig(); // Reboot after saving wifi config in AP mode #if HASP_USE_WIFI > 0 && !defined(STM32F4xx) @@ -991,7 +996,6 @@ void webHandleConfig() ""); httpMessage += FPSTR(MAIN_MENU_BUTTON); - ; webSendPage(httpGetNodename(), httpMessage.length(), false); webServer.sendContent(httpMessage); @@ -1500,7 +1504,8 @@ void webHandleHaspConfig() "name='filename' accept='.jsonl,.zi'>"); httpMessage += F("


"); - httpMessage += F("
"); + //httpMessage += F(""); + httpMessage += F(""); httpMessage += F("

UI Theme (required)