From d6dad2a7a95cf89cd70d9d97d8a04f3dea41ae2f Mon Sep 17 00:00:00 2001 From: theShlavuk Date: Wed, 21 Jan 2026 21:33:37 +0100 Subject: [PATCH] correction et simplification --- assets/js/modules/agenda-modal-forms.js | 41 +----------------------- assets/js/modules/agenda-modal-select.js | 5 ++- assets/js/modules/agenda-modal.js | 6 ---- 3 files changed, 5 insertions(+), 47 deletions(-) diff --git a/assets/js/modules/agenda-modal-forms.js b/assets/js/modules/agenda-modal-forms.js index 657992c..d565c1a 100644 --- a/assets/js/modules/agenda-modal-forms.js +++ b/assets/js/modules/agenda-modal-forms.js @@ -31,12 +31,6 @@ export function fillFormWithDate(data) { const heureFin = data?.endStr?.split('T')[1]?.substring(0, 5) || '09:15'; safeSetValue('heure_fin', heureFin); - - // S'assurer que le champ langue est visible par défaut (pour création) - const langueContainer = document.getElementById('langue-container'); - if (langueContainer) { - langueContainer.style.display = ''; - } } /** @@ -125,11 +119,6 @@ export function fillFormWithEvent(event, filterTraducteursByLangue = null) { // Gérer les champs conditionnels selon le type const type = extendedProps.type || event.type || ''; - // S'assurer que le champ langue est visible par défaut avant d'appeler handleTypeConditionalFields - const langueContainer = document.getElementById('langue-container'); - if (langueContainer && type !== 'permanence') { - langueContainer.style.display = ''; - } handleTypeConditionalFields(type, event, extendedProps); // Charger le statut liste rouge si bénéficiaire sélectionné @@ -226,30 +215,7 @@ function handleTraducteurExistingCheckbox(traducteurId) { * @param {Object} extendedProps - Propriétés étendues */ function handleTypeConditionalFields(type, event, extendedProps) { - // Gérer le champ langue selon le type (AVANT le return pour ne pas être bloqué) - const langueContainer = document.getElementById('langue-container'); - const langueField = document.getElementById('langue'); - - // Par défaut, afficher le champ langue (sauf pour les permanences) - if (type === 'permanence') { - // Cacher le champ langue pour les permanences (les langues sont dans langues_disponibles) - if (langueContainer) { - langueContainer.style.display = 'none'; - } - if (langueField) { - langueField.removeAttribute('required'); - } - } else { - // Afficher le champ langue pour les autres types (individuel, groupe) ou si type non défini - if (langueContainer) { - langueContainer.style.display = ''; - } - if (langueField) { - langueField.setAttribute('required', 'required'); - } - } - - // Gérer les autres champs conditionnels + // Gérer les champs conditionnels const groupeFields = document.getElementById('groupeFields'); const nbParticipantsField = document.getElementById('nb_participants'); const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6'); @@ -299,16 +265,11 @@ export function resetForm() { const nbParticipantsField = document.getElementById('nb_participants'); const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6'); const beneficiaireField = document.getElementById('id_beneficiaire'); - const langueContainer = document.getElementById('langue-container'); - const langueField = document.getElementById('langue'); if (groupeFields) groupeFields.style.display = 'none'; if (nbParticipantsField) nbParticipantsField.required = false; if (beneficiaireContainer) beneficiaireContainer.style.display = ''; if (beneficiaireField) beneficiaireField.required = true; - // Réafficher le champ langue (masqué pour les permanences) - if (langueContainer) langueContainer.style.display = ''; - if (langueField) langueField.setAttribute('required', 'required'); // Réinitialiser le bloc traducteur const tradContainer = document.getElementById('traducteur-select-container'); diff --git a/assets/js/modules/agenda-modal-select.js b/assets/js/modules/agenda-modal-select.js index 57615e2..dfa162f 100644 --- a/assets/js/modules/agenda-modal-select.js +++ b/assets/js/modules/agenda-modal-select.js @@ -292,7 +292,9 @@ function filterSelectOptions(data, currentEventData = null) { const isPermanence = extendedProps.type === 'permanence'; const languesDisponibles = extendedProps.langues_disponibles; - if (isPermanence && languesDisponibles && languesDisponibles.trim() !== '') { + // Si c'est une permanence ET qu'il y a des langues_disponibles non vides, filtrer + // Sinon (pas de permanence OU pas de langues_disponibles OU vide), afficher toutes les langues + if (isPermanence && languesDisponibles && typeof languesDisponibles === 'string' && languesDisponibles.trim() !== '') { const languesPermises = languesDisponibles.split(',').map(l => l.trim()).filter(l => l !== ''); const languesFiltrees = (data.langues || []).filter(langue => { // Convertir en string pour comparaison (éviter problème string vs number) @@ -306,6 +308,7 @@ function filterSelectOptions(data, currentEventData = null) { }); filterSelect('langue', languesFiltrees); } else { + // Afficher toutes les langues (pas de permanence OU pas de langues_disponibles OU vide) filterSelect('langue', data.langues || []); } } diff --git a/assets/js/modules/agenda-modal.js b/assets/js/modules/agenda-modal.js index 647f9a3..adb8b3d 100644 --- a/assets/js/modules/agenda-modal.js +++ b/assets/js/modules/agenda-modal.js @@ -284,12 +284,6 @@ export function openModal(mode, eventData = null) { initializeLangueFilter(); initializeBeneficiaireListeRougeAlert(); - // S'assurer que le champ langue est visible par défaut (sauf pour les permanences) - const langueContainer = document.getElementById('langue-container'); - if (langueContainer && (!eventData || (eventData.extendedProps?.type !== 'permanence' && eventData.type !== 'permanence'))) { - langueContainer.style.display = ''; - } - // Initialiser les boutons (une seule fois) initializeModalButtons({ getCurrentEventData: () => currentEventData,