mirror of https://github.com/jeelabs/esp-link.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.2 KiB
76 lines
2.2 KiB
9 years ago
|
//===== 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")
|
||
9 years ago
|
inputs[i].onclick = function () { setMqtt(this.name, this.checked) };
|
||
9 years ago
|
}
|
||
|
}
|
||
|
|
||
|
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);
|
||
|
});
|
||
|
}
|