Skip to content

Commit f343a09

Browse files
Merge pull request #1 from eekes/master
Activate StateSave
2 parents fb7c61c + 624f7f6 commit f343a09

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ The `filters` are optional, here you can pass searchable/filterable fields
213213
};
214214
215215
{# on page load, init the datatable #}
216-
ajaxDatatable(ajaxCallPath, sortable, filters);
216+
ajaxDatatable(ajaxCallPath, sortable, filters, stateSaveAffix);
217217
218218
{# on submit, change, whenever you want #}
219219
$(document).on("click", "#js-filter-submit", function(){

js/ajax-datatables.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,26 @@
1010
var oDatatable;
1111

1212
/* ajax datatable */
13-
function ajaxDatatable(path, sorting, filters){
13+
function ajaxDatatable(path, sorting, filters, stateSaveAffix){
1414
var path = path || '';
1515
var sorting = sorting || [];
1616
var filters = filters || {};
17+
var stateSaveAffix = stateSaveAffix || '';
1718

1819
if (oDatatable === undefined) {
1920
/* first init */
20-
initAjaxDatatable(path, sorting, filters)
21+
initAjaxDatatable(path, sorting, filters, stateSaveAffix)
2122
} else {
2223
/* reload */
2324
oDatatable.ajax.reload();
2425
}
2526
}
2627

27-
function initAjaxDatatable(path, sorting, filters){
28-
28+
function initAjaxDatatable(path, sorting, filters, stateSaveAffix){
2929
var $ajaxDatatable = $('.ajaxdatatable');
3030

31+
stateKey = window.location.pathname + stateSaveAffix;
32+
3133
oDatatable = $ajaxDatatable.DataTable({
3234
"oLanguage": {
3335
"sLengthMenu": "Toon _MENU_ entries",
@@ -43,6 +45,7 @@ function initAjaxDatatable(path, sorting, filters){
4345
"sLast": "Laatste"
4446
}
4547
},
48+
"bStateSave": true,
4649
"processing": true,
4750
"serverSide": true,
4851
"orderMulti": false,
@@ -56,7 +59,13 @@ function initAjaxDatatable(path, sorting, filters){
5659
}
5760
},
5861
"columns": sorting,
59-
"order": [[ getDefaultSortField($ajaxDatatable), getDefaultSortOrder($ajaxDatatable)]]
62+
"order": [[ getDefaultSortField($ajaxDatatable), getDefaultSortOrder($ajaxDatatable)]],
63+
"stateSaveCallback": function(settings, data) {
64+
localStorage.setItem('DataTables-' + settings.sInstance + stateKey, JSON.stringify(data))
65+
},
66+
"stateLoadCallback": function(settings) {
67+
return JSON.parse( localStorage.getItem('DataTables-' + settings.sInstance + stateKey))
68+
}
6069
});
6170
}
6271

js/ajax-datatables.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)