|
|
|
/*!
|
|
|
|
Copyright 2017 SpryMedia Ltd.
|
|
|
|
|
|
|
|
License MIT - http://datatables.net/license/mit
|
|
|
|
|
|
|
|
This feature plug-in for DataTables provides a function which will
|
|
|
|
take DataTables options from the browser's URL search string and
|
|
|
|
return an object that can be used to construct a DataTable. This
|
|
|
|
allows deep linking to be easily implemented with DataTables - for
|
|
|
|
example a URL might be `myTable?displayStart=10` which will
|
|
|
|
automatically cause the second page of the DataTable to be displayed.
|
|
|
|
|
|
|
|
This plug-in works on a whitelist basis - you must specify which
|
|
|
|
[initialisation parameters](//datatables.net/reference/option) you
|
|
|
|
want the URL search string to specify. Any parameter given in the
|
|
|
|
URL which is not listed will be ignored (e.g. you are unlikely to
|
|
|
|
want to let the URL search string specify the `ajax` option).
|
|
|
|
|
|
|
|
This specification is done by passing an array of property names
|
|
|
|
to the `$.fn.dataTable.ext.deepLink` function. If you do which to
|
|
|
|
allow _every_ parameter (I wouldn't recommend it) you can use `all`
|
|
|
|
instead of an array.
|
|
|
|
|
|
|
|
@example
|
|
|
|
// Allow a display start point and search string to be specified
|
|
|
|
$('#myTable').DataTable(
|
|
|
|
$.fn.dataTable.ext.deepLink( [ 'displayStart', 'search.search' ] )
|
|
|
|
);
|
|
|
|
|
|
|
|
@example
|
|
|
|
// As above, but with a default search
|
|
|
|
var options = $.fn.dataTable.ext.deepLink(['displayStart', 'search.search']);
|
|
|
|
|
|
|
|
$('#myTable').DataTable(
|
|
|
|
$.extend( true, {
|
|
|
|
search: { search: 'Initial search value' }
|
|
|
|
}, options )
|
|
|
|
);
|
|
|
|
Deep linking options parsing support for DataTables
|
|
|
|
2017 SpryMedia Ltd - datatables.net/license
|
|
|
|
*/
|
|
|
|
(function(l,m,b,n){var h=b.fn.dataTable.ext.internal._fnSetObjectDataFn;b.fn.dataTable.ext.deepLink=function(e){for(var f=location.search.replace(/^\?/,"").split("&"),g={},c=0,k=f.length;c<k;c++){var a=f[c].split("="),d=decodeURIComponent(a[0]);a=decodeURIComponent(a[1]);if("true"===a)a=!0;else if("false"===a)a=!1;else if(!a.match(/[^\d]/)&&"search.search"!==d)a*=1;else if(0===a.indexOf("{")||0===a.indexOf("["))try{a=b.parseJSON(a)}catch(p){}"all"!==e&&-1===b.inArray(d,e)||h(d)(g,a)}return g}})(window,
|
|
|
|
document,jQuery);
|