diff --git a/main/webserver_newsettings.cpp b/main/webserver_newsettings.cpp index 564cb70..a8df0f8 100644 --- a/main/webserver_newsettings.cpp +++ b/main/webserver_newsettings.cpp @@ -55,6 +55,7 @@ typename std::enable_if< !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) @@ -217,6 +218,20 @@ showInputForSetting(std::string_view key, T value, std::string &body) }); } +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}; + + iterateLedstripAnimation([&](T enumVal, std::string_view enumKey){ + HtmlTag option{"option", fmt::format("value=\"{}\"{}", std::to_underlying(enumVal), value == enumVal ? " selected" : ""), body}; + body += esphttpdutils::htmlentities(enumKey); + }); +} + template typename std::enable_if< std::is_same_v @@ -377,6 +392,7 @@ 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) @@ -462,6 +478,7 @@ 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)