diff --git a/assets/js/modules/agenda-modal-select.js b/assets/js/modules/agenda-modal-select.js index 44b578a..743baa5 100644 --- a/assets/js/modules/agenda-modal-select.js +++ b/assets/js/modules/agenda-modal-select.js @@ -350,70 +350,24 @@ function preselectValues(eventData) { // Vérifier si l'option avec cette valeur existe const optionExists = Array.from(element.options).some(opt => opt.value === value.toString()); console.log(`🔍 [PRESELECT] L'option avec valeur "${value}" existe:`, optionExists); - - // Si Select2 n'est pas initialisé pour le champ langue, l'initialiser maintenant - if (window.jQuery && !jQuery(element).hasClass('select2-hidden-accessible')) { - console.log('🔧 [PRESELECT] Select2 non initialisé pour langue, initialisation...'); - if (window.jQuery.fn.select2) { - jQuery(element).select2({ - width: '100%', - placeholder: 'Sélectionner...', - allowClear: true, - dropdownParent: jQuery('#eventModal') - }); - console.log('✅ [PRESELECT] Select2 initialisé pour langue'); - } - } } + // Définir d'abord la valeur sur le select natif + element.value = value; + console.log(`🔍 [PRESELECT] Valeur définie sur select natif ${fieldId}:`, element.value); + + // Si Select2 est actif, le notifier du changement if (window.jQuery && jQuery(element).hasClass('select2-hidden-accessible')) { - console.log(`🔍 [PRESELECT] Utilisation de Select2 pour ${fieldId}, valeur: ${value}`); - - // Pour le champ langue, essayer plusieurs méthodes de mise à jour - if (fieldId === 'langue') { - console.log('🔧 [PRESELECT] Méthode spéciale pour langue - destruction et réinitialisation'); - - // Méthode 1: Détruire et réinitialiser Select2 avec la valeur - const $element = jQuery(element); - - // Sauvegarder les options Select2 - const select2Options = { - width: '100%', - placeholder: 'Sélectionner...', - allowClear: true, - dropdownParent: jQuery('#eventModal') - }; - - // Détruire Select2 - try { - $element.select2('destroy'); - console.log('🔧 [PRESELECT] Select2 détruit'); - } catch (e) { - console.log('🔧 [PRESELECT] Erreur destruction Select2:', e); - } - - // Définir la valeur sur le select natif - element.value = value; - console.log('🔧 [PRESELECT] Valeur définie sur select natif:', element.value); - - // Réinitialiser Select2 - $element.select2(select2Options); - console.log('🔧 [PRESELECT] Select2 réinitialisé avec valeur:', $element.val()); - } else { - jQuery(element).val(value).trigger('change'); - } + console.log(`🔍 [PRESELECT] Notification Select2 pour ${fieldId}`); + jQuery(element).trigger('change'); // Vérifier si la valeur a bien été définie const actualValue = jQuery(element).val(); - console.log(`🔍 [PRESELECT] Valeur après définition pour ${fieldId}:`, actualValue, 'attendue:', value); + console.log(`🔍 [PRESELECT] Valeur Select2 pour ${fieldId}:`, actualValue, 'attendue:', value); if (actualValue !== value && actualValue !== value.toString()) { console.warn(`⚠️ [PRESELECT] La valeur n'a pas été correctement définie pour ${fieldId}!`); } - } else { - console.log(`🔍 [PRESELECT] Utilisation de value standard pour ${fieldId}, valeur: ${value}`); - element.value = value; - console.log(`🔍 [PRESELECT] Valeur après définition pour ${fieldId}:`, element.value); } } else { console.warn(`⚠️ [PRESELECT] Élément ${fieldId} non trouvé ou pas un SELECT`);