MCPcopy Create free account
hub / github.com/breck7/scroll / _fnDraw

Function _fnDraw

external/.datatables.js:3137–3234  ·  view source on GitHub ↗

* Insert the required TR nodes into the table for display * @param {object} oSettings dataTables settings object * @param ajaxComplete true after ajax call to complete rendering * @memberof DataTable#oApi

(oSettings, ajaxComplete)

Source from the content-addressed store, hash-verified

3135 * @memberof DataTable#oApi
3136 */
3137 function _fnDraw(oSettings, ajaxComplete) {
3138 // Allow for state saving and a custom start position
3139 _fnStart(oSettings)
3140
3141 /* Provide a pre-callback function which can be used to cancel the draw is false is returned */
3142 var aPreDraw = _fnCallbackFire(oSettings, "aoPreDrawCallback", "preDraw", [oSettings])
3143 if (aPreDraw.indexOf(false) !== -1) {
3144 _fnProcessingDisplay(oSettings, false)
3145 return
3146 }
3147
3148 var anRows = []
3149 var iRowCount = 0
3150 var bServerSide = _fnDataSource(oSettings) == "ssp"
3151 var aiDisplay = oSettings.aiDisplay
3152 var iDisplayStart = oSettings._iDisplayStart
3153 var iDisplayEnd = oSettings.fnDisplayEnd()
3154 var columns = oSettings.aoColumns
3155 var body = $(oSettings.nTBody)
3156
3157 oSettings.bDrawing = true
3158
3159 /* Server-side processing draw intercept */
3160 if (oSettings.deferLoading) {
3161 oSettings.deferLoading = false
3162 oSettings.iDraw++
3163 _fnProcessingDisplay(oSettings, false)
3164 } else if (!bServerSide) {
3165 oSettings.iDraw++
3166 } else if (!oSettings.bDestroying && !ajaxComplete) {
3167 // Show loading message for server-side processing
3168 if (oSettings.iDraw === 0) {
3169 body.empty().append(_emptyRow(oSettings))
3170 }
3171
3172 _fnAjaxUpdate(oSettings)
3173 return
3174 }
3175
3176 if (aiDisplay.length !== 0) {
3177 var iStart = bServerSide ? 0 : iDisplayStart
3178 var iEnd = bServerSide ? oSettings.aoData.length : iDisplayEnd
3179
3180 for (var j = iStart; j < iEnd; j++) {
3181 var iDataIndex = aiDisplay[j]
3182 var aoData = oSettings.aoData[iDataIndex]
3183 if (aoData.nTr === null) {
3184 _fnCreateTr(oSettings, iDataIndex)
3185 }
3186
3187 var nRow = aoData.nTr
3188
3189 // Add various classes as needed
3190 for (var i = 0; i < columns.length; i++) {
3191 var col = columns[i]
3192 var td = aoData.anCells[i]
3193
3194 _addClass(td, _ext.type.className[col.sType]) // auto class

Callers 5

_fnReDrawFunction · 0.85
_fnAjaxUpdateDrawFunction · 0.85
_fnPageChangeFunction · 0.85
.datatables.jsFile · 0.85
searchFnFunction · 0.85

Calls 11

_fnStartFunction · 0.85
_fnCallbackFireFunction · 0.85
_fnProcessingDisplayFunction · 0.85
_fnDataSourceFunction · 0.85
_emptyRowFunction · 0.85
_fnAjaxUpdateFunction · 0.85
_fnCreateTrFunction · 0.85
_addClassFunction · 0.85
_fnGetDataMasterFunction · 0.85
indexOfMethod · 0.80
$Function · 0.70

Tested by

no test coverage detected