diff --git a/Js/fonctions.js b/Js/fonctions.js index 562fb57e..042032e0 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -47548,38 +47548,32 @@ function afficheDonneesTableChoisie(fichier) { type: 'post', data: donnees, success: function(data) { - // Injection du nouveau contenu HTML - $divLister.html(data); + // 1. On injecte le HTML qui contient le nouveau tableau et potentiellement les nouveaux filtres + $divLister.html(data); - // ÉTAPE 5 : Post-traitement et Ré-initialisation des composants - - // Cas spécifique : Jours Fériés - if (fichier === "Ajaxtblisterjoursferiers") { - // On s'assure que les valeurs des filtres sont maintenues - $('#codePays').val(donnees.codePays); - $('#annee').val(donnees.annee); - - // CRUCIAL : On ré-initialise le SelectPicker du filtre Pays injecté - // Cela lui redonne son style Neutral Pro (bordures 2px, icône, recherche) - if (typeof actualiserSelectPicker === "function") { - actualiserSelectPicker('#codePays', false); - } - } + // 2. Traitement spécifique Jours Fériés + if (fichier === "Ajaxtblisterjoursferiers") { + + // A. On ré-habille le SelectPicker AVANT de lui donner une valeur + if (typeof actualiserSelectPicker === "function") { + actualiserSelectPicker('#codePays', false); + } - // ÉTAPE 6 : Initialisation de la DataTable (Standard ou Spécifique) - if (fichier === "Ajaxtblistertableauajustementgarant") { - if (typeof appliquerDataTable === "function") appliquerDataTable(); - } else { - // On récupère le nom de la table pour le titre de l'export - const nomTableRaw = $("#listetables option:selected").text() || 'Export'; - const nomTableClean = nomTableRaw.trim().replace(/[^a-z0-9]/gi, '_'); - - // Appel de la fonction générique définie dans tes standards - if (typeof initDataTableReference === "function") { - initDataTableReference('#tableLister', 'Referentiel_' + nomTableClean); - } - } - }, + // B. On force la valeur et on demande au plugin de se rafraîchir visuellement + // C'est le .selectpicker('refresh') qui garantit que le pays choisi reste affiché + $('#codePays').val(donnees.codePays).selectpicker('refresh'); + $('#annee').val(donnees.annee); + } + + // 3. Initialisation de la DataTable + // Elle va maintenant lire les valeurs correctes dans les champs pour filtrer si besoin + const nomTableRaw = $("#listetables option:selected").text() || 'Export'; + const nomTableClean = nomTableRaw.trim().replace(/[^a-z0-9]/gi, '_'); + + if (typeof initDataTableReference === "function") { + initDataTableReference('#tableLister', 'Referentiel_' + nomTableClean); + } + }, error: function(xhr) { toastr.error((codeLangue === "en_US") ? "Data loading error" : "Erreur de chargement des données"); $divLister.html(`