dfg
This commit is contained in:
parent
b56ee50c5d
commit
6d822d1d53
|
|
@ -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(`
|
||||
<div class="text-center p-5">
|
||||
<div class="spinner-border text-primary" role="status"></div>
|
||||
<p class="mt-2 text-muted italic">${(codeLangue === "en_US") ? "Synchronizing..." : "Synchronisation..."}</p>
|
||||
<div class="spinner-border text-primary" style="width: 3rem; height: 3rem;" role="status"></div>
|
||||
<p class="mt-3 text-muted fw-bold italic">
|
||||
${(codeLangue === "en_US") ? "Synchronizing data..." : "Synchronisation des données..."}
|
||||
</p>
|
||||
</div>
|
||||
`);
|
||||
|
||||
// 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(`<div class="alert alert-danger m-3">${xhr.statusText}</div>`);
|
||||
$divLister.html(`
|
||||
<div class="alert alert-danger m-3 shadow-xs border-2">
|
||||
<i class="fas fa-exclamation-triangle me-2"></i>
|
||||
<strong>Error:</strong> ${xhr.status} - ${xhr.statusText}
|
||||
</div>
|
||||
`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user