From bc83dc5b5a05b1bbbb6be0a154501941e9401488 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 3 Jan 2022 20:41:50 +0100 Subject: [PATCH] Webserver newsettings add support for OtaAnimationModes --- 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 3ce176b..1116c27 100644 --- a/main/webserver_newsettings.cpp +++ b/main/webserver_newsettings.cpp @@ -23,6 +23,7 @@ // local includes #include "newsettings.h" #include "webserver_lock.h" +#include "ledstrip.h" #ifdef FEATURE_WEBSERVER using namespace std::chrono_literals; @@ -51,7 +52,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) { @@ -198,6 +200,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}; + + iterateOtaAnimationModes([&](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) @@ -343,7 +359,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) { @@ -426,7 +443,8 @@ template typename std::enable_if< 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) {