simplification des langues
This commit is contained in:
parent
c95ec9d09a
commit
62cf615ed4
@ -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')) {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -229,7 +229,7 @@ $crvi_is_front_context = ($crvi_agenda_context !== 'admin');
|
||||
<div class="col-md-6" id="langue-container">
|
||||
<div class="mb-3">
|
||||
<label for="langue" class="form-label">Langue *</label>
|
||||
<select class="form-select" id="langue" name="langue" required>
|
||||
<select class="form-select skip-select2" id="langue" name="langue" required>
|
||||
<option value="">Sélectionner...</option>
|
||||
<?php
|
||||
if (isset($langues_beneficiaire) && is_array($langues_beneficiaire)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user