diff --git a/src/lang/en_US.h b/src/lang/en_US.h index 3eb2f47f..8092c5c9 100644 --- a/src/lang/en_US.h +++ b/src/lang/en_US.h @@ -146,6 +146,7 @@ #define D_HTTP_MAIN_MENU "Main Menu" #define D_HTTP_REBOOT "Restart" #define D_HTTP_CONFIGURATION "Configuration" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "Sent %S page to %s" // New #define D_HTTP_FOOTER "by Francis Van Roie" diff --git a/src/lang/es_ES.h b/src/lang/es_ES.h index 50f7df08..06517e1c 100644 --- a/src/lang/es_ES.h +++ b/src/lang/es_ES.h @@ -146,6 +146,7 @@ #define D_HTTP_MAIN_MENU "Menú principal" #define D_HTTP_REBOOT "Reiniciar" #define D_HTTP_CONFIGURATION "Configuración" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "Se envió pagina %S a %s" // New #define D_HTTP_FOOTER "por Francis Van Roie" diff --git a/src/lang/fr_FR.h b/src/lang/fr_FR.h index 8dcfc2d4..d7b11660 100644 --- a/src/lang/fr_FR.h +++ b/src/lang/fr_FR.h @@ -146,6 +146,7 @@ #define D_HTTP_MAIN_MENU "Menu principal" #define D_HTTP_REBOOT "Redémarrer" #define D_HTTP_CONFIGURATION "Configuration" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "La page %S a été envoyée à %s" #define D_HTTP_FOOTER "par Francis Van Roie" diff --git a/src/lang/hu_HU.h b/src/lang/hu_HU.h index c539b9b8..c5206259 100644 --- a/src/lang/hu_HU.h +++ b/src/lang/hu_HU.h @@ -146,6 +146,7 @@ #define D_HTTP_MAIN_MENU "Főmenü" #define D_HTTP_REBOOT "Újraindítás" #define D_HTTP_CONFIGURATION "Beállítások" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "%S oldal küldése %s-re" #define D_HTTP_FOOTER "készítette: Francis Van Roie" diff --git a/src/lang/nl_NL.h b/src/lang/nl_NL.h index 5d9188bb..c5517d9c 100644 --- a/src/lang/nl_NL.h +++ b/src/lang/nl_NL.h @@ -146,6 +146,7 @@ #define D_HTTP_MAIN_MENU "Hoofdmenu" #define D_HTTP_REBOOT "Herstarten" #define D_HTTP_CONFIGURATION "Configuratie" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "Pagina %S verstuurd naar %s" // New #define D_HTTP_FOOTER "door Francis Van Roie" diff --git a/src/lang/pt_PT.h b/src/lang/pt_PT.h index 10e360c1..f525a560 100644 --- a/src/lang/pt_PT.h +++ b/src/lang/pt_PT.h @@ -147,6 +147,7 @@ #define D_HTTP_MAIN_MENU "Menu Principal" #define D_HTTP_REBOOT "Reiniciar" #define D_HTTP_CONFIGURATION "Configuração" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "Foi enviado página %S a %s" #define D_HTTP_FOOTER "por Francis Van Roie" diff --git a/src/lang/ro_RO.h b/src/lang/ro_RO.h index 92d00729..60bbc574 100644 --- a/src/lang/ro_RO.h +++ b/src/lang/ro_RO.h @@ -146,6 +146,7 @@ #define D_HTTP_MAIN_MENU "Meniu principal" #define D_HTTP_REBOOT "Repornire" #define D_HTTP_CONFIGURATION "Setări" +#define D_HTTP_CONFIG_CHANGED "Configuration has changed, please click Restart to save changes to flash." #define D_HTTP_SENDING_PAGE "Pagina %S trimisă la %s" #define D_HTTP_FOOTER "de Francis Van Roie" diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp index 3177db0d..954b0704 100644 --- a/src/sys/svc/hasp_http.cpp +++ b/src/sys/svc/hasp_http.cpp @@ -301,52 +301,54 @@ static void webSendHeader(const char* nodename, uint32_t httpdatalength, bool go #endif } -void saveConfig() +bool saveConfig() { - if(webServer.method() == HTTP_POST) { - if(webServer.hasArg(PSTR("save"))) { - String save = webServer.arg(PSTR("save")); + bool updated = false; - StaticJsonDocument<256> settings; - for(int i = 0; i < webServer.args(); i++) settings[webServer.argName(i)] = webServer.arg(i); + if(webServer.method() == HTTP_POST && webServer.hasArg(PSTR("save"))) { + String save = webServer.arg(PSTR("save")); - if(save == String(PSTR("hasp"))) { - haspSetConfig(settings.as()); + StaticJsonDocument<256> settings; + for(int i = 0; i < webServer.args(); i++) settings[webServer.argName(i)] = webServer.arg(i); + + if(save == String(PSTR("hasp"))) { + updated = haspSetConfig(settings.as()); #if HASP_USE_MQTT > 0 - } else if(save == String(PSTR("mqtt"))) { - mqttSetConfig(settings.as()); + } else if(save == String(PSTR("mqtt"))) { + updated = mqttSetConfig(settings.as()); #endif - } else if(save == String(PSTR("gui"))) { - settings[FPSTR(FP_GUI_POINTER)] = webServer.hasArg(PSTR("cur")); - settings[FPSTR(FP_GUI_INVERT)] = webServer.hasArg(PSTR("inv")); - guiSetConfig(settings.as()); + } else if(save == String(PSTR("gui"))) { + settings[FPSTR(FP_GUI_POINTER)] = webServer.hasArg(PSTR("cur")); + settings[FPSTR(FP_GUI_INVERT)] = webServer.hasArg(PSTR("inv")); + updated = guiSetConfig(settings.as()); - } else if(save == String(PSTR("debug"))) { - settings[FPSTR(FP_DEBUG_ANSI)] = webServer.hasArg(PSTR("ansi")); - debugSetConfig(settings.as()); + } else if(save == String(PSTR("debug"))) { + settings[FPSTR(FP_DEBUG_ANSI)] = webServer.hasArg(PSTR("ansi")); + updated = debugSetConfig(settings.as()); - } else if(save == String(PSTR("http"))) { - httpSetConfig(settings.as()); + } else if(save == String(PSTR("http"))) { + updated = httpSetConfig(settings.as()); - // Password might have changed - if(!httpIsAuthenticated(F("config"))) return; + // Password might have changed + if(!httpIsAuthenticated(F("config"))) return updated; #if HASP_USE_WIFI > 0 - } else if(save == String(PSTR("wifi"))) { - wifiSetConfig(settings.as()); + } else if(save == String(PSTR("wifi"))) { + updated = wifiSetConfig(settings.as()); #endif - } } } + + return updated; } static void webHandleRoot() { if(!httpIsAuthenticated(F("root"))) return; + bool updated = saveConfig(); - saveConfig(); { String httpMessage((char*)0); httpMessage.reserve(HTTP_PAGE_SIZE); @@ -354,6 +356,10 @@ static void webHandleRoot() httpMessage += haspDevice.get_hostname(); httpMessage += F("
"); + if(updated) { + httpMessage += F("

" D_HTTP_CONFIG_CHANGED "

"); + } + httpMessage += F("" D_HTTP_HASP_DESIGN ""); httpMessage += F("" D_HTTP_SCREENSHOT ""); httpMessage += F("" D_HTTP_INFORMATION ""); @@ -966,7 +972,7 @@ static void webHandleConfig() { // http://plate01/config if(!httpIsAuthenticated(F("config"))) return; - saveConfig(); + bool updated = saveConfig(); // Reboot after saving wifi config in AP mode #if HASP_USE_WIFI > 0 && !defined(STM32F4xx) @@ -982,6 +988,10 @@ static void webHandleConfig() httpMessage += haspDevice.get_hostname(); httpMessage += F("
"); + if(updated) { + httpMessage += F("

" D_HTTP_CONFIG_CHANGED "

"); + } + #if HASP_USE_WIFI > 0 httpMessage += F("" D_HTTP_WIFI_SETTINGS ""); #endif