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; } }