WiFlasher/wiflash_esp32/data/www/wiflash.js

65 lines
1.3 KiB
JavaScript

$( document ).ready(function() {
setInterval(getStatus, 10000);
getStatus();
getConfig();
$("#tabs button:first-child").click();
});
function getConfig() {
$.ajax({
url: "/api/config",
dataType: "json",
success: function(data) {
console.log(data);
unpackJson(data, "config");
}
});
}
function getStatus() {
$.ajax({
url: "/api/status",
dataType: "json",
success: function(data) {
console.log(data);
unpackJson(data, "status");
}
});
}
function switchTab(evt, name) {
$("#tabs button").removeClass("active");
$(evt.target).addClass("active");
$(".tab").hide();
$("#"+name).show();
}
function unpackJson(data, scope = false) {
scope = scope ? scope + "_" : "";
$.each(data, (key, value) => {
var id = scope + key;
if (isObject(value)) {
unpackJson(value, id);
} else {
var elmnt = $("#"+id);
if (elmnt.prop('type') == 'checkbox') {
elmnt.prop('checked', (value == "1") ? true : false);
} else {
elmnt.val(value);
}
}
});
}
function showPassword(input, button) {
if ($(button).prop('checked')) {
$(input).prop('type', "text");
} else {
$(input).prop('type', "password");
}
}
const isObject = (obj) => {
return Object.prototype.toString.call(obj) === '[object Object]';
};