diff --git a/templates/dashboard.html b/templates/dashboard.html index 97679ce..9add3ca 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -129,6 +129,10 @@ + + @@ -219,7 +223,7 @@ {% for b in batteries %} - + {{ b.label }} {{ b.brand }} @@ -371,7 +375,11 @@ function applyFilters() { var size = document.getElementById('filter-size').value; var storage = document.getElementById('filter-storage').value; var text = document.getElementById('filter-text').value.trim().toLowerCase(); - var anyActive = (status && status !== 'active') || brand || size || storage || text; + var rangeFromVal = document.getElementById('filter-range-from').value.trim(); + var rangeToVal = document.getElementById('filter-range-to').value.trim(); + var rangeMin = rangeFromVal !== '' ? parseInt(rangeFromVal, 10) : null; + var rangeMax = rangeToVal !== '' ? parseInt(rangeToVal, 10) : null; + var anyActive = (status && status !== 'active') || brand || size || storage || text || rangeFromVal || rangeToVal; document.getElementById('filter-reset').style.display = anyActive ? '' : 'none'; var rows = document.querySelectorAll('tbody tr[data-brand]'); @@ -387,6 +395,14 @@ function applyFilters() { if (size && row.dataset.size !== size) show = false; if (storage && row.dataset.storage !== storage) show = false; if (text && row.textContent.toLowerCase().indexOf(text) === -1) show = false; + if (rangeMin !== null || rangeMax !== null) { + var lbl = row.dataset.label || ''; + var m = lbl.match(/(\d+)\s*$/); + var n = m ? parseInt(m[1], 10) : null; + if (n === null) show = false; + else if (rangeMin !== null && n < rangeMin) show = false; + else if (rangeMax !== null && n > rangeMax) show = false; + } row.dataset.filteredOut = show ? '' : '1'; if (show) filtered++; }); @@ -468,6 +484,8 @@ function resetFilters() { document.getElementById(id).value = ''; }); document.getElementById('filter-text').value = ''; + document.getElementById('filter-range-from').value = ''; + document.getElementById('filter-range-to').value = ''; applyFilters(); }