mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-10 23:46:37 +02:00
improved menu (seperators)
added second level for reboot if reboot from menu was selected by mistake
This commit is contained in:
parent
3764aa4ce1
commit
f721116987
10 changed files with 58 additions and 77 deletions
|
@ -13,7 +13,7 @@
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 5
|
#define VERSION_MINOR 5
|
||||||
#define VERSION_PATCH 23
|
#define VERSION_PATCH 24
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
|
|
|
@ -1,3 +1,22 @@
|
||||||
|
/**
|
||||||
|
* GENERIC FUNCTIONS
|
||||||
|
*/
|
||||||
|
|
||||||
|
function topnav() {
|
||||||
|
toggle("topnav");
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseMenu(obj) {
|
||||||
|
var e = document.getElementById("topnav");
|
||||||
|
e.innerHTML = "";
|
||||||
|
for(var i = 0; i < obj["name"].length; i ++) {
|
||||||
|
if(obj["name"][i] == "-")
|
||||||
|
e.appendChild(span("", ["seperator"]));
|
||||||
|
else
|
||||||
|
e.appendChild(link(obj["link"][i], obj["name"][i], obj["trgt"][i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function toggle(id, hide) {
|
function toggle(id, hide) {
|
||||||
var elm = document.getElementById(id);
|
var elm = document.getElementById(id);
|
||||||
if(hide) {
|
if(hide) {
|
||||||
|
@ -36,6 +55,10 @@ function getAjax(url, ptr, method="GET", json=null) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CREATE DOM FUNCTIONS
|
||||||
|
*/
|
||||||
|
|
||||||
function des(val) {
|
function des(val) {
|
||||||
e = document.createElement('p');
|
e = document.createElement('p');
|
||||||
e.classList.add("subdes");
|
e.classList.add("subdes");
|
||||||
|
|
|
@ -85,20 +85,6 @@
|
||||||
getAjax("/api/setup", apiCb, "POST", JSON.stringify(obj));
|
getAjax("/api/setup", apiCb, "POST", JSON.stringify(obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
function topnav() {
|
|
||||||
toggle("topnav");
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMenu(obj) {
|
|
||||||
if(true == exeOnce) {
|
|
||||||
var e = document.getElementById("topnav");
|
|
||||||
e.innerHTML = "";
|
|
||||||
for(var i = 0; i < obj["name"].length; i ++) {
|
|
||||||
e.appendChild(link(obj["link"][i], obj["name"][i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseSys(obj) {
|
function parseSys(obj) {
|
||||||
// Disclaimer
|
// Disclaimer
|
||||||
//if(obj["disclaimer"] == false) sessionStorage.setItem("gDisclaimer", promptFunction());
|
//if(obj["disclaimer"] == false) sessionStorage.setItem("gDisclaimer", promptFunction());
|
||||||
|
@ -187,7 +173,8 @@
|
||||||
|
|
||||||
function parse(obj) {
|
function parse(obj) {
|
||||||
if(null != obj) {
|
if(null != obj) {
|
||||||
parseMenu(obj["menu"]);
|
if(true == exeOnce)
|
||||||
|
parseMenu(obj["menu"]);
|
||||||
parseSys(obj["system"]);
|
parseSys(obj["system"]);
|
||||||
parseStat(obj["statistics"]);
|
parseStat(obj["statistics"]);
|
||||||
parseIv(obj["inverter"]);
|
parseIv(obj["inverter"]);
|
||||||
|
|
|
@ -70,18 +70,6 @@
|
||||||
var con = document.getElementById("serial");
|
var con = document.getElementById("serial");
|
||||||
var exeOnce = true;
|
var exeOnce = true;
|
||||||
|
|
||||||
function topnav() {
|
|
||||||
toggle("topnav");
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMenu(obj) {
|
|
||||||
var e = document.getElementById("topnav");
|
|
||||||
e.innerHTML = "";
|
|
||||||
for(var i = 0; i < obj["name"].length; i ++) {
|
|
||||||
e.appendChild(link(obj["link"][i], obj["name"][i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseSys(obj) {
|
function parseSys(obj) {
|
||||||
var up = obj["ts_uptime"];
|
var up = obj["ts_uptime"];
|
||||||
var days = parseInt(up / 86400) % 365;
|
var days = parseInt(up / 86400) % 365;
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="setup" class="content">
|
<div id="setup" class="content">
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<a class="erase" href="/erase">ERASE SETTINGS (not WiFi)</a>
|
<a class="btn" href="/erase">ERASE SETTINGS (not WiFi)</a>
|
||||||
|
|
||||||
<form method="post" action="/save">
|
<form method="post" action="/save">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
@ -289,18 +289,6 @@
|
||||||
document.getElementsByName(i[0])[0].value = obj[i[1]];
|
document.getElementsByName(i[0])[0].value = obj[i[1]];
|
||||||
}
|
}
|
||||||
|
|
||||||
function topnav() {
|
|
||||||
toggle("topnav");
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMenu(obj) {
|
|
||||||
var e = document.getElementById("topnav");
|
|
||||||
e.innerHTML = "";
|
|
||||||
for(var i = 0; i < obj["name"].length; i ++) {
|
|
||||||
e.appendChild(link(obj["link"][i], obj["name"][i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseSys(obj) {
|
function parseSys(obj) {
|
||||||
for(var i of [["device", "device_name"], ["ssid", "ssid"]])
|
for(var i of [["device", "device_name"], ["ssid", "ssid"]])
|
||||||
document.getElementsByName(i[0])[0].value = obj[i[1]];
|
document.getElementsByName(i[0])[0].value = obj[i[1]];
|
||||||
|
|
|
@ -47,7 +47,7 @@ h2 {
|
||||||
padding-left: 80px !important
|
padding-left: 80px !important
|
||||||
}
|
}
|
||||||
|
|
||||||
.topnav span {
|
.topnav .icon span {
|
||||||
display: block;
|
display: block;
|
||||||
width: 30px;
|
width: 30px;
|
||||||
height: 3px;
|
height: 3px;
|
||||||
|
@ -57,6 +57,14 @@ h2 {
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span.seperator {
|
||||||
|
width: 100%;
|
||||||
|
height: 1px;
|
||||||
|
margin: 10px 0px 10px;
|
||||||
|
background-color: #444;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
/** old CSS below **/
|
/** old CSS below **/
|
||||||
|
|
||||||
p {
|
p {
|
||||||
|
@ -125,7 +133,7 @@ a:hover, a:focus {
|
||||||
color: #f00;
|
color: #f00;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.erase {
|
a.btn {
|
||||||
background-color: #006ec0;
|
background-color: #006ec0;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 7px;
|
padding: 7px;
|
||||||
|
|
|
@ -32,19 +32,6 @@
|
||||||
<p class="right" id="version"></p>
|
<p class="right" id="version"></p>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
function topnav() {
|
|
||||||
toggle("topnav");
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMenu(obj) {
|
|
||||||
var e = document.getElementById("topnav");
|
|
||||||
e.innerHTML = "";
|
|
||||||
for(var i = 0; i < obj["name"].length; i ++) {
|
|
||||||
e.appendChild(link(obj["link"][i], obj["name"][i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseSys(obj) {
|
function parseSys(obj) {
|
||||||
document.getElementById("version").appendChild(
|
document.getElementById("version").appendChild(
|
||||||
link("https://github.com/lumapu/ahoy/commits/" + obj["build"], "Git SHA: " + obj["build"] + " :: " + obj["version"], "_blank")
|
link("https://github.com/lumapu/ahoy/commits/" + obj["build"], "Git SHA: " + obj["build"] + " :: " + obj["version"], "_blank")
|
||||||
|
|
|
@ -28,20 +28,6 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var exeOnce = true;
|
var exeOnce = true;
|
||||||
|
|
||||||
function topnav() {
|
|
||||||
toggle("topnav");
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMenu(obj) {
|
|
||||||
if(true == exeOnce) {
|
|
||||||
var e = document.getElementById("topnav");
|
|
||||||
e.innerHTML = "";
|
|
||||||
for(var i = 0; i < obj["name"].length; i ++) {
|
|
||||||
e.appendChild(link(obj["link"][i], obj["name"][i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseSys(obj) {
|
function parseSys(obj) {
|
||||||
if(true == exeOnce) {
|
if(true == exeOnce) {
|
||||||
document.getElementById("version").appendChild(
|
document.getElementById("version").appendChild(
|
||||||
|
@ -133,7 +119,8 @@
|
||||||
|
|
||||||
function parse(obj) {
|
function parse(obj) {
|
||||||
if(null != obj) {
|
if(null != obj) {
|
||||||
parseMenu(obj["menu"]);
|
if(true == exeOnce)
|
||||||
|
parseMenu(obj["menu"]);
|
||||||
parseSys(obj["system"]);
|
parseSys(obj["system"]);
|
||||||
parseIv(obj["inverter"], obj);
|
parseIv(obj["inverter"], obj);
|
||||||
document.getElementById("refresh").innerHTML = obj["refresh_interval"];
|
document.getElementById("refresh").innerHTML = obj["refresh_interval"];
|
||||||
|
|
|
@ -160,8 +160,18 @@ void web::showNotFound(AsyncWebServerRequest *request) {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void web::onReboot(AsyncWebServerRequest *request) {
|
void web::onReboot(AsyncWebServerRequest *request) {
|
||||||
request->send(200, F("text/html"), F("<!doctype html><html><head><title>Rebooting ...</title><meta http-equiv=\"refresh\" content=\"10; URL=/\"></head><body>rebooting ... auto reload after 10s</body></html>"));
|
String content = "";
|
||||||
mMain->mShouldReboot = true;
|
int refresh = 120;
|
||||||
|
if(request->args() > 0) {
|
||||||
|
if(request->arg("reboot").toInt() == 1) {
|
||||||
|
refresh = 10;
|
||||||
|
content = F("reboot. Autoreload after 10 seconds");
|
||||||
|
mMain->mShouldReboot = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
content = F("<a href=\"/reboot?reboot=1\" class=\"btn\">Reboot</a> <a href=\"/\" class=\"btn\">cancel</a>");
|
||||||
|
request->send(200, F("text/html"), F("<!doctype html><html><head><title>Reboot</title><link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"/><meta http-equiv=\"refresh\" content=\"") + String(refresh) + F("; URL=/\"></head><body>") + content + F("</body></html>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -250,12 +250,15 @@ void webApi::getMenu(JsonObject obj) {
|
||||||
obj["link"][1] = "/serial";
|
obj["link"][1] = "/serial";
|
||||||
obj["name"][2] = "Setup";
|
obj["name"][2] = "Setup";
|
||||||
obj["link"][2] = "/setup";
|
obj["link"][2] = "/setup";
|
||||||
obj["name"][3] = "Update";
|
obj["name"][3] = "-";
|
||||||
obj["link"][3] = "/update";
|
|
||||||
obj["name"][4] = "REST API";
|
obj["name"][4] = "REST API";
|
||||||
obj["link"][4] = "/api";
|
obj["link"][4] = "/api";
|
||||||
obj["name"][5] = "Reboot";
|
obj["trgt"][4] = "_blank";
|
||||||
obj["link"][5] = "/reboot";
|
obj["name"][5] = "-";
|
||||||
|
obj["name"][6] = "Update";
|
||||||
|
obj["link"][6] = "/update";
|
||||||
|
obj["name"][7] = "Reboot";
|
||||||
|
obj["link"][7] = "/reboot";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue