/** * Test simple d'édition inline */ console.log('Script de test chargé'); document.addEventListener('DOMContentLoaded', function() { console.log('DOM chargé, initialisation du test...'); // Détecter les clics sur les cellules éditables document.addEventListener('click', function(e) { if (e.target.classList.contains('editable-cell')) { console.log('Cellule cliquée:', e.target); startEditing(e.target); } }); function startEditing(cell) { console.log('Début de l\'édition pour:', cell); if (cell.classList.contains('editing')) { console.log('Déjà en cours d\'édition'); return; } const currentValue = cell.textContent.trim(); console.log('Valeur actuelle:', currentValue); // Créer un input const input = document.createElement('input'); input.type = 'text'; input.value = currentValue; input.className = 'inline-edit-input form-control'; // Remplacer le contenu cell.innerHTML = ''; cell.appendChild(input); cell.classList.add('editing'); input.focus(); input.select(); console.log('Input créé et ajouté'); // Sauvegarder sur Enter input.addEventListener('keydown', function(e) { if (e.key === 'Enter') { saveEditing(cell, input.value); } else if (e.key === 'Escape') { cancelEditing(cell, currentValue); } }); // Sauvegarder automatiquement après 3 secondes setTimeout(() => { if (cell.classList.contains('editing')) { saveEditing(cell, input.value); } }, 3000); } function saveEditing(cell, newValue) { console.log('Sauvegarde:', newValue); cell.textContent = newValue; cell.classList.remove('editing'); // Afficher un message de succès showMessage('Valeur sauvegardée: ' + newValue, 'success'); } function cancelEditing(cell, originalValue) { console.log('Annulation'); cell.textContent = originalValue; cell.classList.remove('editing'); } function showMessage(message, type) { const alert = document.createElement('div'); alert.className = `alert alert-${type} alert-dismissible fade show`; alert.innerHTML = ` ${message} `; document.body.appendChild(alert); setTimeout(() => { alert.remove(); }, 3000); } console.log('Test d\'édition inline initialisé'); });