light: hide extra toggle in webui

amend b5a03dac72
This commit is contained in:
Maxim Prokhorov
2023-01-12 03:16:07 +03:00
parent faeedee57f
commit 909949b5cc
22 changed files with 9829 additions and 9798 deletions

Binary file not shown.

View File

@@ -807,6 +807,10 @@ private:
LightTemperature _light_temperature;
#if RELAY_SUPPORT
auto _light_state_relay_id = RelaysMax;
#endif
bool _light_state_changed = false;
LightStateListener _light_state_listener = nullptr;
@@ -2568,9 +2572,9 @@ void _lightApiSetup() {
namespace {
bool _lightWebSocketOnKeyCheck(espurna::StringView key, const JsonVariant&) {
return espurna::settings::query::samePrefix(key, STRING_VIEW("light"))
|| espurna::settings::query::samePrefix(key, STRING_VIEW("use"))
|| espurna::settings::query::samePrefix(key, STRING_VIEW("lt"));
return key.startsWith(STRING_VIEW("light"))
|| key.startsWith(STRING_VIEW("use"))
|| key.startsWith(STRING_VIEW("lt"));
}
void _lightWebSocketStatus(JsonObject& root) {
@@ -2604,6 +2608,9 @@ void _lightWebSocketOnVisible(JsonObject& root) {
wsPayloadModule(root, PSTR("light"));
JsonObject& light = root.createNestedObject("light");
#if RELAY_SUPPORT
light["state_relay_id"] = _light_state_relay_id;
#endif
JsonArray& channels = light.createNestedArray("channels");
@@ -3589,6 +3596,7 @@ void _lightSettingsMigrate(int version) {
RelayProviderBasePtr lightMakeStateRelayProvider(size_t id) {
#if RELAY_SUPPORT
if (!_light_state_listener) {
_light_state_relay_id = id;
_light_state_listener = [id](bool state) {
relayStatus(id, state);
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1681,6 +1681,9 @@ function relayToggle(event) {
function initRelayToggle(id, cfg) {
let line = loadConfigTemplate("relay-control");
let root = line.querySelector("div");
root.classList.add(`relay-control-${id}`);
let name = line.querySelector("span[data-key='relayName']");
name.textContent = cfg.relayName;
name.dataset["id"] = id;
@@ -2170,6 +2173,12 @@ function colorUpdate(mode, value) {
}
}
function lightStateHideRelay(id) {
styleInject([
styleVisible(`.relay-control-${id}`, false)
]);
}
function initLightState() {
const toggle = document.getElementById("light-state-value");
toggle.addEventListener("change", (event) => {
@@ -2290,6 +2299,10 @@ function updateLight(data) {
updateLightState(value);
break;
case "state_relay_id":
lightStateHideRelay(value);
break;
case "channels":
initLightState();
initBrightness();