|
6382 | 6382 | */
|
6383 | 6383 | function _fnSaveState ( settings )
|
6384 | 6384 | {
|
| 6385 | + if (settings._bLoadingState) { |
| 6386 | + console.log(settings._bLoadingState) |
| 6387 | + return; |
| 6388 | + } |
| 6389 | + |
6385 | 6390 | /* Store the interesting variables */
|
6386 | 6391 | var state = {
|
6387 | 6392 | time: +new Date(),
|
|
6438 | 6443 | function _fnImplementState ( settings, s, callback) {
|
6439 | 6444 | var i, ien;
|
6440 | 6445 | var columns = settings.aoColumns;
|
| 6446 | + settings._bLoadingState = true; |
6441 | 6447 |
|
6442 | 6448 | // When StateRestore was introduced the state could now be implemented at any time
|
6443 | 6449 | // Not just initialisation. To do this an api instance is required in some places
|
6444 | 6450 | var api = settings._bInitComplete ? new DataTable.Api(settings) : null;
|
6445 | 6451 |
|
6446 | 6452 | if ( ! s || ! s.time ) {
|
| 6453 | + settings._bLoadingState = false; |
6447 | 6454 | callback();
|
6448 | 6455 | return;
|
6449 | 6456 | }
|
|
6452 | 6459 | // cancelling of loading by returning false
|
6453 | 6460 | var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
|
6454 | 6461 | if ( $.inArray( false, abStateLoad ) !== -1 ) {
|
| 6462 | + settings._bLoadingState = false; |
6455 | 6463 | callback();
|
6456 | 6464 | return;
|
6457 | 6465 | }
|
6458 | 6466 |
|
6459 | 6467 | // Reject old data
|
6460 | 6468 | var duration = settings.iStateDuration;
|
6461 | 6469 | if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
|
| 6470 | + settings._bLoadingState = false; |
6462 | 6471 | callback();
|
6463 | 6472 | return;
|
6464 | 6473 | }
|
6465 | 6474 |
|
6466 | 6475 | // Number of columns have changed - all bets are off, no restore of settings
|
6467 | 6476 | if ( s.columns && columns.length !== s.columns.length ) {
|
| 6477 | + settings._bLoadingState = false; |
6468 | 6478 | callback();
|
6469 | 6479 | return;
|
6470 | 6480 | }
|
|
6529 | 6539 | }
|
6530 | 6540 | }
|
6531 | 6541 |
|
| 6542 | + settings._bLoadingState = false; |
6532 | 6543 | _fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] );
|
6533 | 6544 | callback();
|
6534 | 6545 | };
|
|
0 commit comments