From 74f4a114cd57ca0dd75fecf202c5179d1956a746 Mon Sep 17 00:00:00 2001 From: lumapu Date: Fri, 4 Nov 2022 12:29:04 +0100 Subject: [PATCH] improved GUI password handling fix serial console uptime fix #384 round total values --- tools/esp8266/defines.h | 2 +- tools/esp8266/html/login.html | 2 +- tools/esp8266/html/setup.html | 3 +++ tools/esp8266/html/system.html | 2 +- tools/esp8266/html/visualization.html | 2 +- tools/esp8266/web.cpp | 2 +- tools/esp8266/webApi.cpp | 14 ++++++++------ tools/esp8266/webApi.h | 6 +++--- 8 files changed, 19 insertions(+), 14 deletions(-) diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 8ddbc7f2..38462d1c 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -13,7 +13,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 5 -#define VERSION_PATCH 30 +#define VERSION_PATCH 31 //------------------------------------- typedef struct { diff --git a/tools/esp8266/html/login.html b/tools/esp8266/html/login.html index b8298e23..68f44084 100644 --- a/tools/esp8266/html/login.html +++ b/tools/esp8266/html/login.html @@ -12,7 +12,7 @@

AhoyDTU

- +
diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index 04cdb8dd..6dac4c84 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -307,6 +307,9 @@ function parseSys(obj) { for(var i of [["device", "device_name"], ["ssid", "ssid"]]) document.getElementsByName(i[0])[0].value = obj[i[1]]; + var e = document.getElementsByName("adminpwd")[0]; + if(!obj["pwd_set"]) + e.value = ""; parseVersion(obj); } diff --git a/tools/esp8266/html/system.html b/tools/esp8266/html/system.html index 58daf80a..c49f7f8e 100644 --- a/tools/esp8266/html/system.html +++ b/tools/esp8266/html/system.html @@ -53,7 +53,7 @@ } } - getAjax("/api" + window.location.pathname, parse); + getAjax("/api/html" + window.location.pathname, parse); diff --git a/tools/esp8266/html/visualization.html b/tools/esp8266/html/visualization.html index 51adf43b..ef6371cd 100644 --- a/tools/esp8266/html/visualization.html +++ b/tools/esp8266/html/visualization.html @@ -113,7 +113,7 @@ // total if(obj.length > 1) { for(var j = 0; j < root.ch0_fld_names.length; j++) { - var val = total[j]; + var val = Math.round(total[j] * 100) / 100; if(val > 0) { var sub = div(["subgrp"]); sub.appendChild(span(val + " " + span(root["ch0_fld_units"][j], ["unit"]).innerHTML, ["value"])); diff --git a/tools/esp8266/web.cpp b/tools/esp8266/web.cpp index 873509af..d91cdc4e 100644 --- a/tools/esp8266/web.cpp +++ b/tools/esp8266/web.cpp @@ -327,7 +327,7 @@ void web::showSave(AsyncWebServerRequest *request) { request->arg("device").toCharArray(mSysCfg->deviceName, DEVNAME_LEN); if(request->arg("adminpwd") != "{PWD}") { request->arg("adminpwd").toCharArray(mConfig->password, PWD_LEN); - mProtected = true; + mProtected = (strlen(mConfig->password) > 0); } // inverter diff --git a/tools/esp8266/webApi.cpp b/tools/esp8266/webApi.cpp index ec5a2ced..66a67b05 100644 --- a/tools/esp8266/webApi.cpp +++ b/tools/esp8266/webApi.cpp @@ -43,9 +43,10 @@ void webApi::onApi(AsyncWebServerRequest *request) { Inverter<> *iv = mApp->mSys->getInverterByPos(0, false); String path = request->url().substring(5); - if(path == "system") getSystem(root); - else if(path == "logout") getLogout(root); - else if(path == "save") getSave(root); + if(path == "html/system") getHtmlSystem(root); + else if(path == "html/logout") getHtmlLogout(root); + else if(path == "html/save") getHtmlSave(root); + else if(path == "system") getSysInfo(root); else if(path == "reboot") getReboot(root); else if(path == "statistics") getStatistics(root); else if(path == "inverter/list") getInverterList(root); @@ -153,6 +154,7 @@ void webApi::getSysInfo(JsonObject obj) { obj[F("ts_sun_upd")] = mApp->getLatestSunTimestamp(); obj[F("wifi_rssi")] = WiFi.RSSI(); obj[F("disclaimer")] = mConfig->disclaimer; + obj[F("pwd_set")] = (strlen(mConfig->password) > 0); #if defined(ESP32) obj[F("esp_type")] = F("ESP32"); #else @@ -162,7 +164,7 @@ void webApi::getSysInfo(JsonObject obj) { //----------------------------------------------------------------------------- -void webApi::getSystem(JsonObject obj) { +void webApi::getHtmlSystem(JsonObject obj) { getMenu(obj.createNestedObject(F("menu"))); getSysInfo(obj.createNestedObject(F("system"))); obj[F("html")] = F("Factory Reset

Reboot"); @@ -170,7 +172,7 @@ void webApi::getSystem(JsonObject obj) { //----------------------------------------------------------------------------- -void webApi::getLogout(JsonObject obj) { +void webApi::getHtmlLogout(JsonObject obj) { getMenu(obj.createNestedObject(F("menu"))); getSysInfo(obj.createNestedObject(F("system"))); obj[F("refresh")] = 3; @@ -180,7 +182,7 @@ void webApi::getLogout(JsonObject obj) { //----------------------------------------------------------------------------- -void webApi::getSave(JsonObject obj) { +void webApi::getHtmlSave(JsonObject obj) { getMenu(obj.createNestedObject(F("menu"))); getSysInfo(obj.createNestedObject(F("system"))); obj[F("refresh")] = 2; diff --git a/tools/esp8266/webApi.h b/tools/esp8266/webApi.h index 0e4acfa1..d871fd01 100644 --- a/tools/esp8266/webApi.h +++ b/tools/esp8266/webApi.h @@ -33,9 +33,9 @@ class webApi { void onDwnldSetup(AsyncWebServerRequest *request); void getSysInfo(JsonObject obj); - void getSystem(JsonObject obj); - void getLogout(JsonObject obj); - void getSave(JsonObject obj); + void getHtmlSystem(JsonObject obj); + void getHtmlLogout(JsonObject obj); + void getHtmlSave(JsonObject obj); void getReboot(JsonObject obj); void getStatistics(JsonObject obj); void getInverterList(JsonObject obj);