mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 09:36:59 +00:00
170 lines
6.0 KiB
Arduino
170 lines
6.0 KiB
Arduino
#ifdef WEBSERVER_TOOLS
|
|
|
|
// ********************************************************************************
|
|
// Web Interface Tools page
|
|
// ********************************************************************************
|
|
void handle_tools() {
|
|
if (!isLoggedIn()) { return; }
|
|
navMenuIndex = MENU_INDEX_TOOLS;
|
|
TXBuffer.startStream();
|
|
sendHeadandTail_stdtemplate(_HEAD);
|
|
|
|
String webrequest = web_server.arg(F("cmd"));
|
|
|
|
addHtml(F("<form>"));
|
|
html_table_class_normal();
|
|
|
|
addFormHeader(F("Tools"));
|
|
|
|
addFormSubHeader(F("Command"));
|
|
html_TR_TD();
|
|
addHtml(F("<TR><TD colspan='2'><input style='width: 98%' type='text' name='cmd' value='"));
|
|
addHtml(webrequest);
|
|
addHtml("'>");
|
|
html_TR_TD();
|
|
addSubmitButton();
|
|
addHelpButton(F("ESPEasy_Command_Reference"));
|
|
html_TR_TD();
|
|
|
|
printToWeb = true;
|
|
printWebString = "";
|
|
|
|
if (webrequest.length() > 0)
|
|
{
|
|
ExecuteCommand_all(VALUE_SOURCE_WEB_FRONTEND, webrequest.c_str());
|
|
}
|
|
|
|
if (printWebString.length() > 0)
|
|
{
|
|
addHtml(F("<TR><TD colspan='2'>Command Output<BR><textarea readonly rows='10' wrap='on'>"));
|
|
addHtml(printWebString);
|
|
addHtml(F("</textarea>"));
|
|
}
|
|
|
|
addFormSubHeader(F("System"));
|
|
|
|
addWideButtonPlusDescription(F("/?cmd=reboot"), F("Reboot"), F("Reboots ESP"));
|
|
|
|
# ifdef WEBSERVER_LOG
|
|
addWideButtonPlusDescription(F("log"), F("Log"), F("Open log output"));
|
|
# endif // ifdef WEBSERVER_LOG
|
|
|
|
#ifdef WEBSERVER_SYSINFO
|
|
addWideButtonPlusDescription(F("sysinfo"), F("Info"), F("Open system info page"));
|
|
#endif
|
|
|
|
#ifdef WEBSERVER_ADVANCED
|
|
addWideButtonPlusDescription(F("advanced"), F("Advanced"), F("Open advanced settings"));
|
|
#endif
|
|
|
|
addWideButtonPlusDescription(F("json"), F("Show JSON"), F("Open JSON output"));
|
|
|
|
# ifdef WEBSERVER_TIMINGSTATS
|
|
addWideButtonPlusDescription(F("timingstats"), F("Timing stats"), F("Open timing statistics of system"));
|
|
# endif // WEBSERVER_TIMINGSTATS
|
|
|
|
#ifdef WEBSERVER_PINSTATES
|
|
addWideButtonPlusDescription(F("pinstates"), F("Pin state buffer"), F("Show Pin state buffer"));
|
|
#endif
|
|
|
|
# ifdef WEBSERVER_SYSVARS
|
|
addWideButtonPlusDescription(F("sysvars"), F("System Variables"), F("Show all system variables and conversions"));
|
|
# endif // ifdef WEBSERVER_SYSVARS
|
|
|
|
addFormSubHeader(F("Wifi"));
|
|
|
|
addWideButtonPlusDescription(F("/?cmd=wificonnect"), F("Connect"), F("Connects to known Wifi network"));
|
|
addWideButtonPlusDescription(F("/?cmd=wifidisconnect"), F("Disconnect"), F("Disconnect from wifi network"));
|
|
|
|
#ifdef WEBSERVER_WIFI_SCANNER
|
|
addWideButtonPlusDescription(F("wifiscanner"), F("Scan"), F("Scan for wifi networks"));
|
|
#endif // ifdef WEBSERVER_WIFI_SCANNER
|
|
|
|
#ifdef WEBSERVER_I2C_SCANNER
|
|
addFormSubHeader(F("Interfaces"));
|
|
|
|
addWideButtonPlusDescription(F("i2cscanner"), F("I2C Scan"), F("Scan for I2C devices"));
|
|
#endif // ifdef WEBSERVER_I2C_SCANNER
|
|
|
|
addFormSubHeader(F("Settings"));
|
|
|
|
addWideButtonPlusDescription(F("upload"), F("Load"), F("Loads a settings file"));
|
|
addFormNote(F("(File MUST be renamed to \"config.dat\" before upload!)"));
|
|
addWideButtonPlusDescription(F("download"), F("Save"), F("Saves a settings file"));
|
|
|
|
#ifdef WEBSERVER_NEW_UI
|
|
# if defined(ESP8266)
|
|
|
|
if ((SpiffsFreeSpace() / 1024) > 50) {
|
|
html_TR_TD();
|
|
addHtml(F(
|
|
"<script>function downloadUI() { fetch('https://raw.githubusercontent.com/letscontrolit/espeasy_ui/master/build/index.htm.gz').then(r=>r.arrayBuffer()).then(r => {var f=new FormData();f.append('file', new File([new Blob([new Uint8Array(r)])], 'index.htm.gz'));f.append('edit', 1);fetch('/upload',{method:'POST',body:f}).then(() => {window.location.href='/';});}); }</script>"));
|
|
addHtml(F("<a class=\"button link wide\" onclick=\"downloadUI()\">Download new UI</a>"));
|
|
addHtml(F("</TD><TD>Download new UI(alpha)</TD></TR>"));
|
|
}
|
|
# endif // if defined(ESP8266)
|
|
#endif // WEBSERVER_NEW_UI
|
|
|
|
#if defined(ESP8266) || defined(ESP32)
|
|
{
|
|
# ifndef NO_HTTP_UPDATER
|
|
{
|
|
uint32_t maxSketchSize;
|
|
bool use2step;
|
|
bool otaEnabled = OTA_possible(maxSketchSize, use2step);
|
|
addFormSubHeader(F("Firmware"));
|
|
html_TR_TD_height(30);
|
|
addWideButton(F("update"), F("Update Firmware"), "", otaEnabled);
|
|
addHelpButton(F("EasyOTA"));
|
|
html_TD();
|
|
addHtml(F("Load a new firmware"));
|
|
|
|
if (otaEnabled) {
|
|
if (use2step) {
|
|
addHtml(F(" <b>WARNING</b> only use 2-step OTA update."));
|
|
}
|
|
} else {
|
|
addHtml(F(" <b>WARNING</b> OTA not possible."));
|
|
}
|
|
addHtml(F(" Max sketch size: "));
|
|
addHtml(String(maxSketchSize / 1024));
|
|
addHtml(F(" kB ("));
|
|
addHtml(String(maxSketchSize));
|
|
addHtml(F(" bytes)"));
|
|
}
|
|
# endif // ifndef NO_HTTP_UPDATER
|
|
}
|
|
#endif // if defined(ESP8266)
|
|
|
|
addFormSubHeader(F("Filesystem"));
|
|
|
|
addWideButtonPlusDescription(F("filelist"), F("File browser"), F("Show files on internal flash file system"));
|
|
addWideButtonPlusDescription(F("/factoryreset"), F("Factory Reset"), F("Select pre-defined configuration or full erase of settings"));
|
|
#ifdef USE_SETTINGS_ARCHIVE
|
|
addWideButtonPlusDescription(F("/settingsarchive"), F("Settings Archive"), F("Download settings from some archive"));
|
|
#endif // ifdef USE_SETTINGS_ARCHIVE
|
|
#ifdef FEATURE_SD
|
|
addWideButtonPlusDescription(F("SDfilelist"), F("SD Card"), F("Show files on SD-Card"));
|
|
#endif // ifdef FEATURE_SD
|
|
|
|
html_end_table();
|
|
html_end_form();
|
|
sendHeadandTail_stdtemplate(_TAIL);
|
|
TXBuffer.endStream();
|
|
printWebString = "";
|
|
printToWeb = false;
|
|
}
|
|
|
|
// ********************************************************************************
|
|
// Web Interface debug page
|
|
// ********************************************************************************
|
|
void addWideButtonPlusDescription(const String& url, const String& buttonText, const String& description)
|
|
{
|
|
html_TR_TD_height(30);
|
|
addWideButton(url, buttonText);
|
|
html_TD();
|
|
addHtml(description);
|
|
}
|
|
|
|
#endif // ifdef WEBSERVER_TOOLS
|