diff --git a/js/dataTables.pipeline.js b/js/dataTables.pipeline.js index 670498350..f9be0d690 100644 --- a/js/dataTables.pipeline.js +++ b/js/dataTables.pipeline.js @@ -1,11 +1,16 @@ +/* + * @copyright Copyright (C) 2010-2021 Combodo SARL + * @license http://opensource.org/licenses/AGPL-3.0 + */ + // // Pipelining function for DataTables. To be used to the `ajax` option of DataTables // var numberCachePages = 5; -$.fn.dataTable.pipeline = function ( opts ) { +$.fn.dataTable.pipeline = function (opts) { // Configuration options - var conf = $.extend( { + var conf = $.extend({ pages: numberCachePages, // number of pages to cache url: '', // script url data: null, // function or object with parameters to send to the server @@ -21,6 +26,26 @@ $.fn.dataTable.pipeline = function ( opts ) { var draw_number = 1; return function ( request, drawCallback, settings ) { + let message = Dict.S('UI:Datatables:Language:Processing'); + if (this.find('tbody').find('td').length == 0) { + this.find('tbody').append(' '); + this.find('tbody').append(' '); + } + + this.find('tbody').block({ + message: message, + css: { + border: '0px ', + top: '20px', + } + }); + this.find('thead').block({ + message: message, + css: { + border: '0px ', + top: '20px', + } + }); var ajax = false; var requestStart = request.start; var drawStart = request.start; @@ -87,8 +112,7 @@ $.fn.dataTable.pipeline = function ( opts ) { if ( d ) { $.extend( request, d ); } - } - else if ( $.isPlainObject( conf.data ) ) { + } else if ( $.isPlainObject( conf.data ) ) { // As an object, the data given extends the default $.extend( request, conf.data ); } @@ -110,8 +134,7 @@ $.fn.dataTable.pipeline = function ( opts ) { drawCallback(json); } } ); - } - else { + } else { json = $.extend( true, {}, cacheLastJson ); json.draw = request.draw; // Update the echo for each response json.data.splice( 0, requestStart-cacheLower ); diff --git a/templates/base/components/datatable/layout.ready.js.twig b/templates/base/components/datatable/layout.ready.js.twig index 349eee34e..adf1873ea 100644 --- a/templates/base/components/datatable/layout.ready.js.twig +++ b/templates/base/components/datatable/layout.ready.js.twig @@ -189,6 +189,9 @@ var oTable{{ sListId }} = $('#{{ oUIBlock.GetId() }}').DataTable({ this.parent().find('.dataTables_paginate').hide(); this.parent().find('.dataTables_length').hide(); } + this.find('.ibo-dataTables--processing').remove(); + this.find('tbody').unblock(); + this.find('thead').unblock(); } }); @@ -329,7 +332,6 @@ $aOptions = { iPageSize: '{{ oUIBlock.GetOption("iPageSize") }}', oClassAliases: JSON.parse('{{ oUIBlock.GetOption("oClassAliases") |raw }}'), sTableId: '{{ oUIBlock.GetOption("sTableId") }}', - //oExtraParams sRenderUrl: "{{ oUIBlock.GetAjaxUrl() }}", oData: {{ oUIBlock.GetJsonAjaxData() |raw }}, oDefaultSettings: {{ oUIBlock.GetOption("oDefaultSettings")|raw }},