From 62cf615ed4a5cbd3da64dfd9b4993fd9a17b5e3c Mon Sep 17 00:00:00 2001 From: theShlavuk Date: Wed, 21 Jan 2026 21:45:10 +0100 Subject: [PATCH] simplification des langues --- assets/js/modules/agenda-modal-forms.js | 2 +- assets/js/modules/agenda-modal-select.js | 37 ++++++++++++------------ assets/js/modules/agenda-modal.js | 3 +- templates/modules/modals/event-modal.php | 2 +- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/assets/js/modules/agenda-modal-forms.js b/assets/js/modules/agenda-modal-forms.js index d565c1a..9abfd71 100644 --- a/assets/js/modules/agenda-modal-forms.js +++ b/assets/js/modules/agenda-modal-forms.js @@ -172,7 +172,7 @@ function setCurrentDateTime() { * Met à jour les champs Select2 */ function updateSelect2Fields() { - const select2Fields = ['type', 'langue', 'id_beneficiaire', 'id_intervenant', 'id_traducteur', 'id_local', 'id_departement', 'id_type_intervention']; + const select2Fields = ['type', 'id_beneficiaire', 'id_intervenant', 'id_traducteur', 'id_local', 'id_departement', 'id_type_intervention']; select2Fields.forEach(fieldId => { const element = document.getElementById(fieldId); if (element && element.tagName === 'SELECT' && window.jQuery && jQuery(element).hasClass('select2-hidden-accessible')) { diff --git a/assets/js/modules/agenda-modal-select.js b/assets/js/modules/agenda-modal-select.js index 5137005..e01aa74 100644 --- a/assets/js/modules/agenda-modal-select.js +++ b/assets/js/modules/agenda-modal-select.js @@ -330,25 +330,7 @@ function filterSelectOptions(data, currentEventData = null) { filterSelect('langue', languesFiltrees); - // Rafraîchir Select2 pour le select langue après filtrage - const langueSelect = document.getElementById('langue'); - if (langueSelect && window.jQuery && jQuery(langueSelect).hasClass('select2-hidden-accessible')) { - const $select = jQuery(langueSelect); - // Forcer la mise à jour de Select2 pour refléter les options filtrées - setTimeout(() => { - // Rafraîchir Select2 en déclenchant un événement qui force la mise à jour - $select.trigger('change.select2'); - // Si Select2 est ouvert, forcer la fermeture/ouverture pour rafraîchir - if ($select.data('select2')) { - const select2Instance = $select.data('select2'); - // Forcer la mise à jour de la liste déroulante - if (select2Instance.isOpen()) { - $select.select2('close'); - setTimeout(() => $select.select2('open'), 10); - } - } - }, 100); - } + // Le select langue n'est plus en Select2, donc pas besoin de rafraîchir Select2 } else { // Afficher toutes les langues (pas de permanence OU pas de langues_disponibles OU vide) console.log('🌍 [LANGUE] Affichage de toutes les langues (pas de filtrage)'); @@ -356,6 +338,23 @@ function filterSelectOptions(data, currentEventData = null) { } } +/** + * Réinitialise le display des options du select langue + * À appeler lors de la fermeture du modal pour restaurer toutes les options + */ +export function resetLangueSelectDisplay() { + const langueSelect = document.getElementById('langue'); + if (!langueSelect || langueSelect.tagName !== 'SELECT') return; + + // Réinitialiser le display de toutes les options + Array.from(langueSelect.options).forEach(option => { + option.style.display = ''; + option.disabled = false; + }); + + console.log('🔄 [LANGUE] Display des options réinitialisé'); +} + /** * Présélectionne les valeurs dans les selects * @param {Object} eventData - Données de l'événement diff --git a/assets/js/modules/agenda-modal.js b/assets/js/modules/agenda-modal.js index adb8b3d..7419a55 100644 --- a/assets/js/modules/agenda-modal.js +++ b/assets/js/modules/agenda-modal.js @@ -8,7 +8,7 @@ import { initializeEntityCreators } from './agenda-entity-creator.js'; // Modules refactorisés import { clearDomCache, clearFormFields } from './agenda-modal-dom.js'; import { initializeModalButtons } from './agenda-modal-buttons.js'; -import { initializeSelect2, populateSelects, filterTraducteursByLangue, getIsUpdatingSelects, clearDisponibilitesCache, initializeBeneficiaireListeRougeAlert } from './agenda-modal-select.js'; +import { initializeSelect2, populateSelects, filterTraducteursByLangue, getIsUpdatingSelects, clearDisponibilitesCache, initializeBeneficiaireListeRougeAlert, resetLangueSelectDisplay } from './agenda-modal-select.js'; import { fillFormWithDate, fillFormWithEvent, resetForm, showFormErrors, clearFormErrors, handleEventFormSubmit } from './agenda-modal-forms.js'; import { fillViewBlock, updateModalDisplay, checkIfEventIsPast } from './agenda-modal-display.js'; @@ -351,6 +351,7 @@ export function openModal(mode, eventData = null) { clearModalFields(); clearDomCache(); clearDisponibilitesCache(); + resetLangueSelectDisplay(); // Réinitialiser le display des options langue currentMode = 'view'; currentEventData = null; } diff --git a/templates/modules/modals/event-modal.php b/templates/modules/modals/event-modal.php index 1afea14..cee5fb3 100644 --- a/templates/modules/modals/event-modal.php +++ b/templates/modules/modals/event-modal.php @@ -229,7 +229,7 @@ $crvi_is_front_context = ($crvi_agenda_context !== 'admin');
-