60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
const $ = (sel, root = document) => root.querySelector(sel);
|
|
const $$ = (sel, root = document) => Array.from(root.querySelectorAll(sel));
|
|
|
|
function bindErrorsFilter() {
|
|
const search = $('#errors-search');
|
|
if (!search) return;
|
|
const items = $$('#errorsAccordion .accordion-item');
|
|
|
|
const apply = () => {
|
|
const q = search.value.toLowerCase().trim();
|
|
items.forEach(it => {
|
|
const text = it.textContent.toLowerCase();
|
|
it.style.display = q && !text.includes(q) ? 'none' : '';
|
|
});
|
|
};
|
|
|
|
search.addEventListener('input', apply);
|
|
apply();
|
|
}
|
|
|
|
function bindEndpointsFilter() {
|
|
const tbody = $('#endpoints-tbody');
|
|
if (!tbody) return;
|
|
|
|
const input = $('#endpoints-search');
|
|
const empty = $('#endpoints-empty');
|
|
|
|
const applyFilter = () => {
|
|
const q = (input?.value || '').toLowerCase().trim();
|
|
let visible = 0;
|
|
|
|
$$('#endpoints-tbody tr').forEach(tr => {
|
|
const txt = tr.textContent.toLowerCase();
|
|
const show = !q || txt.includes(q);
|
|
tr.style.display = show ? '' : 'none';
|
|
if (show) visible++;
|
|
});
|
|
|
|
empty?.classList.toggle('d-none', visible !== 0);
|
|
};
|
|
|
|
input?.addEventListener('input', applyFilter);
|
|
applyFilter();
|
|
}
|
|
|
|
function init() {
|
|
bindErrorsFilter();
|
|
bindEndpointsFilter();
|
|
}
|
|
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', init);
|
|
} else {
|
|
init();
|
|
}
|
|
})();
|