UNPKG

alpaca

Version:

Alpaca provides the easiest and fastest way to generate interactive forms for the web and mobile devices. It runs simply as HTML5 or more elaborately using Bootstrap, jQuery Mobile or jQuery UI. Alpaca uses Handlebars to process JSON schema and provide

103 lines (88 loc) 3.24 kB
/** * 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 ) { // 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 ); };