81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
|
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);
|
||
|
});
|
||
|
}
|