From 6894c89441daa8686a393dbbb30056dea3a79ec2 Mon Sep 17 00:00:00 2001 From: Shawn A Date: Wed, 31 Jan 2018 16:37:53 -0600 Subject: [PATCH] moved all html strings out of code --- WiFiManager.cpp | 119 +++++++++++++++--------------------------------- WiFiManager.h | 1 + strings_en.h | 6 +++ 3 files changed, 44 insertions(+), 82 deletions(-) diff --git a/WiFiManager.cpp b/WiFiManager.cpp index 5620da1..a841b8b 100644 --- a/WiFiManager.cpp +++ b/WiFiManager.cpp @@ -547,6 +547,17 @@ void WiFiManager::setBreakAfterConfig(boolean shouldBreak) { _shouldBreakAfterConfig = shouldBreak; } +String WiFiManager::getHTTPHead(String title){ + String page; + page += FPSTR(HTTP_HEAD); + page.replace("{v}", title); + page += FPSTR(HTTP_SCRIPT); + page += FPSTR(HTTP_STYLE); + page += _customHeadElement; + page += FPSTR(HTTP_HEAD_END); + return page; +} + /** * HTTPD CALLBACK root or redirect to captive portal */ @@ -556,26 +567,17 @@ void WiFiManager::handleRoot() { if (captivePortal()) { // If captive portal redirect instead of displaying the page. return; } - - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Options"); - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; - page += FPSTR(HTTP_HEAD_END); - page += "

"; - page += configPortalActive ? _apName : WiFi.localIP().toString(); - page += "

"; - page += F("

WiFiManager

"); + String page = getHTTPHead("options"); // @token options + String str = FPSTR(HTTP_ROOT_MAIN); + str.replace("{v}",configPortalActive ? _apName : WiFi.localIP().toString()); // use ip if ap is not active for heading + page += str; page += FPSTR(HTTP_PORTAL_OPTIONS); reportStatus(page); page += FPSTR(HTTP_END); - server->sendHeader("Content-Length", String(page.length())); server->send(200, "text/html", page); // server->close(); // testing reliability fix for content length mismatches during mutiple flood hits - } /** @@ -584,18 +586,10 @@ void WiFiManager::handleRoot() { void WiFiManager::handleWifi(boolean scan) { DEBUG_WM("<- HTTP Wifi"); - - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Config ESP"); // @token titlewifi - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; - page += FPSTR(HTTP_HEAD_END); - + String page = getHTTPHead("Config ESP"); // @token titlewifi if (scan) { page += getScanItemOut(); } - String pitem = FPSTR(HTTP_FORM_START); pitem.replace("{v}", WiFi.SSID()); page += pitem; @@ -883,12 +877,7 @@ void WiFiManager::handleWifiSave() { DEBUG_WM(F("static netmask:"),sn); } - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Credentials Saved"); // @token titlewifisaved - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; - page += FPSTR(HTTP_HEAD_END); + String page = getHTTPHead("Credentials Saved"); // @token titlewifisaved page += FPSTR(HTTP_SAVED); page += FPSTR(HTTP_END); @@ -905,14 +894,7 @@ void WiFiManager::handleWifiSave() { */ void WiFiManager::handleInfo() { DEBUG_WM(F("<- HTTP Info")); - - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Info"); // @token titleinfo - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; - page += FPSTR(HTTP_HEAD_END); - + String page = getHTTPHead("Info"); // @token titleinfo reportStatus(page); // @todo add versioning here @@ -1033,13 +1015,8 @@ void WiFiManager::handleInfo() { page += WiFi.getAutoConnect() ? "Enabled" : "Disabled"; // @token enabled,disabled page += F(""); page += F(""); - - page += "
"; - + page += FPSTR(HTTP_ERASEBTN); page += FPSTR(HTTP_HELP); - page += FPSTR(HTTP_END); server->sendHeader("Content-Length", String(page.length())); @@ -1054,42 +1031,30 @@ void WiFiManager::handleInfo() { */ void WiFiManager::handleExit() { DEBUG_WM(F("<- HTTP Exit")); - - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Exit"); - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; - page += FPSTR(HTTP_HEAD_END); - - page += "Exiting"; + String page = getHTTPHead("Exit"); // @token exit + page += "Exiting"; // @token exiting server->sendHeader("Content-Length", String(page.length())); server->send(200, "text/html", page); abort = true; } void WiFiManager::reportStatus(String &page){ - + String str; if (WiFi.SSID() != ""){ if (WiFi.status()==WL_CONNECTED){ - page += "
"; - page += F("Connected to "); - page += WiFi.SSID(); - page += F("
with IP "); - page += WiFi.localIP().toString(); - page += F(""); - } else { - page += "
"; - page += "Not Connected to "; - page += WiFi.SSID(); - } - } else { - page += "
"; - page += "No AP set"; + str = FPSTR(HTTP_STATUS_ON); + str.replace("{u}",WiFi.localIP().toString()); + str.replace("{s}",WiFi.SSID()); + } + else { + str = FPSTR(HTTP_STATUS_OFF); + str.replace("{s}",WiFi.SSID()); + } } - page += "
"; + else { + str = FPSTR(HTTP_STATUS_NONE); + } + page += str; } /** @@ -1098,12 +1063,7 @@ void WiFiManager::reportStatus(String &page){ void WiFiManager::handleReset() { DEBUG_WM(F("<- HTTP Reset")); - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Reset"); - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; - page += FPSTR(HTTP_HEAD_END); + String page = getHTTPHead("Reset"); page += F("Module will reset in a few seconds."); page += FPSTR(HTTP_END); @@ -1121,15 +1081,10 @@ void WiFiManager::handleReset() { void WiFiManager::handleErase() { DEBUG_WM(F("<- HTTP Erase")); - String page = FPSTR(HTTP_HEAD); - page.replace("{v}", "Erase"); - page += FPSTR(HTTP_SCRIPT); - page += FPSTR(HTTP_STYLE); - page += _customHeadElement; + String page = getHTTPHead("Erase"); page += FPSTR(HTTP_HEAD_END); - bool ret = WiFi_eraseConfig(); - + if(ret) page += F("Module will reset in a few seconds."); else { page += F("An Error Occured"); diff --git a/WiFiManager.h b/WiFiManager.h index 4c0065a..d0b90be 100644 --- a/WiFiManager.h +++ b/WiFiManager.h @@ -205,6 +205,7 @@ class WiFiManager String getParamOut(); String getScanItemOut(); String getStaticOut(); + String getHTTPHead(String title); //helpers String getWLStatusString(uint8_t status); diff --git a/strings_en.h b/strings_en.h index abda51c..bf5f112 100644 --- a/strings_en.h +++ b/strings_en.h @@ -1,6 +1,7 @@ const char HTTP_HEAD[] PROGMEM = "{v}"; const char HTTP_SCRIPT[] PROGMEM = ""; const char HTTP_HEAD_END[] PROGMEM = "
"; +const char HTTP_ROOT_MAIN[] PROGMEM = "

{v}

WiFiManager

"; const char HTTP_PORTAL_OPTIONS[] PROGMEM = "




"; const char HTTP_ITEM[] PROGMEM = "
{v}
"; // const char HTTP_ITEM[] PROGMEM = "
{v} {R} {r}% {q} {e}
"; // test all tokens @@ -13,6 +14,11 @@ const char HTTP_FORM_PARAM_END[] PROGMEM = "
"; const char HTTP_SCAN_LINK[] PROGMEM = "
"; const char HTTP_SAVED[] PROGMEM = "
Saving Credentials
Trying to connect ESP to network.
If it fails reconnect to AP to try again
"; const char HTTP_END[] PROGMEM = "
"; +const char HTTP_ERASEBTN[] PROGMEM = "
"; + +const char HTTP_STATUS_ON[] PROGMEM = "
Connected to {s}
with IP {u}
"; +const char HTTP_STATUS_OFF[] PROGMEM = "
Not Connected to {s}
"; +const char HTTP_STATUS_NONE[] PROGMEM = "
No AP set
"; const char HTTP_STYLE[] PROGMEM = "