Implemented value input in webserver
This commit is contained in:
@@ -83,7 +83,10 @@ void initWebserver()
|
|||||||
}
|
}
|
||||||
else if (const auto *changeValueDisplay = currentDisplay->asChangeValueDisplayInterface())
|
else if (const auto *changeValueDisplay = currentDisplay->asChangeValueDisplayInterface())
|
||||||
{
|
{
|
||||||
content += "<input type=\"number\" value=\"" + String{changeValueDisplay->shownValue()} + "\" />";
|
content += "<form action=\"/setValue\" method=\"GET\">";
|
||||||
|
content += "<input type=\"number\" name=\"value\" value=\"" + String{changeValueDisplay->shownValue()} + "\" />";
|
||||||
|
content += "<button type=\"submit\">Update</button>";
|
||||||
|
content += "</form>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -134,6 +137,44 @@ void initWebserver()
|
|||||||
webServer.send(302, "text/html", "ok");
|
webServer.send(302, "text/html", "ok");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
webServer.on("/setValue", HTTP_GET, [](){
|
||||||
|
if (!webServer.hasArg("value"))
|
||||||
|
{
|
||||||
|
webServer.send(400, "text/plain", "value parameter missing");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!currentDisplay)
|
||||||
|
{
|
||||||
|
webServer.send(400, "text/plain", "currentDisplay is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto *changeValueDisplay = currentDisplay->asChangeValueDisplayInterface();
|
||||||
|
if (!changeValueDisplay)
|
||||||
|
{
|
||||||
|
webServer.send(400, "text/plain", "currentDisplay is a change value display");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto valueStr = webServer.arg("value");
|
||||||
|
|
||||||
|
char *egal;
|
||||||
|
const auto value = std::strtol(std::begin(valueStr), &egal, 10);
|
||||||
|
|
||||||
|
if (egal != std::end(valueStr))
|
||||||
|
{
|
||||||
|
webServer.send(400, "text/plain", "value could not be parsed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
changeValueDisplay->setShownValue(value);
|
||||||
|
|
||||||
|
webServer.sendHeader("Connection", "close");
|
||||||
|
webServer.sendHeader("Location", "/");
|
||||||
|
webServer.send(302, "text/html", "ok");
|
||||||
|
});
|
||||||
|
|
||||||
webServer.begin();
|
webServer.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user