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 // On attend que le DOM soit prêt pour initialiser DataTables
setTimeout(() => { 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); }, 100);
}, },
error: function() { error: function() {
@ -92286,8 +92289,9 @@ function enregistrer_modif_parametres_med()
* @param {string} selector - Sélecteur CSS de la table * @param {string} selector - Sélecteur CSS de la table
* @param {string} pageTitle - Titre pour les exports PDF/Excel * @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|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; if ($(selector).length === 0) return;
var hasGlobalSearch = $('#globalSearch').length > 0; var hasGlobalSearch = $('#globalSearch').length > 0;
@ -92297,25 +92301,25 @@ function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Donn
} }
// Modification du DOM : // 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 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 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 orderConfig = (defaultOrder === false) ? [] : defaultOrder;
var table = $(selector).DataTable({ var table = $(selector).DataTable({
"dom": domStructure, "dom": domStructure,
"order": orderConfig, "order": orderConfig,
"buttons": [ // On n'active les boutons que si showButtons est à true
"buttons": showButtons ? [
{ {
extend: 'excelHtml5', extend: 'excelHtml5',
text: '<i class="fas fa-file-excel me-2"></i>Excel', 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', className: 'btn btn-success btn-sm fw-bold border-0 shadow-sm px-3',
title: pageTitle, // Identique au PDF title: pageTitle,
exportOptions: { exportOptions: { columns: ':not(.no-export)' }
columns: ':not(.no-export)' // Exclut les colonnes avec la classe .no-export
}
}, },
{ {
extend: 'pdfHtml5', extend: 'pdfHtml5',
@ -92324,33 +92328,29 @@ function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Donn
title: pageTitle, title: pageTitle,
orientation: 'landscape', orientation: 'landscape',
pageSize: 'A4', pageSize: 'A4',
exportOptions: { exportOptions: { columns: ':not(.no-export)' },
columns: ':not(.no-export)' // Exclut les colonnes avec la classe .no-export customize: function(doc) {
}, if (doc.content[1].table) {
customize: function(doc) { doc.content[1].table.widths = Array(doc.content[1].table.body[0].length).fill('*');
// 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('*'); doc.styles.tableHeader.alignment = 'center';
doc.defaultStyle.alignment = 'center';
// Optionnel : Aligner le texte au centre pour toutes les cellules du PDF }
doc.styles.tableHeader.alignment = 'center';
doc.defaultStyle.alignment = 'center';
}
} }
], ] : [],
"language": { "language": {
"url": "//cdn.datatables.net/plug-ins/1.13.6/i18n/fr-FR.json", "url": "//cdn.datatables.net/plug-ins/1.13.6/i18n/fr-FR.json",
"search": "", // On vide le texte "Rechercher :" pour un look plus moderne "search": "",
"searchPlaceholder": "Rechercher..." "searchPlaceholder": "Filtrer..."
}, },
"pageLength": 10, "pageLength": 10,
"autoWidth": false, "autoWidth": false,
"drawCallback": function() { "drawCallback": function() {
if (!hasGlobalSearch) { if (!hasGlobalSearch) {
// Style de l'input de recherche
$('.dataTables_filter input') $('.dataTables_filter input')
.addClass('form-control form-control-sm shadow-none border-primary-subtle') .addClass('form-control form-control-sm shadow-none border-primary-subtle')
.css({ .css({
'width': '250px', 'width': '200px',
'border-radius': '20px', 'border-radius': '20px',
'padding-left': '15px' 'padding-left': '15px'
}); });
@ -92368,7 +92368,6 @@ function initSmartTable(selector = '.datatable-inter', pageTitle = 'Export Donn
return table; return table;
} }
function loadMessageSection(section) { function loadMessageSection(section) {
let url = ""; let url = "";
let target = "#content-" + section; let target = "#content-" + section;