From f47da1962d196c8e2b37237991c26a53b723fe52 Mon Sep 17 00:00:00 2001 From: Jonathan Foucher <jfoucher@gmail.com> Date: Tue, 18 Feb 2025 12:04:42 +0100 Subject: [PATCH] map colums to headers in excel datatables export. Fixes https://gitlab.adullact.net/soluris/madis/-/issues/999 --- .../Conformite_traitement/list.html.twig | 2 +- .../_serverside_datatable_base.html.twig | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/templates/Registry/Conformite_traitement/list.html.twig b/templates/Registry/Conformite_traitement/list.html.twig index 956f440eb..cad9d3c18 100644 --- a/templates/Registry/Conformite_traitement/list.html.twig +++ b/templates/Registry/Conformite_traitement/list.html.twig @@ -175,7 +175,7 @@ {% set dataTableOptions = { columns: cols, - excludeId : true, + excludeId : false, order: [ [1, 'asc' ] ], diff --git a/templates/_Utils/_serverside_datatable_base.html.twig b/templates/_Utils/_serverside_datatable_base.html.twig index 6193df7ec..be0610b9d 100644 --- a/templates/_Utils/_serverside_datatable_base.html.twig +++ b/templates/_Utils/_serverside_datatable_base.html.twig @@ -139,6 +139,7 @@ async: false }); var exportBody = jsonResult.responseJSON.data; + var colNames = params.columns.map(function(c) { return c.data }).filter(i => i !== 'actions') return exportBody.map(function (el) { return colNames.map(function (key) { @@ -154,18 +155,27 @@ var visible = api.columns().visible(); var params = api.ajax.params(); + var headers = [] params.columns = params.columns.filter(function(c, i) { - return visible[i] && c.data !== 'actions' + var ret = visible[i] && c.data !== 'actions' + if (options.excludeId) { + ret = ret && c.data !== "id" + } + if (ret) { + headers.push(api.columns().header()[i].textContent) + } + return ret; }) - if (options.excludeId) { - params.columns = params.columns.filter( (c) => c.data !== "id") - } var exportBody = getFullData(params); d.body = []; d.body.length = 0; d.body.push.apply(d.body, exportBody); + + d.header = []; + d.header.length = 0; + d.header.push.apply(d.header, headers); }) } catch { } -- GitLab