1010var 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
0 commit comments