document.addEventListener('DOMContentLoaded', function () { // Confirmation data-confirm sur les formulaires (evite confirm() inline bloqué par CSP) document.querySelectorAll('form[data-confirm]').forEach(function (form) { form.addEventListener('submit', function (e) { var msg = form.getAttribute('data-confirm') || 'Confirmer ?'; if (!window.confirm(msg)) { e.preventDefault(); } }); }); // Sélection globale articles var checkAll = document.getElementById('check-all'); if (checkAll) { checkAll.addEventListener('change', function () { document.querySelectorAll('.bulk-check').forEach(function (cb) { cb.checked = checkAll.checked; }); }); } // Indicateurs de traitement formulaire SMTP (config + tester connexion) var smtpForm = document.getElementById('smtp-config-form'); if (smtpForm) { smtpForm.addEventListener('submit', function (e) { var clicked = e.submitter; if (!clicked) return; smtpForm.querySelectorAll('button[type="submit"]').forEach(function (btn) { btn.disabled = true; }); var isSave = clicked.id === 'smtp-save-btn'; clicked.innerHTML = '' + (isSave ? 'Enregistrement…' : 'En cours…'); }); } // Indicateur de traitement envoi email de test var smtpTestForm = document.getElementById('smtp-test-form'); if (smtpTestForm) { smtpTestForm.addEventListener('submit', function () { var btn = document.getElementById('smtp-send-btn'); if (btn) { btn.disabled = true; btn.innerHTML = 'En cours…'; } }); } // Suppression groupée avec confirmation (remplace onclick inline) var bulkDeleteBtn = document.getElementById('bulk-delete-btn'); if (bulkDeleteBtn) { bulkDeleteBtn.addEventListener('click', function (e) { var checked = document.querySelectorAll('.bulk-check:checked').length; if (checked === 0) { e.preventDefault(); return; } var msg = bulkDeleteBtn.getAttribute('data-confirm-bulk') || 'Confirmer ?'; if (!window.confirm(msg)) { e.preventDefault(); } }); } // Ajout d'un article à un livre (remplace onchange="bookAddArticle(this)") var bookArticleSel = document.getElementById('book-article-select'); if (bookArticleSel) { bookArticleSel.addEventListener('change', function () { var slug = bookArticleSel.value; if (!slug) { return; } var ta = document.getElementById('book-articles-ta'); var lines = ta.value.split('\n').map(function (s) { return s.trim(); }).filter(Boolean); if (lines.indexOf(slug) === -1) { lines.push(slug); ta.value = lines.join('\n'); } bookArticleSel.value = ''; }); } });