Bugzilla – Attachment 49397 Details for
Bug 16040
Quote deletion never ending processing
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 16040: Update fnReloadAjax DT plugin to fix quotes deletion
Bug-16040-Update-fnReloadAjax-DT-plugin-to-fix-quo.patch (text/plain), 5.83 KB, created by
Jonathan Druart
on 2016-03-21 15:51:07 UTC
(
hide
)
Description:
Bug 16040: Update fnReloadAjax DT plugin to fix quotes deletion
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2016-03-21 15:51:07 UTC
Size:
5.83 KB
patch
obsolete
>From 6428a286291e995abe8ecf3ecea8f415c79f3b7a Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >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<aData.length ; i++ ) >- { >- that.oApi._fnAddData( oSettings, aData[i] ); >- } >- >- oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); >- that.fnDraw(); >- >- if ( typeof bStandingRedraw != 'undefined' && bStandingRedraw === true ) >- { >- oSettings._iDisplayStart = iStart; >- that.fnDraw( false ); >- } >- >- that.oApi._fnProcessingDisplay( oSettings, false ); >- >- /* Callback user function - for event handlers etc */ >- if ( typeof fnCallback == 'function' && fnCallback != null ) >- { >- fnCallback( oSettings ); >- } >- }, oSettings ); >-} >- >-/* Example call to load a new file */ >-//oTable.fnReloadAjax( 'media/examples_support/json_source2.txt' ); >- >-/* Example call to reload from original file */ >-//oTable.fnReloadAjax(); >+ // DataTables 1.10 compatibility - if 1.10 then `versionCheck` exists. >+ // 1.10's API has ajax reloading built in, so we use those abilities >+ // directly. >+ if ( jQuery.fn.dataTable.versionCheck ) { >+ var api = new jQuery.fn.dataTable.Api( oSettings ); >+ >+ if ( sNewSource ) { >+ api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw ); >+ } >+ else { >+ api.ajax.reload( fnCallback, !bStandingRedraw ); >+ } >+ return; >+ } >+ >+ if ( sNewSource !== undefined && sNewSource !== null ) { >+ oSettings.sAjaxSource = sNewSource; >+ } >+ >+ // Server-side processing should just call fnDraw >+ if ( oSettings.oFeatures.bServerSide ) { >+ this.fnDraw(); >+ return; >+ } >+ >+ this.oApi._fnProcessingDisplay( oSettings, true ); >+ var that = this; >+ var iStart = oSettings._iDisplayStart; >+ var aData = []; >+ >+ this.oApi._fnServerParams( oSettings, aData ); >+ >+ oSettings.fnServerData.call( oSettings.oInstance, 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<aData.length ; i++ ) >+ { >+ that.oApi._fnAddData( oSettings, aData[i] ); >+ } >+ >+ oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); >+ >+ that.fnDraw(); >+ >+ if ( bStandingRedraw === true ) >+ { >+ oSettings._iDisplayStart = iStart; >+ that.oApi._fnCalculateEnd( oSettings ); >+ that.fnDraw( false ); >+ } >+ >+ that.oApi._fnProcessingDisplay( oSettings, false ); >+ >+ /* Callback user function - for event handlers etc */ >+ if ( typeof fnCallback == 'function' && fnCallback !== null ) >+ { >+ fnCallback( oSettings ); >+ } >+ }, oSettings ); >+}; >-- >2.7.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 16040
:
49397
|
49399
|
49485