feat: compact concil page
This commit is contained in:
@@ -360,12 +360,39 @@ class FilterManager {
|
||||
const trimesterSelector = this.parent.elements.trimesterSelector;
|
||||
if (!trimesterSelector) return;
|
||||
|
||||
trimesterSelector.addEventListener('change', (e) => {
|
||||
const newTrimester = parseInt(e.target.value);
|
||||
if (newTrimester !== this.parent.state.currentTrimester) {
|
||||
this.changeTrimester(newTrimester);
|
||||
}
|
||||
});
|
||||
// Support pour les nouveaux boutons tabs
|
||||
if (trimesterSelector.hasAttribute('data-trimester-selector')) {
|
||||
// Navigation tabs - écouter les clics sur les boutons
|
||||
const trimesterTabs = trimesterSelector.querySelectorAll('[data-trimester-tab]');
|
||||
trimesterTabs.forEach(tab => {
|
||||
tab.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
const newTrimester = parseInt(tab.dataset.trimesterTab);
|
||||
if (newTrimester !== this.parent.state.currentTrimester) {
|
||||
this.changeTrimester(newTrimester);
|
||||
}
|
||||
});
|
||||
|
||||
// Support clavier pour accessibilité
|
||||
tab.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Enter' || e.key === ' ') {
|
||||
e.preventDefault();
|
||||
const newTrimester = parseInt(tab.dataset.trimesterTab);
|
||||
if (newTrimester !== this.parent.state.currentTrimester) {
|
||||
this.changeTrimester(newTrimester);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
// Ancien sélecteur dropdown - pour compatibilité
|
||||
trimesterSelector.addEventListener('change', (e) => {
|
||||
const newTrimester = parseInt(e.target.value);
|
||||
if (newTrimester !== this.parent.state.currentTrimester) {
|
||||
this.changeTrimester(newTrimester);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async changeTrimester(newTrimester) {
|
||||
@@ -382,7 +409,24 @@ class FilterManager {
|
||||
this.parent.showToast('Erreur lors du changement de trimestre', 'error');
|
||||
|
||||
// Revert selector to previous value
|
||||
this.parent.elements.trimesterSelector.value = this.parent.state.currentTrimester;
|
||||
const trimesterSelector = this.parent.elements.trimesterSelector;
|
||||
if (trimesterSelector.hasAttribute('data-trimester-selector')) {
|
||||
// Pour les tabs - remettre les bonnes classes active
|
||||
const tabs = trimesterSelector.querySelectorAll('[data-trimester-tab]');
|
||||
tabs.forEach(tab => {
|
||||
const tabTrimester = parseInt(tab.dataset.trimesterTab);
|
||||
if (tabTrimester === this.parent.state.currentTrimester) {
|
||||
tab.classList.add('active');
|
||||
tab.setAttribute('aria-selected', 'true');
|
||||
} else {
|
||||
tab.classList.remove('active');
|
||||
tab.setAttribute('aria-selected', 'false');
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Pour l'ancien dropdown
|
||||
trimesterSelector.value = this.parent.state.currentTrimester;
|
||||
}
|
||||
} finally {
|
||||
// Hide loading overlay
|
||||
this.parent.elements.loadingOverlay?.classList.add('hidden');
|
||||
|
||||
Reference in New Issue
Block a user