From 6428a286291e995abe8ecf3ecea8f415c79f3b7a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 21 Mar 2016 15:49:25 +0000 Subject: [PATCH] Bug 16040: Update fnReloadAjax DT plugin to fix quotes deletion When deleting quotes, the table is not regenerated and a JS error is raised. That is because we are not using an up-to-date plugin Test plan: Delete a quote and confirm you do not get a JS error --- .../lib/jquery/plugins/dataTables.fnReloadAjax.js | 150 ++++++++++++++------- 1 file changed, 101 insertions(+), 49 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/lib/jquery/plugins/dataTables.fnReloadAjax.js b/koha-tmpl/intranet-tmpl/lib/jquery/plugins/dataTables.fnReloadAjax.js index 0eac52a..94d3ebe 100644 --- a/koha-tmpl/intranet-tmpl/lib/jquery/plugins/dataTables.fnReloadAjax.js +++ b/koha-tmpl/intranet-tmpl/lib/jquery/plugins/dataTables.fnReloadAjax.js @@ -1,50 +1,102 @@ -$.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw ) +/** + * By default DataTables only uses the sAjaxSource variable at initialisation + * time, however it can be useful to re-read an Ajax source and have the table + * update. Typically you would need to use the `fnClearTable()` and + * `fnAddData()` functions, however this wraps it all up in a single function + * call. + * + * DataTables 1.10 provides the `dt-api ajax.url()` and `dt-api ajax.reload()` + * methods, built-in, to give the same functionality as this plug-in. As such + * this method is marked deprecated, but is available for use with legacy + * version of DataTables. Please use the new API if you are used DataTables 1.10 + * or newer. + * + * @name fnReloadAjax + * @summary Reload the table's data from the Ajax source + * @author [Allan Jardine](http://sprymedia.co.uk) + * @deprecated + * + * @param {string} [sNewSource] URL to get the data from. If not give, the + * previously used URL is used. + * @param {function} [fnCallback] Callback that is executed when the table has + * redrawn with the new data + * @param {boolean} [bStandingRedraw=false] Standing redraw (don't changing the + * paging) + * + * @example + * var table = $('#example').dataTable(); + * + * // Example call to load a new file + * table.fnReloadAjax( 'media/examples_support/json_source2.txt' ); + * + * // Example call to reload from original file + * table.fnReloadAjax(); + */ + +jQuery.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw ) { - if ( typeof sNewSource != 'undefined' && sNewSource != null ) - { - oSettings.sAjaxSource = sNewSource; - } - this.oApi._fnProcessingDisplay( oSettings, true ); - var that = this; - var iStart = oSettings._iDisplayStart; - var aData = []; - - this.oApi._fnServerParams( oSettings, aData ); - - oSettings.fnServerData( oSettings.sAjaxSource, aData, function(json) { - /* Clear the old information from the table */ - that.oApi._fnClearTable( oSettings ); - - /* Got the data - add it to the table */ - var aData = (oSettings.sAjaxDataProp !== "") ? - that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json; - - for ( var i=0 ; i