Вход Регистрация
Файл: datatables/media/src/core/core.init.js
Строк: 209
<?php
/**
 * Draw the table for the first time, adding all required features
 *  @param {object} oSettings dataTables settings object
 *  @memberof DataTable#oApi
 */
function _fnInitialise oSettings )
{
    var 
iiLeniAjaxStart=oSettings.iInitDisplayStart;
    
    
/* Ensure that the table data is fully initialised */
    
if ( oSettings.bInitialised === false )
    {
        
setTimeout( function(){ _fnInitialiseoSettings ); }, 200 );
        return;
    }
    
    
/* Show the display HTML options */
    
_fnAddOptionsHtmloSettings );
    
    
/* Build and draw the header / footer for the table */
    
_fnBuildHeadoSettings );
    
_fnDrawHeadoSettingsoSettings.aoHeader );
    if ( 
oSettings.nTFoot )
    {
        
_fnDrawHeadoSettingsoSettings.aoFooter );
    }

    
/* Okay to show that something is going on now */
    
_fnProcessingDisplayoSettingstrue );
    
    
/* Calculate sizes for columns */
    
if ( oSettings.oFeatures.bAutoWidth )
    {
        
_fnCalculateColumnWidthsoSettings );
    }
    
    for ( 
i=0iLen=oSettings.aoColumns.length i<iLen i++ )
    {
        if ( 
oSettings.aoColumns[i].sWidth !== null )
        {
            
oSettings.aoColumns[i].nTh.style.width _fnStringToCssoSettings.aoColumns[i].sWidth );
        }
    }
    
    
/* If there is default sorting required - let's do it. The sort function will do the
     * drawing for us. Otherwise we draw the table regardless of the Ajax source - this allows
     * the table to look initialised for Ajax sourcing data (show 'loading' message possibly)
     */
    
if ( oSettings.oFeatures.bSort )
    {
        
_fnSortoSettings );
    }
    else if ( 
oSettings.oFeatures.bFilter )
    {
        
_fnFilterCompleteoSettingsoSettings.oPreviousSearch );
    }
    else
    {
        
oSettings.aiDisplay oSettings.aiDisplayMaster.slice();
        
_fnCalculateEndoSettings );
        
_fnDrawoSettings );
    }
    
    
/* if there is an ajax source load the data */
    
if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
    {
        var 
aoData = [];
        
_fnServerParamsoSettingsaoData );
        
oSettings.fnServerData.calloSettings.oInstanceoSettings.sAjaxSourceaoData, function(json) {
            var 
aData = (oSettings.sAjaxDataProp !== "") ?
                 
_fnGetObjectDataFnoSettings.sAjaxDataProp )(json) : json;

            
/* Got the data - add it to the table */
            
for ( i=i<aData.length i++ )
            {
                
_fnAddDataoSettingsaData[i] );
            }
            
            
/* Reset the init display for cookie saving. We've already done a filter, and
             * therefore cleared it before. So we need to make it appear 'fresh'
             */
            
oSettings.iInitDisplayStart iAjaxStart;
            
            if ( 
oSettings.oFeatures.bSort )
            {
                
_fnSortoSettings );
            }
            else
            {
                
oSettings.aiDisplay oSettings.aiDisplayMaster.slice();
                
_fnCalculateEndoSettings );
                
_fnDrawoSettings );
            }
            
            
_fnProcessingDisplayoSettingsfalse );
            
_fnInitCompleteoSettingsjson );
        }, 
oSettings );
        return;
    }
    
    
/* Server-side processing initialisation complete is done at the end of _fnDraw */
    
if ( !oSettings.oFeatures.bServerSide )
    {
        
_fnProcessingDisplayoSettingsfalse );
        
_fnInitCompleteoSettings );
    }
}


/**
 * Draw the table for the first time, adding all required features
 *  @param {object} oSettings dataTables settings object
 *  @param {object} [json] JSON from the server that completed the table, if using Ajax source
 *    with client-side processing (optional)
 *  @memberof DataTable#oApi
 */
function _fnInitComplete oSettingsjson )
{
    
oSettings._bInitComplete true;
    
_fnCallbackFireoSettings'aoInitComplete''init', [oSettingsjson] );
}


/**
 * Language compatibility - when certain options are given, and others aren't, we
 * need to duplicate the values over, in order to provide backwards compatibility
 * with older language files.
 *  @param {object} oSettings dataTables settings object
 *  @memberof DataTable#oApi
 */
function _fnLanguageCompatoLanguage )
{
    var 
oDefaults DataTable.defaults.oLanguage;

    
/* Backwards compatibility - if there is no sEmptyTable given, then use the same as
     * sZeroRecords - assuming that is given.
     */
    
if ( !oLanguage.sEmptyTable && oLanguage.sZeroRecords &&
        
oDefaults.sEmptyTable === "No data available in table" )
    {
        
_fnMapoLanguageoLanguage'sZeroRecords''sEmptyTable' );
    }

    
/* Likewise with loading records */
    
if ( !oLanguage.sLoadingRecords && oLanguage.sZeroRecords &&
        
oDefaults.sLoadingRecords === "Loading..." )
    {
        
_fnMapoLanguageoLanguage'sZeroRecords''sLoadingRecords' );
    }
}
?>
Онлайн: 0
Реклама