diff --git a/index.html b/index.html index 5b240af..9272f07 100644 --- a/index.html +++ b/index.html @@ -71,6 +71,13 @@ let timeout; + function updateValue(tag, clazz, innerTag, value) { + const input = tag.getElementsByClassName(clazz)[0].getElementsByTagName(innerTag)[0]; + if (document.activeElement !== input) { + input.value = value; + } + } + function request(query = "") { if (timeout) { clearTimeout(timeout); @@ -85,12 +92,12 @@ title.innerText = data.hostname; for (let index = 0; index < data.relays.length; index++) { const relayData = data.relays[index]; - const tag = document.getElementById("relay" + index) || create(index); - tag.getElementsByClassName("name")[0].getElementsByTagName("input")[0].value = relayData.name; - tag.getElementsByClassName("state")[0].innerText = relayData.state ? "Ein" : "Aus"; - tag.getElementsByClassName("onMillis")[0].getElementsByTagName("input")[0].value = relayData.onMillis; - tag.getElementsByClassName("offMillis")[0].getElementsByTagName("input")[0].value = relayData.offMillis; - tag.getElementsByClassName("initial")[0].getElementsByTagName("select")[0].value = relayData.initial; + const relayTag = document.getElementById("relay" + index) || create(index); + updateValue(relayTag, "name", "input", relayData.name); + relayTag.getElementsByClassName("state")[0].innerText = relayData.state ? "Ein" : "Aus"; + updateValue(relayTag, "onMillis", "input", relayData.onMillis); + updateValue(relayTag, "offMillis", "input", relayData.offMillis); + updateValue(relayTag, "initial", "select", relayData.initial); } info.innerText = JSON.stringify(data, null, 2); }