moved all html strings out of code

This commit is contained in:
Shawn A
2018-01-31 16:37:53 -06:00
parent b0c61688d6
commit 6894c89441
3 changed files with 44 additions and 82 deletions
+37 -82
View File
@@ -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 += "<h1>";
page += configPortalActive ? _apName : WiFi.localIP().toString();
page += "</h1>";
page += F("<h3>WiFiManager</h3>");
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("</dd>");
page += F("</dl>");
page += "<br/><form action='/erase' method='get'><button>";
page += "Erase WiFi Config"; // @token erasewifi
page += "</button></form>";
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 += "<div class='msg P'>";
page += F("<strong>Connected</strong> to ");
page += WiFi.SSID();
page += F("<br/><em><small>with IP <a href=\"http://");
page += WiFi.localIP().toString();
page += F("/\">");
page += WiFi.localIP().toString();
page += F("</a></small></em>");
} else {
page += "<div class='msg'>";
page += "<strong>Not Connected</strong> to ";
page += WiFi.SSID();
}
} else {
page += "<div class='msg'>";
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 += "</div>";
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");
+1
View File
@@ -205,6 +205,7 @@ class WiFiManager
String getParamOut();
String getScanItemOut();
String getStaticOut();
String getHTTPHead(String title);
//helpers
String getWLStatusString(uint8_t status);
+6
View File
@@ -1,6 +1,7 @@
const char HTTP_HEAD[] PROGMEM = "<!DOCTYPE html><html lang='en'><head><meta name='format-detection' content='telephone=no'><meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'/><title>{v}</title>";
const char HTTP_SCRIPT[] PROGMEM = "<script>function c(l){document.getElementById('s').value=l.innerText||l.textContent;document.getElementById('p').focus();}</script>";
const char HTTP_HEAD_END[] PROGMEM = "</head><body><div class='wrap'>";
const char HTTP_ROOT_MAIN[] PROGMEM = "<h1>{v}</h1><h3>WiFiManager</h3>";
const char HTTP_PORTAL_OPTIONS[] PROGMEM = "<form action='/wifi' method='GET'><button>Configure WiFi</button></form><br/><form action='/0wifi' method='GET'><button>Configure WiFi (No Scan)</button></form><br/><form action='/i' method='GET'><button>Info</button></form><br/><form action='/r' method='GET'><button>Restart</button></form><br/><form action='/exit' method='GET'><button>Quit</button></form>";
const char HTTP_ITEM[] PROGMEM = "<div><a href='#p' onclick='c(this)'>{v}</a><div role='img' aria-label='{r}%' title='{r}%' class='q q-{q} {i}'></div></div>";
// const char HTTP_ITEM[] PROGMEM = "<div><a href='#p' onclick='c(this)'>{v}</a> {R} {r}% {q} {e}</div>"; // test all tokens
@@ -13,6 +14,11 @@ const char HTTP_FORM_PARAM_END[] PROGMEM = "<br/>";
const char HTTP_SCAN_LINK[] PROGMEM = "<br/><form action='/wifi' method='get'><button>Refresh</button></form>";
const char HTTP_SAVED[] PROGMEM = "<div class='msg'>Saving Credentials<br/>Trying to connect ESP to network.<br />If it fails reconnect to AP to try again</div>";
const char HTTP_END[] PROGMEM = "</div></body></html>";
const char HTTP_ERASEBTN[] PROGMEM = "<br/><form action='/erase' method='get'><button>Erase WiFi Config</button></form>";
const char HTTP_STATUS_ON[] PROGMEM = "<div class='msg P'><strong>Connected</strong> to {s}<br/><em><small>with IP {u}</small></em></div>";
const char HTTP_STATUS_OFF[] PROGMEM = "<div class='msg'><strong>Not Connected</strong> to {s}</div>";
const char HTTP_STATUS_NONE[] PROGMEM = "<div class='msg'>No AP set</div>";
const char HTTP_STYLE[] PROGMEM = "<style>"
".c,body{text-align:center;font-family:verdana}div,input{padding:5px;font-size:1em}input{width:95%;margin:5px 0}button{cursor:pointer;border:0;border-radius:.3rem;background-color:#1fa3ec;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%}"