diff --git a/src/src/WebServer/AdvancedConfigPage.cpp b/src/src/WebServer/AdvancedConfigPage.cpp index 85a791b4c..2e5d6bf6f 100644 --- a/src/src/WebServer/AdvancedConfigPage.cpp +++ b/src/src/WebServer/AdvancedConfigPage.cpp @@ -37,10 +37,7 @@ void handle_advanced() { checkRAM(F("handle_advanced")); #endif - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } if (!webArg(F("edit")).isEmpty()) { diff --git a/src/src/WebServer/ConfigPage.cpp b/src/src/WebServer/ConfigPage.cpp index e222c5083..11a4dd33a 100644 --- a/src/src/WebServer/ConfigPage.cpp +++ b/src/src/WebServer/ConfigPage.cpp @@ -34,11 +34,7 @@ void handle_config() { checkRAM(F("handle_config")); #endif - if (!isLoggedIn()) { return; } - - navMenuIndex = MENU_INDEX_CONFIG; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_CONFIG)) { return; } if (web_server.args() != 0) { diff --git a/src/src/WebServer/ControllerPage.cpp b/src/src/WebServer/ControllerPage.cpp index 328b659d3..adb0f5318 100644 --- a/src/src/WebServer/ControllerPage.cpp +++ b/src/src/WebServer/ControllerPage.cpp @@ -36,10 +36,7 @@ void handle_controllers() { checkRAM(F("handle_controllers")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_CONTROLLERS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_CONTROLLERS)) { return; } // 'index' value in the URL uint8_t controllerindex = getFormItemInt(F("index"), 0); diff --git a/src/src/WebServer/DevicesPage.cpp b/src/src/WebServer/DevicesPage.cpp index 2db6c29b2..fb8283154 100644 --- a/src/src/WebServer/DevicesPage.cpp +++ b/src/src/WebServer/DevicesPage.cpp @@ -48,11 +48,7 @@ void handle_devices() { checkRAM(F("handle_devices")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_DEVICES; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); - + if (!startStream_send_stdTemplate(MENU_INDEX_DEVICES)) { return; } // char tmpString[41]; diff --git a/src/src/WebServer/ESPEasy_WebServer.cpp b/src/src/WebServer/ESPEasy_WebServer.cpp index d5b591e58..7250ce959 100644 --- a/src/src/WebServer/ESPEasy_WebServer.cpp +++ b/src/src/WebServer/ESPEasy_WebServer.cpp @@ -898,6 +898,17 @@ bool isLoggedIn(bool mustProvideLogin) return true; } +bool startStream_send_stdTemplate(uint8_t newNavIndex) +{ + if (!isLoggedIn()) { return false; } + + navMenuIndex = newNavIndex; + TXBuffer.startStream(); + sendHeadandTail_stdtemplate(_HEAD); + return true; +} + + String getControllerSymbol(uint8_t index) { String ret = F("&#"); diff --git a/src/src/WebServer/ESPEasy_WebServer.h b/src/src/WebServer/ESPEasy_WebServer.h index 787876d75..c002881e9 100644 --- a/src/src/WebServer/ESPEasy_WebServer.h +++ b/src/src/WebServer/ESPEasy_WebServer.h @@ -128,6 +128,10 @@ void addTaskValueSelect(const String& name, // ******************************************************************************** bool isLoggedIn(bool mustProvideLogin = true); +// Check isLoggedIn, set new navIndex and start serving standard template +// Thus not for non-HTML pages. +bool startStream_send_stdTemplate(uint8_t newNavIndex); + String getControllerSymbol(uint8_t index); /* diff --git a/src/src/WebServer/FactoryResetPage.cpp b/src/src/WebServer/FactoryResetPage.cpp index 13985a5ba..6a11ab620 100644 --- a/src/src/WebServer/FactoryResetPage.cpp +++ b/src/src/WebServer/FactoryResetPage.cpp @@ -25,10 +25,8 @@ void handle_factoryreset() { checkRAM(F("handle_factoryreset")); #endif - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } + html_add_form(); html_table_class_normal(); html_TR(); diff --git a/src/src/WebServer/HardwarePage.cpp b/src/src/WebServer/HardwarePage.cpp index cc7ce1f0a..9abce52f2 100644 --- a/src/src/WebServer/HardwarePage.cpp +++ b/src/src/WebServer/HardwarePage.cpp @@ -30,10 +30,7 @@ void handle_hardware() { checkRAM(F("handle_hardware")); #endif - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_HARDWARE; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_HARDWARE)) { return; } if (isFormItem(F("pled"))) { String error; diff --git a/src/src/WebServer/I2C_Scanner.cpp b/src/src/WebServer/I2C_Scanner.cpp index f210220ad..9113f2d9f 100644 --- a/src/src/WebServer/I2C_Scanner.cpp +++ b/src/src/WebServer/I2C_Scanner.cpp @@ -489,10 +489,7 @@ void handle_i2cscanner() { checkRAM(F("handle_i2cscanner")); #endif - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } int nDevices = 0; #if !FEATURE_I2C_MULTIPLE diff --git a/src/src/WebServer/Log.cpp b/src/src/WebServer/Log.cpp index 7ae46864d..a26896db8 100644 --- a/src/src/WebServer/Log.cpp +++ b/src/src/WebServer/Log.cpp @@ -21,11 +21,8 @@ // Web Interface log page // ******************************************************************************** void handle_log() { - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); html_table_class_normal(); #ifdef WEBSERVER_LOG diff --git a/src/src/WebServer/NetworkPage.cpp b/src/src/WebServer/NetworkPage.cpp index 19bec41e0..87b212343 100644 --- a/src/src/WebServer/NetworkPage.cpp +++ b/src/src/WebServer/NetworkPage.cpp @@ -35,11 +35,7 @@ void handle_networks() checkRAM(F("handle_networks")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_NETWORK; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); - + if (!startStream_send_stdTemplate(MENU_INDEX_NETWORK)) { return; } // 'index' value in the URL uint8_t networkindex = getFormItemInt(F("index"), 0); diff --git a/src/src/WebServer/NotificationPage.cpp b/src/src/WebServer/NotificationPage.cpp index 6014f2ce5..0636b29a6 100644 --- a/src/src/WebServer/NotificationPage.cpp +++ b/src/src/WebServer/NotificationPage.cpp @@ -39,10 +39,7 @@ void handle_notifications() { checkRAM(F("handle_notifications")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_NOTIFICATIONS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_NOTIFICATIONS)) { return; } struct EventStruct TempEvent; diff --git a/src/src/WebServer/PinStates.cpp b/src/src/WebServer/PinStates.cpp index 2e6c8be6e..25acd425e 100644 --- a/src/src/WebServer/PinStates.cpp +++ b/src/src/WebServer/PinStates.cpp @@ -75,10 +75,7 @@ void handle_pinstates() { checkRAM(F("handle_pinstates")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } # ifdef ESP32 html_BR(); diff --git a/src/src/WebServer/SettingsArchive.cpp b/src/src/WebServer/SettingsArchive.cpp index bd9f647ce..67a15e820 100644 --- a/src/src/WebServer/SettingsArchive.cpp +++ b/src/src/WebServer/SettingsArchive.cpp @@ -24,10 +24,8 @@ void handle_settingsarchive() { checkRAM(F("handle_settingsarchive")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } + html_add_form(); html_table_class_normal(); html_TR(); diff --git a/src/src/WebServer/SysInfoPage.cpp b/src/src/WebServer/SysInfoPage.cpp index 2d256bf75..ae8349ddd 100644 --- a/src/src/WebServer/SysInfoPage.cpp +++ b/src/src/WebServer/SysInfoPage.cpp @@ -235,13 +235,10 @@ void handle_sysinfo() { checkRAM(F("handle_sysinfo")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } #ifdef WEBSERVER_GITHUB_COPY html_reset_copyTextCounter(); #endif - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); addHtml(printWebString); addHtml(F("
")); diff --git a/src/src/WebServer/SysVarPage.cpp b/src/src/WebServer/SysVarPage.cpp index a9a3c0eaa..10af2f21d 100644 --- a/src/src/WebServer/SysVarPage.cpp +++ b/src/src/WebServer/SysVarPage.cpp @@ -41,9 +41,7 @@ void handle_sysvars() { checkRAM(F("handle_sysvars")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } html_BR(); addHtml(F("

This page may load slow.
Do not load too often, since it may affect performance of the node.

")); diff --git a/src/src/WebServer/ToolsPage.cpp b/src/src/WebServer/ToolsPage.cpp index c4fa74bcc..84e5a7061 100644 --- a/src/src/WebServer/ToolsPage.cpp +++ b/src/src/WebServer/ToolsPage.cpp @@ -19,10 +19,7 @@ // Web Interface Tools page // ******************************************************************************** void handle_tools() { - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } String webrequest = webArg(F("cmd")); diff --git a/src/src/WebServer/UploadPage.cpp b/src/src/WebServer/UploadPage.cpp index 8244b9ac3..1122d2439 100644 --- a/src/src/WebServer/UploadPage.cpp +++ b/src/src/WebServer/UploadPage.cpp @@ -25,10 +25,7 @@ uploadResult_e uploadResult = uploadResult_e::UploadStarted; void handle_upload() { - if (!isLoggedIn()) { return; } - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } addHtml(F( "

Upload settings file:

")); @@ -46,11 +43,7 @@ void handle_upload_post() { checkRAM(F("handle_upload_post")); # endif // ifndef BUILD_NO_RAM_TRACKER - if (!isLoggedIn()) { return; } - - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } switch (uploadResult) { case uploadResult_e::Success: diff --git a/src/src/WebServer/WiFiScanner.cpp b/src/src/WebServer/WiFiScanner.cpp index aea3c917b..1d34b8933 100644 --- a/src/src/WebServer/WiFiScanner.cpp +++ b/src/src/WebServer/WiFiScanner.cpp @@ -61,6 +61,7 @@ void handle_wifiscanner() { checkRAM(F("handle_wifiscanner")); #endif + // Check for logged in state before potentially interrupting WiFi connection if (!isLoggedIn()) { return; } WiFiMode_t cur_wifimode = WiFi.getMode(); @@ -69,9 +70,8 @@ void handle_wifiscanner() { int8_t scanCompleteStatus = ESPEasy::net::wifi::WiFi_AP_Candidates.scanComplete(); ESPEasy::net::wifi::setWifiMode(cur_wifimode); - navMenuIndex = MENU_INDEX_TOOLS; - TXBuffer.startStream(); - sendHeadandTail_stdtemplate(_HEAD); + if (!startStream_send_stdTemplate(MENU_INDEX_TOOLS)) { return; } + html_table_class_multirow(); html_TR(); html_table_header(getLabel(LabelType::SSID));