import {AjaxReq} from "./OMGUtils";
// Private Methods
function clearStatusModalFields() {
$('#esl_rssi_list').html('');
$('#svgtpl').html('');
$('#cardbox_esl_status span').each((i, o) => {
$('#cardbox_esl_status #' + o.id).html('');
});
}
function fillESLDetails(ESLstatus) {
clearStatusModalFields();
$('#cardbox_esl_status span').each((i, o) => {
let value = (ESLstatus.value.status[o.id]);
$('#cardbox_esl_status #' + o.id).html(value);
});
for (let [ap, rssi] of Object.entries(ESLstatus.value.rssi)) {
// language=HTML
let ap_rssi = `
|
${ap}
|
${rssi}
|
`;
$('#esl_rssi_list').append(ap_rssi);
}
if (ESLstatus.svgPath != null) {
// Retrieve SVG from server
$.get(BASEURL + '/' + ESLstatus.svgPath, data => {
$('#svgtpl').html(data);
}, "text");
}
}
// MAIN CLASS
export class ModalEslDetails {
constructor(modalClass) {
let self = this;
this.abort = null;
this.modalClass = modalClass;
this.timer = null;
$(modalClass).on('show.bs.modal', function () {
let labelID = $(`${modalClass} #labelID`).html();
self.RefreshESLStatus(labelID);
});
$(modalClass).on('hide.bs.modal', function () {
self.abort();
clearTimeout(self.timer);
});
}
OpenESLDetails(labelID) {
clearStatusModalFields();
$(`${this.modalClass} #labelID`).html(labelID);
$(`${this.modalClass}`).modal('show');
}
RefreshESLStatus(labelID) {
let self = this;
$('#spinnerloader').removeClass('d-none');
let req = AjaxReq(`${BASEURL}/admin/config`, {
method: 'POST',
body: JSON.stringify({"method": "geteslstatus", "label_id": labelID})
});
req.fetchPromise()
.then(json => {
fillESLDetails(json);
toastr.success(json.err);
if ($(this.modalClass).is(':visible'))
self.timer = setTimeout(function () {
self.RefreshESLStatus(labelID);
}, 3000);
})
.catch(err => console.log)
.finally(function () {
$('#spinnerloader').addClass('d-none');
});
this.abort = req.abort;
}
}