Actualiser js/admin.js
This commit is contained in:
+38
-4
@@ -5,8 +5,8 @@ let currentAdminTab = 'critique';
|
||||
// ── INITIALISATION ──
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
loadDashboardData();
|
||||
initEventListeners();
|
||||
|
||||
// Attacher l'événement pour la modale de suppression
|
||||
const confirmBtn = document.getElementById('confirm-btn');
|
||||
if(confirmBtn) {
|
||||
confirmBtn.addEventListener('click', () => {
|
||||
@@ -16,6 +16,31 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
});
|
||||
|
||||
function initEventListeners() {
|
||||
// 1. Soumission du formulaire Film
|
||||
const filmForm = document.getElementById('film-form');
|
||||
if (filmForm) filmForm.addEventListener('submit', saveFilmForm);
|
||||
|
||||
// 2. Import CSV
|
||||
const csvInput = document.getElementById('csv-file');
|
||||
if (csvInput) csvInput.addEventListener('change', (e) => handleCsvUpload(e.target));
|
||||
|
||||
// 3. Sauvegarde du mot de passe (Adapter l'ID si nécessaire selon votre HTML)
|
||||
const savePwdBtn = document.getElementById('save-password-btn');
|
||||
if (savePwdBtn) savePwdBtn.addEventListener('click', saveNewPassword);
|
||||
|
||||
// 4. Fermeture générique des modales (clic sur la croix ou sur le fond sombre)
|
||||
document.addEventListener('click', (e) => {
|
||||
if (e.target.classList.contains('modal-close') || e.target.closest('.modal-close')) {
|
||||
const overlay = e.target.closest('.overlay');
|
||||
if (overlay) overlay.classList.remove('open');
|
||||
}
|
||||
if (e.target.classList.contains('overlay')) {
|
||||
e.target.classList.remove('open');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function loadDashboardData() {
|
||||
try {
|
||||
const res = await fetch(`${API_URL}?action=get_films`);
|
||||
@@ -164,21 +189,27 @@ async function saveFilmForm(e) {
|
||||
}
|
||||
|
||||
// ── MODALES & UI ──
|
||||
function toggleFormFields() {
|
||||
const critFields = document.getElementById('form-critique-fields');
|
||||
const vidFields = document.getElementById('form-videotheque-fields');
|
||||
if(critFields) critFields.style.display = currentAdminTab === 'critique' ? 'block' : 'none';
|
||||
if(vidFields) vidFields.style.display = currentAdminTab === 'videotheque' ? 'block' : 'none';
|
||||
}
|
||||
|
||||
function switchAdminTab(tabName) {
|
||||
currentAdminTab = tabName;
|
||||
document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));
|
||||
const btn = document.getElementById(`btn-tab-${tabName}`);
|
||||
if(btn) btn.classList.add('active');
|
||||
|
||||
document.getElementById('form-critique-fields').style.display = tabName === 'critique' ? 'block' : 'none';
|
||||
document.getElementById('form-videotheque-fields').style.display = tabName === 'videotheque' ? 'block' : 'none';
|
||||
|
||||
toggleFormFields();
|
||||
renderAdminTable();
|
||||
}
|
||||
|
||||
function openAddModal() {
|
||||
document.getElementById('film-form').reset();
|
||||
document.getElementById('f-id').value = '';
|
||||
toggleFormFields(); // Affiche les bons champs selon l'onglet actif
|
||||
document.getElementById('admin-modal').classList.add('open');
|
||||
}
|
||||
|
||||
@@ -192,6 +223,8 @@ function openEditModal(id) {
|
||||
document.getElementById('f-director').value = item.director || '';
|
||||
document.getElementById('f-poster').value = item.poster || '';
|
||||
|
||||
toggleFormFields(); // Affiche les bons champs selon l'onglet actif
|
||||
|
||||
if(currentAdminTab === 'critique') {
|
||||
document.getElementById('f-rating').value = item.rating || 3;
|
||||
document.getElementById('f-review').value = item.review || '';
|
||||
@@ -239,6 +272,7 @@ async function handleCsvUpload(input) {
|
||||
if (!input.files[0]) return;
|
||||
const formData = new FormData();
|
||||
formData.append('csv_file', input.files[0]);
|
||||
formData.append('type', currentAdminTab); // BUG CORRIGÉ : On envoie le type de l'onglet actif
|
||||
await fetch(`${API_URL}?action=import_csv`, {
|
||||
method: 'POST',
|
||||
headers: { 'Authorization': localStorage.getItem('token') },
|
||||
|
||||
Reference in New Issue
Block a user