diff --git a/js/admin.js b/js/admin.js
index 6f5f323..e44263b 100644
--- a/js/admin.js
+++ b/js/admin.js
@@ -11,7 +11,7 @@ function getStarsHTML(rating) {
r = Math.min(Math.max(r, 0), 5);
const full = Math.floor(r);
const hasHalf = (r - full) >= 0.5;
- const empty = Math.max(0, 5 - Math.ceil(r));
+ const empty = Math.max(0, 5 - Math.ceil(r));
let html = '★'.repeat(full);
if (hasHalf) html += '★';
html += `${'☆'.repeat(empty)}`;
@@ -68,7 +68,6 @@ document.addEventListener('DOMContentLoaded', () => {
function initEventListeners() {
const filmForm = document.getElementById('film-form');
if (filmForm) filmForm.addEventListener('submit', saveFilmForm);
-
const csvInput = document.getElementById('csv-file');
if (csvInput) {
csvInput.addEventListener('change', (e) => {
@@ -76,13 +75,10 @@ function initEventListeners() {
else handleVideothequeUpload(e.target);
});
}
-
const searchInput = document.getElementById('search-input');
if (searchInput) searchInput.addEventListener('input', () => { currentPage = 1; renderAdminTable(); });
-
const selectAll = document.getElementById('select-all-checkbox');
if (selectAll) selectAll.addEventListener('change', (e) => toggleSelectAll(e.target));
-
document.addEventListener('click', (e) => {
if (e.target.classList.contains('modal-close') || e.target.closest('.modal-close')) {
const overlay = e.target.closest('.overlay');
@@ -90,7 +86,6 @@ function initEventListeners() {
}
if (e.target.classList.contains('overlay')) e.target.classList.remove('open');
});
-
const physicalFilter = document.getElementById('admin-physical-checkbox');
if (physicalFilter) physicalFilter.addEventListener('change', () => { currentPage = 1; renderAdminTable(); });
}
@@ -425,72 +420,25 @@ function normalizeVideothequeRow(row) {
async function handleVideothequeUpload(input) {
if (!input.files || input.files.length === 0) return;
let allData = [];
- for (const file of input.files) {
- try {
- allData = allData.concat(parseCSV(await file.text()));
- } catch(e) {
- console.error('Erreur parsing CSV:', e);
- }
- }
- if (allData.length === 0) {
- input.value = '';
- return alert('❌ Fichier vide.');
- }
-
+ for (const file of input.files) { try { allData = allData.concat(parseCSV(await file.text())); } catch(e) {} }
+ if (allData.length === 0) { input.value = ''; return alert('❌ Fichier vide.'); }
allData = allData.map(normalizeVideothequeRow);
showImportModal(allData.length, 'videotheque');
let processed = 0;
- let allDebugLogs = []; // 🔥 COLLECTER LES LOGS
-
for (let i = 0; i < allData.length; i += 3) {
const batch = allData.slice(i, i + 3);
try {
- const response = await fetch(`${API_URL}?action=import_batch`, {
- method: 'POST',
- headers: {
- 'Authorization': localStorage.getItem('token'),
- 'Content-Type': 'application/json'
- },
- body: JSON.stringify({ items: batch, type: 'videotheque' })
- });
-
- if (!response.ok) {
- const errText = await response.text();
- throw new Error(`Erreur serveur ${response.status}: ${errText}`);
- }
-
+ const response = await fetch(`${API_URL}?action=import_batch`, { method: 'POST', headers: { 'Authorization': localStorage.getItem('token'), 'Content-Type': 'application/json' }, body: JSON.stringify({ items: batch, type: 'videotheque' }) });
+ if (!response.ok) throw new Error(`Erreur serveur ${response.status}`);
const result = await response.json();
-
- // 🔥 COLLECTER LES LOGS DE DÉBOGAGE
- if (result.debug) {
- allDebugLogs = allDebugLogs.concat(result.debug);
- }
-
- if (!result.success) {
- throw new Error(result.error || "Erreur inconnue.");
- }
+ if (!result.success) throw new Error(result.error || "Erreur inconnue.");
} catch (err) {
- console.error('Erreur import:', err);
- closeImportModal();
- alert("❌ Échec de l'import : " + err.message);
- input.value = '';
- return;
+ closeImportModal(); alert("❌ Échec de l'import : " + err.message); input.value = ''; return;
}
processed += batch.length;
updateImportModal(processed, allData.length);
}
-
- input.value = '';
- closeImportModal();
-
- // 🔥 AFFICHER LES LOGS DANS LA CONSOLE
- if (allDebugLogs.length > 0) {
- console.log('=== LOGS D\'IMPORT VIDÉOTHÈQUE ===');
- allDebugLogs.forEach(log => console.log(log));
- console.log('==================================');
- console.log(`✅ ${allData.length} film(s) importé(s)`);
- }
-
+ input.value = ''; closeImportModal();
showSuccessModal(`${allData.length} support(s) importé(s) avec succès.`);
loadDashboardData();
}