correction et simplification

This commit is contained in:
theShlavuk 2026-01-21 21:33:37 +01:00
parent c647a5082c
commit d6dad2a7a9
3 changed files with 5 additions and 47 deletions

View File

@ -31,12 +31,6 @@ export function fillFormWithDate(data) {
const heureFin = data?.endStr?.split('T')[1]?.substring(0, 5) || '09:15'; const heureFin = data?.endStr?.split('T')[1]?.substring(0, 5) || '09:15';
safeSetValue('heure_fin', heureFin); 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 // Gérer les champs conditionnels selon le type
const type = extendedProps.type || event.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); handleTypeConditionalFields(type, event, extendedProps);
// Charger le statut liste rouge si bénéficiaire sélectionné // 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 * @param {Object} extendedProps - Propriétés étendues
*/ */
function handleTypeConditionalFields(type, event, extendedProps) { function handleTypeConditionalFields(type, event, extendedProps) {
// Gérer le champ langue selon le type (AVANT le return pour ne pas être bloqué) // Gérer les champs conditionnels
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
const groupeFields = document.getElementById('groupeFields'); const groupeFields = document.getElementById('groupeFields');
const nbParticipantsField = document.getElementById('nb_participants'); const nbParticipantsField = document.getElementById('nb_participants');
const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6'); const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6');
@ -299,16 +265,11 @@ export function resetForm() {
const nbParticipantsField = document.getElementById('nb_participants'); const nbParticipantsField = document.getElementById('nb_participants');
const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6'); const beneficiaireContainer = document.getElementById('id_beneficiaire')?.closest('.col-md-6');
const beneficiaireField = document.getElementById('id_beneficiaire'); const beneficiaireField = document.getElementById('id_beneficiaire');
const langueContainer = document.getElementById('langue-container');
const langueField = document.getElementById('langue');
if (groupeFields) groupeFields.style.display = 'none'; if (groupeFields) groupeFields.style.display = 'none';
if (nbParticipantsField) nbParticipantsField.required = false; if (nbParticipantsField) nbParticipantsField.required = false;
if (beneficiaireContainer) beneficiaireContainer.style.display = ''; if (beneficiaireContainer) beneficiaireContainer.style.display = '';
if (beneficiaireField) beneficiaireField.required = true; 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 // Réinitialiser le bloc traducteur
const tradContainer = document.getElementById('traducteur-select-container'); const tradContainer = document.getElementById('traducteur-select-container');

View File

@ -292,7 +292,9 @@ function filterSelectOptions(data, currentEventData = null) {
const isPermanence = extendedProps.type === 'permanence'; const isPermanence = extendedProps.type === 'permanence';
const languesDisponibles = extendedProps.langues_disponibles; 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 languesPermises = languesDisponibles.split(',').map(l => l.trim()).filter(l => l !== '');
const languesFiltrees = (data.langues || []).filter(langue => { const languesFiltrees = (data.langues || []).filter(langue => {
// Convertir en string pour comparaison (éviter problème string vs number) // Convertir en string pour comparaison (éviter problème string vs number)
@ -306,6 +308,7 @@ function filterSelectOptions(data, currentEventData = null) {
}); });
filterSelect('langue', languesFiltrees); filterSelect('langue', languesFiltrees);
} else { } else {
// Afficher toutes les langues (pas de permanence OU pas de langues_disponibles OU vide)
filterSelect('langue', data.langues || []); filterSelect('langue', data.langues || []);
} }
} }

View File

@ -284,12 +284,6 @@ export function openModal(mode, eventData = null) {
initializeLangueFilter(); initializeLangueFilter();
initializeBeneficiaireListeRougeAlert(); 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) // Initialiser les boutons (une seule fois)
initializeModalButtons({ initializeModalButtons({
getCurrentEventData: () => currentEventData, getCurrentEventData: () => currentEventData,