|
6400 | 6400 | */
|
6401 | 6401 | function _fnLoadState ( settings, oInit, callback )
|
6402 | 6402 | {
|
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 | + } |
6410 | 6407 |
|
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 | + } |
6418 | 6411 |
|
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 ); |
6425 | 6413 |
|
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 | + } |
6431 | 6419 |
|
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; |
6434 | 6423 |
|
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 | + } |
6444 | 6428 |
|
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 | + } |
6455 | 6436 |
|
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 | + } |
6460 | 6443 |
|
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 | + } |
6466 | 6449 |
|
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 ); |
6471 | 6452 |
|
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 | + } |
6478 | 6462 |
|
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 | + } |
6482 | 6473 |
|
6483 |
| - if ( ! settings.oFeatures.bStateSave ) { |
6484 |
| - callback(); |
6485 |
| - return; |
| 6474 | + // Search |
| 6475 | + if ( s.search !== undefined ) { |
| 6476 | + $.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) ); |
6486 | 6477 | }
|
6487 | 6478 |
|
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]; |
6489 | 6484 |
|
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 | + } |
6492 | 6495 | }
|
6493 |
| - // otherwise, wait for the loaded callback to be executed |
6494 |
| - } |
| 6496 | + |
| 6497 | + _fnCallbackFire( settings, 'aoStateLoaded', 'stateLoaded', [settings, s] ); |
| 6498 | + callback(); |
| 6499 | + }; |
6495 | 6500 |
|
6496 | 6501 |
|
6497 | 6502 | /**
|
|
15234 | 15239 | _fnSortData: _fnSortData,
|
15235 | 15240 | _fnSaveState: _fnSaveState,
|
15236 | 15241 | _fnLoadState: _fnLoadState,
|
| 15242 | + _fnImplementState: _fnImplementState, |
15237 | 15243 | _fnSettingsFromNode: _fnSettingsFromNode,
|
15238 | 15244 | _fnLog: _fnLog,
|
15239 | 15245 | _fnMap: _fnMap,
|
|
0 commit comments