This commit is contained in:
KONE SOREL 2026-04-10 08:29:48 +00:00
parent 5a50a1c92c
commit dec85bf5f1

View File

@ -86194,7 +86194,10 @@ function affiche_pays_territoire() {
// On attend que le DOM soit prêt pour initialiser DataTables
setTimeout(() => {
initSmartTable('.datatable-inter', titreExport, [0, 'asc']);
// Tableau de gauche (Hors territoire)
initSmartTable('#div_sans_territoire table', 'Pays à ajouter', [0, 'asc'], false);
// Tableau de droite (Dans territoire)
initSmartTable('#div_avec_seuil table', 'Pays inclus', [1, 'asc'], false);
}, 100);
},
error: function() {
@ -92286,8 +92289,9 @@ function enregistrer_modif_parametres_med()
* @param {string} selector - Sélecteur CSS de la table
* @param {string} pageTitle - Titre pour les exports PDF/Excel
* @param {boolean|array} defaultOrder - Exemple: [1, 'desc'] ou false pour garder l'ordre serveur
* @param {boolean} showButtons - Affiche ou masque les boutons d'export (Défaut: true)
*/
function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Données', defaultOrder = false) {
function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Données', defaultOrder = false, showButtons = true) {
if ($(selector).length === 0) return;
var hasGlobalSearch = $('#globalSearch').length > 0;
@ -92297,25 +92301,25 @@ function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Donn
}
// Modification du DOM :
// On enveloppe 'f' (Filter) dans une div avec 'ms-auto' pour le pousser à droite
// Si showButtons est false, on retire "B" (Buttons) de la structure
// On utilise "ms-auto" pour pousser "f" (Filter) à droite même si "B" est absent
var domStructure = hasGlobalSearch
? '<"d-flex align-items-center justify-content-start p-3 border-bottom"B>t<"d-flex justify-content-between align-items-center p-3 bg-light"ip>'
: '<"d-flex align-items-center p-3 border-bottom"B<"ms-auto"f>>t<"d-flex justify-content-between align-items-center p-3 bg-light"ip>';
: '<"d-flex align-items-center p-3 border-bottom"' + (showButtons ? 'B' : '') + '<"ms-auto"f>>t<"d-flex justify-content-between align-items-center p-3 bg-light"ip>';
var orderConfig = (defaultOrder === false) ? [] : defaultOrder;
var table = $(selector).DataTable({
"dom": domStructure,
"order": orderConfig,
"buttons": [
// On n'active les boutons que si showButtons est à true
"buttons": showButtons ? [
{
extend: 'excelHtml5',
text: '<i class="fas fa-file-excel me-2"></i>Excel',
className: 'btn btn-success btn-sm fw-bold border-0 shadow-sm px-3',
title: pageTitle, // Identique au PDF
exportOptions: {
columns: ':not(.no-export)' // Exclut les colonnes avec la classe .no-export
}
title: pageTitle,
exportOptions: { columns: ':not(.no-export)' }
},
{
extend: 'pdfHtml5',
@ -92324,33 +92328,29 @@ function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Donn
title: pageTitle,
orientation: 'landscape',
pageSize: 'A4',
exportOptions: {
columns: ':not(.no-export)' // Exclut les colonnes avec la classe .no-export
},
customize: function(doc) {
// Force la largeur du tableau à 100% (le '*' signifie largeur automatique répartie)
doc.content[1].table.widths = Array(doc.content[1].table.body[0].length).fill('*');
// Optionnel : Aligner le texte au centre pour toutes les cellules du PDF
doc.styles.tableHeader.alignment = 'center';
doc.defaultStyle.alignment = 'center';
}
exportOptions: { columns: ':not(.no-export)' },
customize: function(doc) {
if (doc.content[1].table) {
doc.content[1].table.widths = Array(doc.content[1].table.body[0].length).fill('*');
}
doc.styles.tableHeader.alignment = 'center';
doc.defaultStyle.alignment = 'center';
}
}
],
] : [],
"language": {
"url": "//cdn.datatables.net/plug-ins/1.13.6/i18n/fr-FR.json",
"search": "", // On vide le texte "Rechercher :" pour un look plus moderne
"searchPlaceholder": "Rechercher..."
"search": "",
"searchPlaceholder": "Filtrer..."
},
"pageLength": 10,
"autoWidth": false,
"drawCallback": function() {
if (!hasGlobalSearch) {
// Style de l'input de recherche
$('.dataTables_filter input')
.addClass('form-control form-control-sm shadow-none border-primary-subtle')
.css({
'width': '250px',
'width': '200px',
'border-radius': '20px',
'padding-left': '15px'
});
@ -92368,7 +92368,6 @@ function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Donn
return table;
}
function loadMessageSection(section) {
let url = "";
let target = "#content-" + section;