From 6fda2401e3bbcb8eb2973fbdd602c9322aea2095 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 13 Apr 2021 12:00:42 +0200 Subject: [PATCH] Refactor new webserver boarding code --- tasmota/xdrv_01_webserver.ino | 39 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/tasmota/xdrv_01_webserver.ino b/tasmota/xdrv_01_webserver.ino index 7959d66a8..bb3b32dfc 100644 --- a/tasmota/xdrv_01_webserver.ino +++ b/tasmota/xdrv_01_webserver.ino @@ -283,17 +283,14 @@ const char HTTP_FORM_MODULE[] PROGMEM = "

" D_MODULE_TYPE " (%s)

" "
"; -const char HTTP_FORM_WIFI_INITIAL[] PROGMEM = +const char HTTP_FORM_WIFI_PART1[] PROGMEM = "
 " D_WIFI_PARAMETERS " " "
" - "

" D_AP1_SSID "

" // Need \" instead of ' to be able to use ' in text (#8489) - "


"; + "

" D_AP1_SSID "%s

" // Need \" instead of ' to be able to use ' in text (#8489) + "


 " D_WIFI_PARAMETERS " " - "" - "

" D_AP1_SSID " (" STA_SSID1 ")

" // Need \" instead of ' to be able to use ' in text (#8489) - "


" +const char HTTP_FORM_WIFI_PART2[] PROGMEM = + " value=\"" D_ASTERISK_PWD "\">

" "

" D_AP2_SSID " (" STA_SSID2 ")

" "


" "

" D_HOSTNAME " (%s)

" @@ -915,7 +912,7 @@ void WebRestart(uint32_t type) #endif } } - if (type<2) { + if (type<2) { WSContentSend_P(HTTP_MSG_RSTRT); if (HTTP_MANAGER == Web.state || reset_only) { Web.state = HTTP_ADMIN; @@ -991,7 +988,7 @@ void HandleRoot(void) if (!Web.initial_config) { Web.initial_config = !strlen(SettingsText(SET_STASSID1)); if (Web.initial_config) { AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_HTTP "Blank Device - Initial Configuration")); } - } + } HandleWifiConfiguration(); } else { // wrong user and pass @@ -1741,7 +1738,7 @@ void HandleWifiConfiguration(void) { Web.old_wificonfig = TasmotaGlobal.wifi_state_flag; Settings.sta_config = WIFI_MANAGER; TasmotaGlobal.wifi_state_flag = Settings.sta_config; - + TasmotaGlobal.sleep = 0; // Disable sleep TasmotaGlobal.restart_flag = 0; // No restart TasmotaGlobal.ota_state_flag = 0; // No OTA @@ -1761,7 +1758,7 @@ void HandleWifiConfiguration(void) { } else { // STATION MODE or MIXED // Save the config and restart - WifiSaveSettings(); + WifiSaveSettings(); WebRestart(1); } return; @@ -1872,7 +1869,7 @@ void HandleWifiConfiguration(void) { WSContentSend_P(PSTR(""), k, (num_bars < k) ? PSTR(" o30") : PSTR("")); } WSContentSend_P(PSTR("")); - } + } } else { if (ssid_showed <= networksToShow ) { networksToShow++; } } @@ -1934,12 +1931,14 @@ void HandleWifiConfiguration(void) { WSContentSend_P(PSTR("
" D_SCAN_FOR_WIFI_NETWORKS "

")); } - // As WIFI_HOSTNAME may contain %s-%04d it cannot be part of HTTP_FORM_WIFI where it will exception + WSContentSend_P(HTTP_FORM_WIFI_PART1, (WifiIsInManagerMode()) ? "" : PSTR(" (" STA_SSID1 ")"), SettingsText(SET_STASSID1)); if (WifiIsInManagerMode()) { - WSContentSend_P(HTTP_FORM_WIFI_INITIAL, SettingsText(SET_STASSID1) ); + // As WIFI_HOSTNAME may contain %s-%04d it cannot be part of HTTP_FORM_WIFI where it will exception + WSContentSend_P(PSTR(">

")); } else { - WSContentSend_P(HTTP_FORM_WIFI, SettingsText(SET_STASSID1), SettingsText(SET_STASSID2), WIFI_HOSTNAME, WIFI_HOSTNAME, SettingsText(SET_HOSTNAME), SettingsText(SET_CORS)); + WSContentSend_P(HTTP_FORM_WIFI_PART2, SettingsText(SET_STASSID2), WIFI_HOSTNAME, WIFI_HOSTNAME, SettingsText(SET_HOSTNAME), SettingsText(SET_CORS)); } + WSContentSend_P(HTTP_FORM_END); } @@ -1949,8 +1948,8 @@ void HandleWifiConfiguration(void) { WSContentSend_P(PSTR("

" D_TRYING_TO_CONNECT "
%s

"), WebColor(COL_TEXT_WARNING), SettingsText(SET_STASSID1) - ); - } else if (WIFI_TEST_FINISHED_BAD == Web.wifiTest) { + ); + } else if (WIFI_TEST_FINISHED_BAD == Web.wifiTest) { WSContentSend_P(PSTR("

" D_CONNECT_FAILED_TO " %s
" D_CHECK_CREDENTIALS "

"), WebColor(COL_TEXT_WARNING), SettingsText(SET_STASSID1) @@ -3304,7 +3303,7 @@ bool Xdrv01(uint8_t function) TasmotaGlobal.save_data_counter = Web.save_data_counter; Settings.save_data = Web.save_data_counter; SettingsSaveAll(); -#if (!RESTART_AFTER_INITIAL_WIFI_CONFIG) +#if (!RESTART_AFTER_INITIAL_WIFI_CONFIG) Web.initial_config = false; Web.state = HTTP_ADMIN; #endif @@ -3327,7 +3326,7 @@ bool Xdrv01(uint8_t function) int n = WiFi.scanNetworks(); // restart scan } } - break; + break; case FUNC_COMMAND: result = DecodeCommand(kWebCommands, WebCommand); break;