From 8f9b2594fbb01b4e92c8f3181054ac43abb7b8d8 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sat, 30 May 2020 17:22:05 +0200 Subject: [PATCH 1/2] Made webpage scale better on phones --- src/webserver.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/webserver.h b/src/webserver.h index ca01466..c30f506 100644 --- a/src/webserver.h +++ b/src/webserver.h @@ -39,8 +39,12 @@ void initWebserver() { HtmlTag headTag{"head", content}; - HtmlTag titleTag{"title", content}; - content += "Bobbycar remote"; + { + HtmlTag titleTag{"title", content}; + content += "Bobbycar remote"; + } + + content += ""; } { From b3dd149c31fd7c732abd80c152dc2a9b48520026 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sat, 30 May 2020 17:51:38 +0200 Subject: [PATCH 2/2] Implemented web menu item click --- src/webserver.h | 50 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/src/webserver.h b/src/webserver.h index c30f506..90a9675 100644 --- a/src/webserver.h +++ b/src/webserver.h @@ -80,7 +80,9 @@ void initWebserver() if (i == selectedIndex) content += " style=\"border: 1px solid black;\""; - content += '>' + menuItem.text() + ""; + content += ">" + menuItem.text() + ""; i++; }); @@ -141,6 +143,44 @@ void initWebserver() webServer.send(302, "text/html", "ok"); }); + webServer.on("/triggerItem", HTTP_GET, [](){ + if (!webServer.hasArg("index")) + { + webServer.send(400, "text/plain", "index parameter missing"); + return; + } + + if (!currentDisplay) + { + webServer.send(400, "text/plain", "currentDisplay is null"); + return; + } + + auto *menuDisplay = currentDisplay->asMenuDisplay(); + if (!menuDisplay) + { + webServer.send(400, "text/plain", "currentDisplay is not a menu display"); + return; + } + + const auto indexStr = webServer.arg("index"); + + char *ptr; + const auto index = std::strtol(std::begin(indexStr), &ptr, 10); + + if (ptr != std::end(indexStr)) + { + webServer.send(400, "text/plain", "index could not be parsed"); + return; + } + + menuDisplay->itemPressed(index); + + webServer.sendHeader("Connection", "close"); + webServer.sendHeader("Location", "/"); + webServer.send(302, "text/html", "ok"); + }); + webServer.on("/setValue", HTTP_GET, [](){ if (!webServer.hasArg("value")) { @@ -157,16 +197,16 @@ void initWebserver() auto *changeValueDisplay = currentDisplay->asChangeValueDisplayInterface(); if (!changeValueDisplay) { - webServer.send(400, "text/plain", "currentDisplay is a change value display"); + webServer.send(400, "text/plain", "currentDisplay is not a change value display"); return; } const auto valueStr = webServer.arg("value"); - char *egal; - const auto value = std::strtol(std::begin(valueStr), &egal, 10); + char *ptr; + const auto value = std::strtol(std::begin(valueStr), &ptr, 10); - if (egal != std::end(valueStr)) + if (ptr != std::end(valueStr)) { webServer.send(400, "text/plain", "value could not be parsed"); return;