This commit is contained in:
KONE SOREL 2026-03-06 16:32:50 +00:00
parent 485448e9da
commit bb7d836420

View File

@ -48256,58 +48256,49 @@ function cocherDecocherUn(fichier_lister,id){
function filtreTableReference(numeroTable) { function filtreTableReference(numeroTable) {
const racineWeb = $("#racineWeb").val(); const racineWeb = $("#racineWeb").val();
const codeLangue = $("#codeLangue").val(); const $divListe = $("#div_listetables");
const div_liste_tables = $("#div_listetables"); const $selectOriginal = $("#listetables");
// 1. Réinitialisation complète des zones de travail // 1. Destruction propre de l'instance Selectpicker avant injection
// On vide tout pour que l'utilisateur sache qu'il change de contexte // Cela évite que le plugin laisse des traces dans le DOM
if ($selectOriginal.length > 0) {
$selectOriginal.selectpicker('destroy');
}
// 2. Nettoyage des zones de travail
$("#div_lister_table").html(""); $("#div_lister_table").html("");
$('#div_fichiers_table').html(""); $('#div_maj_table').html("");
$('#div_entete_table').html("");
$('#div_maj_table').html(""); // On vide aussi la zone de saisie/modification // 3. Préparation de l'appel AJAX
$divListe.css('opacity', '0.5');
// 2. Préparation des données (Format Objet)
const donnees = { numeroTable: numeroTable };
// 3. Effet de chargement sur le menu déroulant
div_liste_tables.css('opacity', '0.5');
// 4. Appel AJAX
$.ajax({ $.ajax({
url: racineWeb + "Ajaxfiltretablesreference/", url: racineWeb + "Ajaxfiltretablesreference/",
type: 'post', type: 'post',
data: donnees, data: { numeroTable: numeroTable },
success: function(data) { success: function(data) {
// Mise à jour du sélecteur de tables // 4. Injection du nouveau HTML (qui contient le nouveau <select>)
div_liste_tables.html(data); $divListe.html(data);
// Ré-initialisation du SelectPicker (Bootstrap-select) // 5. Ré-initialisation forcée
// setTimeout permet de s'assurer que le DOM est prêt // On utilise un léger délai pour laisser le DOM respirer
setTimeout(function() { setTimeout(function() {
const $select = $("#listetables"); $("#listetables").selectpicker({
$select.selectpicker('refresh'); liveSearch: true,
$select.selectpicker('focus'); size: 10,
style: 'btn-white border-primary-subtle fw-bold'
});
}, 50); }, 50);
// Notification discrète (Optionnel)
if (typeof toastr !== 'undefined') {
let msg = (codeLangue === "en_US") ? "Tables updated" : "Tables mises à jour";
toastr.info(msg);
}
}, },
error: function(xhr) { error: function() {
console.error("Erreur de filtrage :", xhr.statusText); console.error("Erreur lors du filtrage des tables");
let errorMsg = (codeLangue === "en_US") ? "Error loading tables" : "Erreur lors du chargement des tables";
alert_ebene(errorMsg, errorMsg);
}, },
complete: function() { complete: function() {
// Rétablir l'opacité $divListe.css('opacity', '1');
div_liste_tables.css('opacity', '1');
} }
}); });
} }
function supprimer_choix(){ function supprimer_choix(){
var fichier_lister = $('#fichier_lister').val(); var fichier_lister = $('#fichier_lister').val();