diff --git a/js/admin.js b/js/admin.js index 1fe3b75..a0c4d86 100644 --- a/js/admin.js +++ b/js/admin.js @@ -100,11 +100,14 @@ function initEventListeners() { async function loadDashboardData() { try { const res = await fetch(`${API_URL}?action=get_films`, { cache: 'no-store' }); - allItems = await res.json(); + const data = await res.json(); // Reçoit {critiques: [...], videotheque: [...]} + dataStore = data; + const secRes = await fetch(`${API_URL}?action=check_security_status`, { cache: 'no-store' }); const secData = await secRes.json(); const banner = document.getElementById('security-banner'); if (banner) banner.style.display = secData.is_blank ? 'flex' : 'none'; + renderAdminTable(); } catch (err) { console.error('Erreur chargement :', err); } } @@ -118,15 +121,11 @@ function renderAdminTable() { const currentSearch = searchInput ? searchInput.value.toLowerCase() : ''; const physicalFilter = document.getElementById('admin-physical-checkbox'); - let filtered = allItems.filter(item => item.type === currentAdminTab); + // On prend directement la bonne liste dans dataStore + let filtered = dataStore[currentAdminTab] || []; - if (physicalFilter && physicalFilter.checked) { - filtered = filtered.filter(f => { - if (f.type === 'critique') { - return f.streaming && f.streaming.toLowerCase().includes('support physique'); - } - return true; - }); + if (physicalFilter && physicalFilter.checked && currentAdminTab === 'critique') { + filtered = filtered.filter(f => f.streaming && f.streaming.toLowerCase().includes('support physique')); } if (currentSearch) { @@ -176,7 +175,7 @@ function toggleSingleSelect(id, checkbox) { } function toggleSelectAll(source) { - const filtered = allItems.filter(item => item.type === currentAdminTab); + const filtered = dataStore[currentAdminTab] || []; if (source.checked) filtered.forEach(f => selectedIds.add(String(f.id))); else filtered.forEach(f => selectedIds.delete(String(f.id))); document.querySelectorAll('.film-checkbox').forEach(cb => { cb.checked = selectedIds.has(cb.value); });