From 6498723c4d618017904164e802683785880d4003 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 3 Jan 2022 20:44:04 +0100 Subject: [PATCH] Webserver newsettings add support for HandbremseMode --- main/webserver_newsettings.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/main/webserver_newsettings.cpp b/main/webserver_newsettings.cpp index 1116c27..564cb70 100644 --- a/main/webserver_newsettings.cpp +++ b/main/webserver_newsettings.cpp @@ -24,6 +24,7 @@ #include "newsettings.h" #include "webserver_lock.h" #include "ledstrip.h" +#include "handbremse.h" #ifdef FEATURE_WEBSERVER using namespace std::chrono_literals; @@ -53,7 +54,8 @@ typename std::enable_if< !std::is_same_v && !std::is_same_v && !std::is_same_v && - !std::is_same_v + !std::is_same_v && + !std::is_same_v , void>::type showInputForSetting(std::string_view key, T value, std::string &body) { @@ -214,6 +216,20 @@ showInputForSetting(std::string_view key, T value, std::string &body) body += esphttpdutils::htmlentities(enumKey); }); } + +template +typename std::enable_if< + std::is_same_v +, void>::type +showInputForSetting(std::string_view key, T value, std::string &body) +{ + HtmlTag select{"select", fmt::format("name=\"{}\"", esphttpdutils::htmlentities(key)), body}; + + iterateHandbremseMode([&](T enumVal, std::string_view enumKey){ + HtmlTag option{"option", fmt::format("value=\"{}\"{}", std::to_underlying(enumVal), value == enumVal ? " selected" : ""), body}; + body += esphttpdutils::htmlentities(enumKey); + }); +} } // namespace esp_err_t webserver_newSettings_handler(httpd_req_t *req) @@ -360,7 +376,8 @@ typename std::enable_if< !std::is_same_v && !std::is_same_v && !std::is_same_v && - !std::is_same_v + !std::is_same_v && + !std::is_same_v , tl::expected>::type saveSetting(ConfigWrapper &config, std::string_view newValue) { @@ -444,7 +461,8 @@ typename std::enable_if< std::is_same_v || std::is_same_v || std::is_same_v || - std::is_same_v + std::is_same_v || + std::is_same_v , tl::expected>::type saveSetting(ConfigWrapper &config, std::string_view newValue) {