diff --git a/assets/js/modules/agenda-modal-forms.js b/assets/js/modules/agenda-modal-forms.js index c404d8a..657992c 100644 --- a/assets/js/modules/agenda-modal-forms.js +++ b/assets/js/modules/agenda-modal-forms.js @@ -31,6 +31,12 @@ 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 = ''; + } } /** @@ -119,6 +125,11 @@ 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é @@ -215,16 +226,11 @@ function handleTraducteurExistingCheckbox(traducteurId) { * @param {Object} extendedProps - Propriétés étendues */ function handleTypeConditionalFields(type, event, extendedProps) { - const groupeFields = document.getElementById('groupeFields'); - const nbParticipantsField = document.getElementById('nb_participants'); - const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6'); - const beneficiaireField = document.getElementById('id_beneficiaire'); + // 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'); - if (!groupeFields || !nbParticipantsField || !beneficiaireContainer || !beneficiaireField) return; - - // Gérer le champ langue selon le type + // 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) { @@ -234,7 +240,7 @@ function handleTypeConditionalFields(type, event, extendedProps) { langueField.removeAttribute('required'); } } else { - // Afficher le champ langue pour les autres types + // Afficher le champ langue pour les autres types (individuel, groupe) ou si type non défini if (langueContainer) { langueContainer.style.display = ''; } @@ -243,6 +249,14 @@ function handleTypeConditionalFields(type, event, extendedProps) { } } + // Gérer les autres champs conditionnels + const groupeFields = document.getElementById('groupeFields'); + const nbParticipantsField = document.getElementById('nb_participants'); + const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6'); + const beneficiaireField = document.getElementById('id_beneficiaire'); + + if (!groupeFields || !nbParticipantsField || !beneficiaireContainer || !beneficiaireField) return; + if (type === 'groupe') { // Afficher les champs de groupe groupeFields.style.display = ''; diff --git a/assets/js/modules/agenda-modal.js b/assets/js/modules/agenda-modal.js index adb8b3d..647f9a3 100644 --- a/assets/js/modules/agenda-modal.js +++ b/assets/js/modules/agenda-modal.js @@ -284,6 +284,12 @@ 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,