185 lines
7.0 KiB
C++
185 lines
7.0 KiB
C++
#include "WebserverMemoryVariables.h"
|
|
|
|
/**
|
|
* @brief Send out header for webpage
|
|
* @param server Send out instancce
|
|
* @param globalDataController Access to global data
|
|
*/
|
|
void WebserverMemoryVariables::sendHeader(ESP8266WebServer *server, GlobalDataController *globalDataController, String pageLabel, String pageTitle) {
|
|
WebserverMemoryVariables::sendHeader(server, globalDataController, pageLabel, pageTitle, false);
|
|
}
|
|
|
|
/**
|
|
* @brief Send out header for webpage
|
|
* @param server Send out instancce
|
|
* @param globalDataController Access to global data
|
|
* @param pageLabel Title label
|
|
* @param pageTitle Title
|
|
* @param refresh if true, auto refresh in header is set
|
|
*/
|
|
void WebserverMemoryVariables::sendHeader(
|
|
ESP8266WebServer *server,
|
|
GlobalDataController *globalDataController,
|
|
String pageLabel,
|
|
String pageTitle,
|
|
boolean refresh
|
|
) {
|
|
globalDataController->ledOnOff(true);
|
|
int8_t rssi = globalDataController->getWifiQuality();
|
|
|
|
server->sendHeader("Cache-Control", "no-cache, no-store");
|
|
server->sendHeader("Pragma", "no-cache");
|
|
server->sendHeader("Expires", "-1");
|
|
server->setContentLength(CONTENT_LENGTH_UNKNOWN);
|
|
server->send(200, "text/html", "");
|
|
|
|
server->sendContent(String(FPSTR(HEADER_BLOCK1)));
|
|
if (refresh) {
|
|
server->sendContent("<meta http-equiv=\"refresh\" content=\"30\">");
|
|
}
|
|
server->sendContent(String(FPSTR(HEADER_BLOCK2)));
|
|
server->sendContent("<span class='bx--header__name--prefix'>PrintBuddy </span>V" + String(VERSION));
|
|
server->sendContent(String(FPSTR(HEADER_BLOCK3)));
|
|
server->sendContent(String(FPSTR(MENUE_ITEMS)));
|
|
server->sendContent(String(FPSTR(HEADER_BLOCK4)));
|
|
|
|
uint32_t heapFree = 0;
|
|
uint16_t heapMax = 0;
|
|
uint8_t heapFrag = 0;
|
|
ESP.getHeapStats(&heapFree, &heapMax, &heapFrag);
|
|
|
|
server->sendContent("<div>WiFi Signal Strength: " + String(rssi) + "%</div>");
|
|
server->sendContent("<div>ESP ChipID: " + String(ESP.getChipId()) + "</div>");
|
|
server->sendContent("<div>ESP CoreVersion: " + String(ESP.getCoreVersion()) + "</div>");
|
|
server->sendContent("<div>Heap (frag/free/max): " + String(heapFrag) + "|" + String(heapFree) + "|" + String(heapMax) + "</div>");
|
|
server->sendContent(String(FPSTR(HEADER_BLOCK5)));
|
|
server->sendContent(pageLabel);
|
|
server->sendContent("</h4><h1 id='page-title' class='page-header__title'>");
|
|
server->sendContent(pageTitle);
|
|
server->sendContent("</h1></div>");
|
|
}
|
|
|
|
/**
|
|
* @brief send out footer content for webpage
|
|
* @param server Send out instancce
|
|
* @param globalDataController Access to global data
|
|
*/
|
|
void WebserverMemoryVariables::sendFooter(ESP8266WebServer *server, GlobalDataController *globalDataController) {
|
|
server->sendContent(String(FPSTR(FOOTER_BLOCK)));
|
|
server->sendContent("");
|
|
server->client().stop();
|
|
globalDataController->ledOnOff(false);
|
|
}
|
|
|
|
/**
|
|
* @brief Send out upload form for updates
|
|
* @param server Send out instancce
|
|
* @param globalDataController Access to global data
|
|
*/
|
|
void WebserverMemoryVariables::sendUpdateForm(ESP8266WebServer *server, GlobalDataController *globalDataController) {
|
|
server->sendContent(FPSTR(UPDATE_FORM));
|
|
}
|
|
|
|
/**
|
|
* @brief Send out configuration for weather
|
|
* @param server Send out instancce
|
|
* @param globalDataController Access to global data
|
|
*/
|
|
void WebserverMemoryVariables::sendWeatherConfigForm(ESP8266WebServer *server, GlobalDataController *globalDataController) {
|
|
String isWeatherChecked = "";
|
|
String isMetricChecked = "";
|
|
if (globalDataController->getWeatherShow()) {
|
|
isWeatherChecked = "checked='checked'";
|
|
}
|
|
if (globalDataController->getWeatherIsMetric()) {
|
|
isMetricChecked = "checked='checked'";
|
|
}
|
|
|
|
String form = FPSTR(WEATHER_FORM1);
|
|
form.replace("%IS_WEATHER_CHECKED%", isWeatherChecked);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(WEATHER_FORM2);
|
|
form.replace("%METRIC%", isMetricChecked);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(WEATHER_FORM3);
|
|
form.replace("%WEATHERKEY%", globalDataController->getWeatherApiKey());
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(WEATHER_FORM4);
|
|
form.replace("%CITY1%", String(globalDataController->getWeatherCityId()));
|
|
form.replace("%CITYNAME1%", globalDataController->getWeatherClient()->getCity(0));
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(WEATHER_FORM_OPTIONS);
|
|
form.replace(">"+String(globalDataController->getWeatherLang())+"<", " selected>"+String(globalDataController->getWeatherLang())+"<");
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(WEATHER_FORM5);
|
|
server->sendContent(form);
|
|
}
|
|
|
|
/**
|
|
* @brief Send out configuration for station
|
|
* @param server Send out instancce
|
|
* @param globalDataController Access to global data
|
|
*/
|
|
void WebserverMemoryVariables::sendStationConfigForm(ESP8266WebServer *server, GlobalDataController *globalDataController) {
|
|
String isClockChecked = "";
|
|
String is24hourChecked = "";
|
|
String isInvDisp = "";
|
|
String isFlashLED = "";
|
|
String isUseSecurityChecked = "";
|
|
if (globalDataController->isDisplayInverted()) {
|
|
isInvDisp = "checked='checked'";
|
|
}
|
|
if (globalDataController->useLedFlash()) {
|
|
isFlashLED = "checked='checked'";
|
|
}
|
|
if (globalDataController->getDisplayClock()) {
|
|
isClockChecked = "checked='checked'";
|
|
}
|
|
if (globalDataController->getClockIs24h()) {
|
|
is24hourChecked = "checked='checked'";
|
|
}
|
|
if (globalDataController->getWebserverIsBasicAuth()) {
|
|
isUseSecurityChecked = "checked='checked'";
|
|
}
|
|
|
|
String form = FPSTR(STATION_CONFIG_FORM1);
|
|
form.replace("%IS_CLOCK_CHECKED%", isClockChecked);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM2);
|
|
form.replace("%IS_24HOUR_CHECKED%", is24hourChecked);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM3);
|
|
form.replace("%IS_INVDISP_CHECKED%", isInvDisp);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM4);
|
|
form.replace("%USEFLASH%", isFlashLED);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM5);
|
|
String options = FPSTR(STATION_CONFIG_FORM5OPT);
|
|
options.replace(">"+String(globalDataController->getClockResyncMinutes())+"<", " selected>"+String(globalDataController->getClockResyncMinutes())+"<");
|
|
form.replace("%OPTIONS%", options);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM6);
|
|
form.replace("%UTCOFFSET%", String(globalDataController->getClockUtcOffset()));
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM7);
|
|
form.replace("%IS_BASICAUTH_CHECKED%", isUseSecurityChecked);
|
|
server->sendContent(form);
|
|
|
|
form = FPSTR(STATION_CONFIG_FORM8);
|
|
form.replace("%USERID%", globalDataController->getWebserverUsername());
|
|
form.replace("%STATIONPASSWORD%", globalDataController->getWebserverPassword());
|
|
server->sendContent(form);
|
|
}
|