From 6d822d1d5349c44da106f8cb9aa1369617e957ed Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Sat, 7 Mar 2026 16:27:38 +0000 Subject: [PATCH] dfg --- Js/fonctions.js | 55 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/Js/fonctions.js b/Js/fonctions.js index 5bef3300..562fb57e 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -47510,55 +47510,84 @@ function chargerFichiersTable() { } function afficheDonneesTableChoisie(fichier) { - if (!fichier || fichier === '') return; + // ÉTAPE 1 : Nettoyage préventif des menus orphelins (Bootstrap-Select container:body) + // On détruit les instances existantes avant de vider le DOM pour éviter les menus qui "collent" + if ($.fn.selectpicker) { + $('.selectpicker').selectpicker('destroy'); + $('.bootstrap-select').remove(); + } + + if (!fichier || fichier === '') return; const racineWeb = $("#racineWeb").val(); const codeLangue = $("#codeLangue").val(); const $divLister = $('#div_lister_table'); let donnees = {}; - // 1. Gestion des cas particuliers (ex: Jours fériés) + // ÉTAPE 2 : Gestion des paramètres spécifiques selon le fichier if (fichier === "Ajaxtblisterjoursferiers") { + // On récupère les filtres de l'interface const codePays = $('#codePays').val() || "CI"; const annee = $('#annee').val() || new Date().getFullYear(); donnees = { codePays: codePays, annee: annee }; } - // 2. Affichage d'un loader pendant le chargement + // ÉTAPE 3 : Affichage du loader (Standard Neutral Pro) $divLister.html(`
-
-

${(codeLangue === "en_US") ? "Synchronizing..." : "Synchronisation..."}

+
+

+ ${(codeLangue === "en_US") ? "Synchronizing data..." : "Synchronisation des données..."} +

`); - // 3. Appel AJAX + // ÉTAPE 4 : Appel AJAX $.ajax({ url: racineWeb + fichier + "/", type: 'post', data: donnees, success: function(data) { + // Injection du nouveau contenu HTML $divLister.html(data); - // 4. Post-traitement selon le fichier + // É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); + } } - // 5. Initialisation de la DataTable + // ÉTAPE 6 : Initialisation de la DataTable (Standard ou Spécifique) if (fichier === "Ajaxtblistertableauajustementgarant") { - // Appel de votre fonction spécifique si elle existe toujours if (typeof appliquerDataTable === "function") appliquerDataTable(); } else { - // Utilisation de la fonction générique avec exports Excel/PDF - const nomTable = $("#listetables option:selected").text(); - initDataTableReference('#tableLister', 'Export_' + nomTable.replace(/\s+/g, '_')); + // 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); + } } }, error: function(xhr) { toastr.error((codeLangue === "en_US") ? "Data loading error" : "Erreur de chargement des données"); - $divLister.html(`
${xhr.statusText}
`); + $divLister.html(` +
+ + Error: ${xhr.status} - ${xhr.statusText} +
+ `); } }); }