refact: unify js and css

This commit is contained in:
2025-08-17 05:48:27 +02:00
parent dcd88bd383
commit 3fd49d1351
16 changed files with 2924 additions and 247 deletions

View File

@@ -64,8 +64,6 @@ class CouncilPreparation {
// Setup advanced features
this.setupAdvancedFeatures();
console.log('✅ CouncilPreparation initialized successfully');
console.log('🎯 Focus Manager ready:', !!this.focusManager);
} catch (error) {
console.error('Erreur initialisation CouncilPreparation:', error);
@@ -539,7 +537,6 @@ class AutoSaveManager {
bindManualSaveButtons() {
// Boutons supprimés de l'interface - auto-sauvegarde uniquement
console.log('📝 Auto-sauvegarde activée - Pas de boutons manuels');
}
setupCharacterCounter(textarea, studentId) {
@@ -883,7 +880,6 @@ class FocusManager {
// Utiliser la délégation d'événement pour gérer plusieurs boutons
document.addEventListener('click', (e) => {
if (e.target.matches('[data-toggle-focus-mode]') || e.target.closest('[data-toggle-focus-mode]')) {
console.log('🎯 Bouton Mode Focus cliqué !');
e.preventDefault();
this.toggleFocusMode();
}
@@ -927,7 +923,6 @@ class FocusManager {
toggleFocusMode(forcedState = null) {
const newState = forcedState !== null ? forcedState : !this.parent.state.isFocusMode;
console.log(`🔄 Basculement vers mode: ${newState ? 'FOCUS' : 'LISTE'}`);
this.parent.state.isFocusMode = newState;
if (newState) {
@@ -951,7 +946,6 @@ class FocusManager {
// Sauvegarder l'état
localStorage.setItem('council-focus-mode', 'true');
console.log('✨ Mode focus activé - Focus sur première appréciation');
}
exitFocusMode() {
@@ -1100,14 +1094,12 @@ class FocusManager {
}
bindFocusStudentEvents(clonedStudent, studentId) {
console.log(`🔧 Attachement des événements pour l'élève ${studentId} en mode focus`);
// 1. Événements textarea avec synchronisation bidirectionnelle
const textarea = clonedStudent.querySelector(`[data-appreciation-textarea][data-student-id="${studentId}"]`);
if (textarea) {
// Handler de sauvegarde avec synchronisation
const saveHandler = this.parent.autoSaveManager.debounce(() => {
console.log(`💾 Sauvegarde en focus pour élève ${studentId}`);
this.saveFocusAppreciation(studentId, textarea.value);
}, this.parent.options.debounceTime);
@@ -1122,7 +1114,6 @@ class FocusManager {
// Événement blur avec sauvegarde immédiate
textarea.addEventListener('blur', () => {
if (this.parent.state.modifiedAppreciations.has(studentId)) {
console.log(`💾 Sauvegarde blur en focus pour élève ${studentId}`);
this.saveFocusAppreciation(studentId, textarea.value, true);
}
});
@@ -1132,14 +1123,12 @@ class FocusManager {
}
// 2. Boutons supprimés - auto-sauvegarde uniquement
console.log(`🔧 Mode focus: Auto-sauvegarde configurée pour élève ${studentId}`);
// 4. Gestion des barres de progression
this.setupProgressBars(clonedStudent);
}
ensureAllSectionsVisible(clonedStudent) {
console.log('🔍 Vérification de la visibilité de toutes les sections en mode focus');
// S'assurer que les sections compétences/domaines sont visibles
const competenceSection = clonedStudent.querySelector('.competence-domain-section');
@@ -1147,7 +1136,6 @@ class FocusManager {
competenceSection.style.display = 'block';
competenceSection.style.minHeight = '200px';
competenceSection.style.flexShrink = '0';
console.log('✅ Section compétences/domaines visible');
}
// S'assurer que les barres de progression sont configurées
@@ -1157,20 +1145,17 @@ class FocusManager {
});
// Section info supprimée - maintenant intégrée dans la zone d'appréciation
console.log('✅ Informations intégrées dans la zone d\'appréciation');
// S'assurer que les résultats d'évaluation sont visibles
const evaluationResults = clonedStudent.querySelector('.evaluation-results');
if (evaluationResults) {
evaluationResults.style.display = 'block';
console.log('✅ Section résultats d\'évaluation visible');
}
// S'assurer que la section progress-bars est visible
const progressBarsSection = clonedStudent.querySelector('.progress-bars');
if (progressBarsSection) {
progressBarsSection.style.display = 'block';
console.log('✅ Section barres de progression visible');
}
}
@@ -1568,7 +1553,6 @@ class FocusManager {
if (!originalStudent || !focusStudent) return;
// Synchroniser les valeurs des barres si nécessaire
console.log(`🔄 Synchronisation des barres de progression pour l'élève ${studentId}`);
}
async saveFocusAppreciation(studentId, appreciation, immediate = false) {
@@ -1591,7 +1575,6 @@ class FocusManager {
const result = await response.json();
if (response.ok && result.success) {
console.log(`✅ Sauvegarde réussie en focus pour élève ${studentId}`);
this.showFocusSavedState(studentId);
this.parent.state.modifiedAppreciations.delete(studentId);
@@ -1696,7 +1679,6 @@ class FocusManager {
setTimeout(() => {
const textarea = clonedStudent.querySelector('[data-appreciation-textarea]');
if (textarea) {
console.log('🎯 Focus automatique sur le textarea d\'appréciation');
textarea.focus();
// Positionner le curseur à la fin du texte existant
@@ -1738,7 +1720,6 @@ class FocusManager {
if (this.parent.state.focusCurrentIndex > 0) {
this.parent.state.focusCurrentIndex--;
this.showCurrentStudent();
console.log('⬅️ Navigation vers élève précédent avec focus sur appréciation');
}
}
@@ -1746,7 +1727,6 @@ class FocusManager {
if (this.parent.state.focusCurrentIndex < this.parent.state.filteredStudents.length - 1) {
this.parent.state.focusCurrentIndex++;
this.showCurrentStudent();
console.log('➡️ Navigation vers élève suivant avec focus sur appréciation');
}
}
@@ -1788,10 +1768,6 @@ class FocusManager {
// Debug des hauteurs
const containerHeight = focusContainer.offsetHeight;
const studentHeight = student.offsetHeight;
console.log(`🎯 Mode focus optimisé:`);
console.log(` Container height: ${containerHeight}px`);
console.log(` Student height: ${studentHeight}px`);
console.log(` Window height: ${window.innerHeight}px`);
}
preserveJsonDataBeforeCloning(originalStudent) {