simplification des langues
This commit is contained in:
parent
c95ec9d09a
commit
62cf615ed4
@ -172,7 +172,7 @@ function setCurrentDateTime() {
|
|||||||
* Met à jour les champs Select2
|
* Met à jour les champs Select2
|
||||||
*/
|
*/
|
||||||
function updateSelect2Fields() {
|
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 => {
|
select2Fields.forEach(fieldId => {
|
||||||
const element = document.getElementById(fieldId);
|
const element = document.getElementById(fieldId);
|
||||||
if (element && element.tagName === 'SELECT' && window.jQuery && jQuery(element).hasClass('select2-hidden-accessible')) {
|
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);
|
filterSelect('langue', languesFiltrees);
|
||||||
|
|
||||||
// Rafraîchir Select2 pour le select langue après filtrage
|
// Le select langue n'est plus en Select2, donc pas besoin de rafraîchir Select2
|
||||||
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);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// Afficher toutes les langues (pas de permanence OU pas de langues_disponibles OU vide)
|
// 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)');
|
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
|
* Présélectionne les valeurs dans les selects
|
||||||
* @param {Object} eventData - Données de l'événement
|
* @param {Object} eventData - Données de l'événement
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import { initializeEntityCreators } from './agenda-entity-creator.js';
|
|||||||
// Modules refactorisés
|
// Modules refactorisés
|
||||||
import { clearDomCache, clearFormFields } from './agenda-modal-dom.js';
|
import { clearDomCache, clearFormFields } from './agenda-modal-dom.js';
|
||||||
import { initializeModalButtons } from './agenda-modal-buttons.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 { fillFormWithDate, fillFormWithEvent, resetForm, showFormErrors, clearFormErrors, handleEventFormSubmit } from './agenda-modal-forms.js';
|
||||||
import { fillViewBlock, updateModalDisplay, checkIfEventIsPast } from './agenda-modal-display.js';
|
import { fillViewBlock, updateModalDisplay, checkIfEventIsPast } from './agenda-modal-display.js';
|
||||||
|
|
||||||
@ -351,6 +351,7 @@ export function openModal(mode, eventData = null) {
|
|||||||
clearModalFields();
|
clearModalFields();
|
||||||
clearDomCache();
|
clearDomCache();
|
||||||
clearDisponibilitesCache();
|
clearDisponibilitesCache();
|
||||||
|
resetLangueSelectDisplay(); // Réinitialiser le display des options langue
|
||||||
currentMode = 'view';
|
currentMode = 'view';
|
||||||
currentEventData = null;
|
currentEventData = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -229,7 +229,7 @@ $crvi_is_front_context = ($crvi_agenda_context !== 'admin');
|
|||||||
<div class="col-md-6" id="langue-container">
|
<div class="col-md-6" id="langue-container">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="langue" class="form-label">Langue *</label>
|
<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>
|
<option value="">Sélectionner...</option>
|
||||||
<?php
|
<?php
|
||||||
if (isset($langues_beneficiaire) && is_array($langues_beneficiaire)) {
|
if (isset($langues_beneficiaire) && is_array($langues_beneficiaire)) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user