From 75628ad230226c6ba9a104db9fa5ce726444dbdd Mon Sep 17 00:00:00 2001 From: lumapu Date: Wed, 28 Dec 2022 00:08:18 +0100 Subject: [PATCH] added update information to `index.html` --- src/CHANGES.md | 1 + src/web/RestApi.h | 1 - src/web/html/index.html | 24 ++++++++++++++++++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/CHANGES.md b/src/CHANGES.md index 72abd30b..1bd20103 100644 --- a/src/CHANGES.md +++ b/src/CHANGES.md @@ -4,6 +4,7 @@ * fix Update button protection (prevent double click #527) * optimized scheduler #515 (thx @beegee3) * potential fix of #526 duplicates in API `/api/record/live` +* added update information to `index.html` ## 0.5.62 * fix MQTT `status` update diff --git a/src/web/RestApi.h b/src/web/RestApi.h index f1349057..f1fca182 100644 --- a/src/web/RestApi.h +++ b/src/web/RestApi.h @@ -54,7 +54,6 @@ class RestApi { AsyncJsonResponse* response = new AsyncJsonResponse(false, 8192); JsonObject root = response->getRoot(); - Inverter<> *iv = mSys->getInverterByPos(0, false); String path = request->url().substring(5); if(path == "html/system") getHtmlSystem(root); else if(path == "html/logout") getHtmlLogout(root); diff --git a/src/web/html/index.html b/src/web/html/index.html index e702312b..0cd7f430 100644 --- a/src/web/html/index.html +++ b/src/web/html/index.html @@ -81,6 +81,7 @@ var tickCnt = 0; var ts = 0; var commInfo = ""; + var release = null; function apiCb(obj) { var e = document.getElementById("apiResult"); @@ -198,7 +199,7 @@ document.getElementById("iv").replaceChildren(p); } - function parseWarnInfo(warn, success) { + function parseWarnInfo(warn, success, version) { var p = div(["none"]); for(var w of warn) { p.append(svg(iconWarn, 20, 20, "#F70", "icon"), span(w), br()); @@ -209,6 +210,14 @@ if(commInfo.length > 0) p.append(svg(iconInfo, 20, 20, "#00d", "icon"), span(commInfo), br()); + + if(null != release) { + if(getVerInt(version) < getVerInt(release)) + p.append(svg(iconInfo, 20, 20, "#00d", "icon"), span("Update available, current released version: " + release), br()); + else if(getVerInt(version) > getVerInt(release)) + p.append(svg(iconInfo, 20, 20, "#00d", "icon"), span("You are using a development version, current released version: " + release), br()); + } + document.getElementById("warn_info").replaceChildren(p); } @@ -228,14 +237,25 @@ parseGeneric(obj["generic"]); parseSys(obj); parseIv(obj["inverter"]); - parseWarnInfo(obj["warnings"], obj["infos"]); + parseWarnInfo(obj["warnings"], obj["infos"], obj["generic"]["version"]); if(exeOnce) { window.setInterval("tick()", 1000); exeOnce = false; + getAjax("https://api.github.com/repos/lumapu/ahoy/releases/latest", parseRelease); } } } + + function getVerInt(ver) { + var a = ver.split('.'); + return (a[0] << 24) | (a[1] << 16) | a[2]; + } + + function parseRelease(obj) { + release = obj["name"].substring(6); + } + getAjax("/api/index", parse);