Hide retired batteries by default, filter to show them

This commit is contained in:
2026-04-14 20:09:56 -05:00
parent e4130bb329
commit fa5891d073
+11 -3
View File
@@ -103,6 +103,7 @@
<div id="filter-bar" style="display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;margin-bottom:0.75rem;"> <div id="filter-bar" style="display:flex;gap:0.5rem;flex-wrap:wrap;align-items:center;margin-bottom:0.75rem;">
<select id="filter-status" onchange="applyFilters()" style="padding:0.25rem 0.5rem;font-size:0.85rem;border:1px solid #cbd5e1;border-radius:4px;"> <select id="filter-status" onchange="applyFilters()" style="padding:0.25rem 0.5rem;font-size:0.85rem;border:1px solid #cbd5e1;border-radius:4px;">
<option value="active" selected>Active (non-retired)</option>
<option value="">All Statuses</option> <option value="">All Statuses</option>
<option value="available">Available</option> <option value="available">Available</option>
<option value="installed">Installed</option> <option value="installed">Installed</option>
@@ -361,14 +362,18 @@ function applyFilters() {
var size = document.getElementById('filter-size').value; var size = document.getElementById('filter-size').value;
var storage = document.getElementById('filter-storage').value; var storage = document.getElementById('filter-storage').value;
var text = document.getElementById('filter-text').value.trim().toLowerCase(); var text = document.getElementById('filter-text').value.trim().toLowerCase();
var anyActive = status || brand || size || storage || text; var anyActive = (status && status !== 'active') || brand || size || storage || text;
document.getElementById('filter-reset').style.display = anyActive ? '' : 'none'; document.getElementById('filter-reset').style.display = anyActive ? '' : 'none';
var rows = document.querySelectorAll('tbody tr[data-brand]'); var rows = document.querySelectorAll('tbody tr[data-brand]');
var visible = 0; var visible = 0;
rows.forEach(function(row) { rows.forEach(function(row) {
var show = true; var show = true;
if (status && row.dataset.status !== status) show = false; if (status === 'active') {
if (row.dataset.status === 'retired') show = false;
} else if (status) {
if (row.dataset.status !== status) show = false;
}
if (brand && row.dataset.brand !== brand) show = false; if (brand && row.dataset.brand !== brand) show = false;
if (size && row.dataset.size !== size) show = false; if (size && row.dataset.size !== size) show = false;
if (storage && row.dataset.storage !== storage) show = false; if (storage && row.dataset.storage !== storage) show = false;
@@ -427,7 +432,8 @@ function quickAssign(action, batteryId) {
} }
function resetFilters() { function resetFilters() {
['filter-status','filter-brand','filter-size','filter-storage'].forEach(function(id) { document.getElementById('filter-status').value = 'active';
['filter-brand','filter-size','filter-storage'].forEach(function(id) {
document.getElementById(id).value = ''; document.getElementById(id).value = '';
}); });
document.getElementById('filter-text').value = ''; document.getElementById('filter-text').value = '';
@@ -568,5 +574,7 @@ function bulkStorageChanged(sel) {
hidden.value = sel.value; hidden.value = sel.value;
} }
} }
applyFilters();
</script> </script>
{% endblock %} {% endblock %}