diff --git a/Web/templates/main.html b/Web/templates/main.html index 21b2906..56da176 100755 --- a/Web/templates/main.html +++ b/Web/templates/main.html @@ -2419,29 +2419,29 @@ // Add these functions right after the loadFilterState() function function rebuildFilter3Options() { - if (!allItems || allItems.length === 0) return; + if (!allItems) return; // Get current filter 1 and filter 2 selections const filter1Selections = activeFilters.filter1; const filter2Selections = activeFilters.filter2; - // If both filters are empty, show all filter3 values + // If both filters are empty, show all filter3 values from server if (filter1Selections.length === 0 && filter2Selections.length === 0) { - // Get all unique filter3 values - const allFilter3Values = new Set(); + // Include dynamically added ones from loaded items too, just in case + const combinedFilter3Values = new Set(typeof allFilter3Values !== 'undefined' ? [...allFilter3Values] : []); allItems.forEach(item => { const filter3Array = Array.isArray(item.Filter3) ? item.Filter3 : (item.Filter3 ? [item.Filter3] : []); filter3Array.forEach(value => { if (value && typeof value === 'string' && value.trim() !== '') { - allFilter3Values.add(value); + combinedFilter3Values.add(value); } }); }); // Populate filter 3 dropdown with all values - populateFilterOptions('filter3-options', [...allFilter3Values].sort(), 3); + populateFilterOptions('filter3-options', [...combinedFilter3Values].sort(), 3); return; } @@ -3114,6 +3114,8 @@ cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; position: relative; + content-visibility: auto; + contain-intrinsic-size: 300px 450px; } .item-card:hover { transform: translateY(-5px); diff --git a/Web/templates/main_admin.html b/Web/templates/main_admin.html index b9c7283..2859f68 100755 --- a/Web/templates/main_admin.html +++ b/Web/templates/main_admin.html @@ -403,6 +403,8 @@ cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; position: relative; + content-visibility: auto; + contain-intrinsic-size: 300px 450px; } .item-card.bulk-selected { @@ -2876,30 +2878,29 @@ document.addEventListener('DOMContentLoaded', ()=>{ } function rebuildFilter3Options() { - if (!allItems || allItems.length === 0) return; + if (!allItems) return; // Get current filter 1 and filter 2 selections const filter1Selections = activeFilters.filter1; const filter2Selections = activeFilters.filter2; - // If both filters are empty, show all filter3 values + // If both filters are empty, show all filter3 values from server if (filter1Selections.length === 0 && filter2Selections.length === 0) { - // Get all unique filter3 values - const allFilter3Values = new Set(); + // Include dynamically added ones from loaded items too, just in case + const combinedFilter3Values = new Set(typeof allFilter3Values !== 'undefined' ? [...allFilter3Values] : []); allItems.forEach(item => { const filter3Array = Array.isArray(item.Filter3) ? item.Filter3 : - (item.Filter3 ? [item.Filter3] : []); + (item.Filter3 ? [item.Filter3] : []); filter3Array.forEach(value => { if (value && typeof value === 'string' && value.trim() !== '') { - allFilter3Values.add(value); + combinedFilter3Values.add(value); } }); }); // Populate filter 3 dropdown with all values - populateFilterOptions('filter3-options', [...allFilter3Values].sort(), 3); - return; + populateFilterOptions('filter3-options', [...combinedFilter3Values].sort(), 3); } // Filter items based on filter1 and filter2 selections