This commit is contained in:
2026-03-11 17:23:31 +00:00
parent edf9ecc8ef
commit 31aa30b801
5 changed files with 123 additions and 441 deletions

View File

@@ -48120,13 +48120,11 @@ function filtreTableReference(numeroTable) {
const racineWeb = $("#racineWeb").val();
const $divListe = $("#div_listetables");
// 1. DESTRUCTION TOTALE de l'existant
// Nettoyage radical
if ($("#listetables").length) {
$("#listetables").selectpicker('destroy'); // Tue l'instance JS
$("#listetables").selectpicker('destroy');
}
// Supprime physiquement tous les menus détachés du body
$('.bootstrap-select.bs-container').remove();
// Vide le conteneur pour repartir de zéro
$divListe.empty();
$.ajax({
@@ -48134,35 +48132,30 @@ function filtreTableReference(numeroTable) {
type : 'post',
data: { numeroTable: numeroTable },
success: function(data) {
// 1. On injecte le HTML brut
$divListe.html(data);
// Injection du HTML
$divListe.html(data);
const $select = $("#listetables");
const $select = $("#listetables");
// 2. NETTOYAGE CHIRURGICAL des options
// On force le texte à être propre et on supprime l'attribut title
// qui cause souvent le doublon dans le rendu du plugin
$select.find('option').each(function() {
const propre = $(this).text().trim();
$(this).text(propre); // Nettoie le texte interne
$(this).attr('data-content', ''); // Supprime d'éventuels attributs parasites
$(this).removeAttr('title'); // Supprime le titre qui double le rendu
});
// On retire la classe 'selectpicker' temporairement pour éviter
// que le script global ne l'attrape avant nous
$select.removeClass('selectpicker');
// 3. INITIALISATION avec paramètres de sécurité
$select.selectpicker({
liveSearch: true,
size: 10,
container: 'body',
style: 'btn-form-select', // Utilise votre classe de style
noneSelectedText: (typeof _ !== 'undefined') ? _("-- Sélectionner --") : "-- Sélectionner --"
});
setTimeout(function() {
$select.selectpicker({
liveSearch: true,
size: 10,
container: 'body',
width: '100%'
});
// On remet la classe après initialisation si nécessaire pour le CSS
$select.addClass('selectpicker');
// 4. Focus UX
setTimeout(function() {
$divListe.find('.dropdown-toggle').focus();
}, 200);
}
// Focus sur le bouton généré
$divListe.find('.dropdown-toggle').focus();
}, 100);
}
});
}