|
|
@@ -1,11 +1,55 @@
|
|
|
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 = `
|
|
|
+<tr>
|
|
|
+ <td>
|
|
|
+ <span class="badge badge-primary">${ap}</span>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <span class="badge text-inverse badge-warning">${rssi}</span>
|
|
|
+ </td>
|
|
|
+</tr>
|
|
|
+`;
|
|
|
+ $('#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) {
|
|
|
- this._FetchSignal = null;
|
|
|
+ let self = this;
|
|
|
+
|
|
|
+ this.abort = null;
|
|
|
this.modalClass = modalClass;
|
|
|
+ this.timer = null;
|
|
|
|
|
|
- let self = this;
|
|
|
|
|
|
$(modalClass).on('show.bs.modal', function () {
|
|
|
let labelID = $(`${modalClass} #labelID`).html();
|
|
|
@@ -13,66 +57,41 @@ export class ModalEslDetails {
|
|
|
});
|
|
|
|
|
|
$(modalClass).on('hide.bs.modal', function () {
|
|
|
- self._FetchSignal.abort();
|
|
|
+ self.abort();
|
|
|
+ clearTimeout(self.timer);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- _clearStatusModalFields() {
|
|
|
- $('#esl_rssi_list').html('');
|
|
|
- $('#svgpath').removeAttr('src');
|
|
|
-
|
|
|
- $('#cardbox_esl_status span').each((i, o) => {
|
|
|
- $('#cardbox_esl_status #' + o.id).html('');
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
OpenESLDetails(labelID) {
|
|
|
|
|
|
- this._FetchSignal = new AbortController();
|
|
|
-
|
|
|
- this._clearStatusModalFields();
|
|
|
+ clearStatusModalFields();
|
|
|
|
|
|
$(`${this.modalClass} #labelID`).html(labelID);
|
|
|
$(`${this.modalClass}`).modal('show');
|
|
|
}
|
|
|
|
|
|
- _fillESLDetails(ESLstatus) {
|
|
|
- this._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)) {
|
|
|
- let ap_rssi = `<tr><td><span class="badge badge-primary">${ap}</span></td><td><span class="badge text-inverse badge-warning">${rssi}</span></td></tr>`;
|
|
|
- $('#esl_rssi_list').append(ap_rssi);
|
|
|
- }
|
|
|
-
|
|
|
- if (ESLstatus.svgPath != null)
|
|
|
- $('#svgpath').prop('src', BASEURL + '/' + ESLstatus.svgPath);
|
|
|
- }
|
|
|
-
|
|
|
RefreshESLStatus(labelID) {
|
|
|
+ let self = this;
|
|
|
+
|
|
|
$('#spinnerloader').removeClass('d-none');
|
|
|
|
|
|
- let self = this;
|
|
|
|
|
|
- AjaxReq(`${BASEURL}/admin/config`, {
|
|
|
+ let req = AjaxReq(`${BASEURL}/admin/config`, {
|
|
|
method: 'POST',
|
|
|
- body: JSON.stringify({"method": "geteslstatus", "label_id": labelID}),
|
|
|
- signal: self._FetchSignal.signal
|
|
|
- })
|
|
|
+ body: JSON.stringify({"method": "geteslstatus", "label_id": labelID})
|
|
|
+ });
|
|
|
+
|
|
|
+ req.fetchPromise()
|
|
|
.then(json => {
|
|
|
- self._fillESLDetails(json);
|
|
|
+ fillESLDetails(json);
|
|
|
toastr.success(json.err);
|
|
|
if ($(this.modalClass).is(':visible'))
|
|
|
- setTimeout(function () {
|
|
|
+ self.timer = setTimeout(function () {
|
|
|
self.RefreshESLStatus(labelID);
|
|
|
}, 3000);
|
|
|
})
|
|
|
.catch(err => {
|
|
|
- if (err.name == 'AbortError')
|
|
|
+ if (err.name === 'AbortError')
|
|
|
return;
|
|
|
if (err.url !== undefined)
|
|
|
toastr.error(err.url, `${err.status} (${err.statusText})`);
|
|
|
@@ -81,5 +100,7 @@ export class ModalEslDetails {
|
|
|
}).finally(function () {
|
|
|
$('#spinnerloader').addClass('d-none');
|
|
|
});
|
|
|
+
|
|
|
+ this.abort = req.abort;
|
|
|
}
|
|
|
}
|