Skip to content

Commit 3eb5dab

Browse files
committedSep 10, 2021
d4d67505a6a80b5645bb1078037e3bcd14816070 update: Move implementstate function so that it is available from the outside
Jira Issue DD-2190 Sync to source repo @d4d67505a6a80b5645bb1078037e3bcd14816070
1 parent b5bd164 commit 3eb5dab

File tree

3 files changed

+228
-222
lines changed

3 files changed

+228
-222
lines changed
 

‎datatables.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@
99
],
1010
"src-repo": "http://github.com/DataTables/DataTablesSrc",
1111
"last-tag": "1.11.2",
12-
"last-sync": "2496e827205d7a138c2da4456c4926c7bc6c00f8"
12+
"last-sync": "d4d67505a6a80b5645bb1078037e3bcd14816070"
1313
}

‎js/jquery.dataTables.js

+82-76
Original file line numberDiff line numberDiff line change
@@ -6400,98 +6400,103 @@
64006400
*/
64016401
function _fnLoadState ( settings, oInit, callback )
64026402
{
6403-
var i, ien;
6404-
var columns = settings.aoColumns;
6405-
var loaded = function ( s ) {
6406-
if ( ! s || ! s.time ) {
6407-
callback();
6408-
return;
6409-
}
6403+
if ( ! settings.oFeatures.bStateSave ) {
6404+
callback();
6405+
return;
6406+
}
64106407

6411-
// Allow custom and plug-in manipulation functions to alter the saved data set and
6412-
// cancelling of loading by returning false
6413-
var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
6414-
if ( $.inArray( false, abStateLoad ) !== -1 ) {
6415-
callback();
6416-
return;
6417-
}
6408+
var loaded = function(state) {
6409+
_fnImplementState(settings, state, callback);
6410+
}
64186411

6419-
// Reject old data
6420-
var duration = settings.iStateDuration;
6421-
if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
6422-
callback();
6423-
return;
6424-
}
6412+
var state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );
64256413

6426-
// Number of columns have changed - all bets are off, no restore of settings
6427-
if ( s.columns && columns.length !== s.columns.length ) {
6428-
callback();
6429-
return;
6430-
}
6414+
if ( state !== undefined ) {
6415+
_fnImplementState( settings, state, callback );
6416+
}
6417+
// otherwise, wait for the loaded callback to be executed
6418+
}
64316419

6432-
// Store the saved state so it might be accessed at any time
6433-
settings.oLoadedState = $.extend( true, {}, s );
6420+
function _fnImplementState ( settings, s, callback) {
6421+
var i, ien;
6422+
var columns = settings.aoColumns;
64346423

6435-
// Restore key features - todo - for 1.11 this needs to be done by
6436-
// subscribed events
6437-
if ( s.start !== undefined ) {
6438-
settings._iDisplayStart = s.start;
6439-
settings.iInitDisplayStart = s.start;
6440-
}
6441-
if ( s.length !== undefined ) {
6442-
settings._iDisplayLength = s.length;
6443-
}
6424+
if ( ! s || ! s.time ) {
6425+
callback();
6426+
return;
6427+
}
64446428

6445-
// Order
6446-
if ( s.order !== undefined ) {
6447-
settings.aaSorting = [];
6448-
$.each( s.order, function ( i, col ) {
6449-
settings.aaSorting.push( col[0] >= columns.length ?
6450-
[ 0, col[1] ] :
6451-
col
6452-
);
6453-
} );
6454-
}
6429+
// Allow custom and plug-in manipulation functions to alter the saved data set and
6430+
// cancelling of loading by returning false
6431+
var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
6432+
if ( $.inArray( false, abStateLoad ) !== -1 ) {
6433+
callback();
6434+
return;
6435+
}
64556436

6456-
// Search
6457-
if ( s.search !== undefined ) {
6458-
$.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
6459-
}
6437+
// Reject old data
6438+
var duration = settings.iStateDuration;
6439+
if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
6440+
callback();
6441+
return;
6442+
}
64606443

6461-
// Columns
6462-
//
6463-
if ( s.columns ) {
6464-
for ( i=0, ien=s.columns.length ; i<ien ; i++ ) {
6465-
var col = s.columns[i];
6444+
// Number of columns have changed - all bets are off, no restore of settings
6445+
if ( s.columns && columns.length !== s.columns.length ) {
6446+
callback();
6447+
return;
6448+
}
64666449

6467-
// Visibility
6468-
if ( col.visible !== undefined ) {
6469-
columns[i].bVisible = col.visible;
6470-
}
6450+
// Store the saved state so it might be accessed at any time
6451+
settings.oLoadedState = $.extend( true, {}, s );
64716452

6472-
// Search
6473-
if ( col.search !== undefined ) {
6474-
$.extend( settings.aoPreSearchCols[i], _fnSearchToHung( col.search ) );
6475-
}
6476-
}
6477-
}
6453+
// Restore key features - todo - for 1.11 this needs to be done by
6454+
// subscribed events
6455+
if ( s.start !== undefined ) {
6456+
settings._iDisplayStart = s.start;
6457+
settings.iInitDisplayStart = s.start;
6458+
}
6459+
if ( s.length !== undefined ) {
6460+
settings._iDisplayLength = s.length;
6461+
}
64786462

6479-
_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
6480-
callback();
6481-
};
6463+
// Order
6464+
if ( s.order !== undefined ) {
6465+
settings.aaSorting = [];
6466+
$.each( s.order, function ( i, col ) {
6467+
settings.aaSorting.push( col[0] >= columns.length ?
6468+
[ 0, col[1] ] :
6469+
col
6470+
);
6471+
} );
6472+
}
64826473

6483-
if ( ! settings.oFeatures.bStateSave ) {
6484-
callback();
6485-
return;
6474+
// Search
6475+
if ( s.search !== undefined ) {
6476+
$.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
64866477
}
64876478

6488-
var state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );
6479+
// Columns
6480+
//
6481+
if ( s.columns ) {
6482+
for ( i=0, ien=s.columns.length ; i<ien ; i++ ) {
6483+
var col = s.columns[i];
64896484

6490-
if ( state !== undefined ) {
6491-
loaded( state );
6485+
// Visibility
6486+
if ( col.visible !== undefined ) {
6487+
columns[i].bVisible = col.visible;
6488+
}
6489+
6490+
// Search
6491+
if ( col.search !== undefined ) {
6492+
$.extend( settings.aoPreSearchCols[i], _fnSearchToHung( col.search ) );
6493+
}
6494+
}
64926495
}
6493-
// otherwise, wait for the loaded callback to be executed
6494-
}
6496+
6497+
_fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
6498+
callback();
6499+
};
64956500

64966501

64976502
/**
@@ -15234,6 +15239,7 @@
1523415239
_fnSortData: _fnSortData,
1523515240
_fnSaveState: _fnSaveState,
1523615241
_fnLoadState: _fnLoadState,
15242+
_fnImplementState: _fnImplementState,
1523715243
_fnSettingsFromNode: _fnSettingsFromNode,
1523815244
_fnLog: _fnLog,
1523915245
_fnMap: _fnMap,

‎js/jquery.dataTables.min.js

+145-145
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.