|
|
|
//===== MQTT cards
|
|
|
|
|
|
|
|
function changeMqtt(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
var url = "mqtt?1=1";
|
|
|
|
var i, inputs = document.querySelectorAll('#mqtt-form input');
|
|
|
|
for (i = 0; i < inputs.length; i++) {
|
|
|
|
if (inputs[i].type != "checkbox")
|
|
|
|
url += "&" + inputs[i].name + "=" + inputs[i].value;
|
|
|
|
};
|
|
|
|
|
|
|
|
hideWarning();
|
|
|
|
var cb = $("#mqtt-button");
|
|
|
|
addClass(cb, 'pure-button-disabled');
|
|
|
|
ajaxSpin("POST", url, function (resp) {
|
|
|
|
showNotification("MQTT updated");
|
|
|
|
removeClass(cb, 'pure-button-disabled');
|
|
|
|
}, function (s, st) {
|
|
|
|
showWarning("Error: " + st);
|
|
|
|
removeClass(cb, 'pure-button-disabled');
|
|
|
|
window.setTimeout(fetchMqtt, 100);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function displayMqtt(data) {
|
|
|
|
Object.keys(data).forEach(function (v) {
|
|
|
|
el = $("#" + v);
|
|
|
|
if (el != null) {
|
|
|
|
if (el.nodeName === "INPUT") el.value = data[v];
|
|
|
|
else el.innerHTML = data[v];
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
el = document.querySelector('input[name="' + v + '"]');
|
|
|
|
if (el != null) {
|
|
|
|
if (el.type == "checkbox") el.checked = data[v] > 0;
|
|
|
|
else el.value = data[v];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
$("#mqtt-spinner").setAttribute("hidden", "");
|
|
|
|
$("#mqtt-status-spinner").setAttribute("hidden", "");
|
|
|
|
$("#mqtt-form").removeAttribute("hidden");
|
|
|
|
$("#mqtt-status-form").removeAttribute("hidden");
|
|
|
|
|
|
|
|
var i, inputs = $("input");
|
|
|
|
for (i = 0; i < inputs.length; i++) {
|
|
|
|
if (inputs[i].type == "checkbox")
|
|
|
|
inputs[i].onclick = function () { setMqtt(this.name, this.checked) };
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function fetchMqtt() {
|
|
|
|
ajaxJson("GET", "/mqtt", displayMqtt, function () {
|
|
|
|
window.setTimeout(fetchMqtt, 1000);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function changeMqttStatus(e) {
|
|
|
|
e.preventDefault();
|
|
|
|
var v = document.querySelector('input[name="mqtt-status-topic"]').value;
|
|
|
|
ajaxSpin("POST", "/mqtt?mqtt-status-topic=" + v, function () {
|
|
|
|
showNotification("MQTT status settings updated");
|
|
|
|
}, function (s, st) {
|
|
|
|
showWarning("Error: " + st);
|
|
|
|
window.setTimeout(fetchMqtt, 100);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
function setMqtt(name, v) {
|
|
|
|
ajaxSpin("POST", "/mqtt?" + name + "=" + (v ? 1 : 0), function () {
|
|
|
|
var n = name.replace("-enable", "");
|
|
|
|
showNotification(n + " is now " + (v ? "enabled" : "disabled"));
|
|
|
|
}, function () {
|
|
|
|
showWarning("Enable/disable failed");
|
|
|
|
window.setTimeout(fetchMqtt, 100);
|
|
|
|
});
|
|
|
|
}
|