From c13d6271adf70e3ee7787b477715bdf52fa82aa1 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Wed, 30 Mar 2022 13:57:39 +0200 Subject: [PATCH] Bug 30394: Make datatables.js aware of x-koha-request-id This patch makes the wrapper handle the data.draw parameter (from DataTables) translating it into the x-koha-request-id header for making the Koha request, and then translates the received header into data.draw for proper use in DataTables. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Jonathan Druart Signed-off-by: Martin Renvoize --- koha-tmpl/intranet-tmpl/prog/js/datatables.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/datatables.js b/koha-tmpl/intranet-tmpl/prog/js/datatables.js index 12dd6683ae..d82cc3d8f8 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js +++ b/koha-tmpl/intranet-tmpl/prog/js/datatables.js @@ -538,13 +538,17 @@ jQuery.fn.dataTable.ext.errMode = function(settings, note, message) { }, 'dataFilter': function(data, type) { var json = {data: JSON.parse(data)}; - if(total = this._xhr.getResponseHeader('x-total-count')) { + if (total = this._xhr.getResponseHeader('x-total-count')) { json.recordsTotal = total; json.recordsFiltered = total; } - if(total = this._xhr.getResponseHeader('x-base-total-count')) { + if (total = this._xhr.getResponseHeader('x-base-total-count')) { json.recordsTotal = total; } + if (draw = this._xhr.getResponseHeader('x-koha-request-id')) { + json.draw = draw; + } + return JSON.stringify(json); }, 'data': function( data, settings ) { @@ -623,6 +627,10 @@ jQuery.fn.dataTable.ext.errMode = function(settings, note, message) { dataSet._match = options.criteria; + if ( data["draw"] !== undefined ) { + settings.ajax.headers = { 'x-koha-request-id': data.draw } + } + if(options.columns) { var order = data.order; var orderArray = new Array(); -- 2.20.1