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);
}