const api_url = window.location.protocol + "//" + window.location.hostname + ":" + window.location.port; const delay = (time) => { return new Promise((resolve) => setTimeout(resolve, time)); }; Object.prototype.disable = function () { var that = this; for (var i = 0, len = that.length; i < len; i++) { that[i].disabled = true; } return that; }; Object.prototype.enable = function () { var that = this; for (var i = 0, len = that.length; i < len; i++) { that[i].disabled = false; } return that; }; function init_main() { refresh_buttons(); } function disable_automatic_control() { if (is_automatic_control) { document.getElementById("control-disabled").checked = true; document.body.classList.add("loading"); fetch(api_url + "/control/disable", { method: "POST" }).then( async (response) => { let delayres = await delay(100); refresh_buttons(); } ); } } function enable_automatic_control() { if (!is_automatic_control) { document.getElementById("control-enabled").checked = true; document.body.classList.add("loading"); fetch(api_url + "/control/enable", { method: "POST" }).then( async (response) => { let delayres = await delay(100); refresh_buttons(); } ); } } function update_control_buttons(data) { document.body.classList.remove("loading"); console.log("got data"); console.log(data); is_automatic_control = data.enabled; if (is_automatic_control) { document.getElementById("control-enabled").checked = true; } else { document.getElementById("control-disabled").checked = true; } } function refresh_buttons() { console.log("get data"); console.log(api_url); fetch(api_url + "/control").then(async (response) => { console.log("got response"); json = await response.json(); console.log(json); update_control_buttons(json); }); }