Files
TDI-Dashboard/static/js/page_runs.js
T
2026-05-14 15:57:18 +02:00

42 lines
1.4 KiB
JavaScript

(function(){
var chkOk = document.getElementById('chk-completed');
var chkErr = document.getElementById('chk-incomplete');
var pnContainer = document.getElementById('filter-process-names');
// Build process_name checkboxes dynamically from table data
var rows = Array.from(document.querySelectorAll('tbody tr[data-process-name]'));
var names = [];
rows.forEach(function(tr) {
var n = tr.getAttribute('data-process-name');
if (n && names.indexOf(n) === -1) names.push(n);
});
names.sort();
var pnChecks = {}; // name → checkbox element
names.forEach(function(name) {
var lbl = document.createElement('label');
var chk = document.createElement('input');
chk.type = 'checkbox';
chk.checked = true;
chk.addEventListener('change', applyFilter);
pnChecks[name] = chk;
lbl.appendChild(chk);
lbl.appendChild(document.createTextNode(' ' + name));
pnContainer.appendChild(lbl);
});
function applyFilter() {
var showOk = chkOk.checked;
var showErr = chkErr.checked;
rows.forEach(function(tr) {
var done = tr.getAttribute('data-completed') === '1';
var pn = tr.getAttribute('data-process-name');
var pnOk = !pnChecks[pn] || pnChecks[pn].checked;
tr.style.display = (done ? showOk : showErr) && pnOk ? '' : 'none';
});
}
chkOk.addEventListener('change', applyFilter);
chkErr.addEventListener('change', applyFilter);
})();