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

Function _fnColumnTypes

external/.datatables.js:2120–2231  ·  view source on GitHub ↗

* Calculate the 'type' of a column * @param {object} settings dataTables settings object * @memberof DataTable#oApi

(settings)

Source from the content-addressed store, hash-verified

2118 * @memberof DataTable#oApi
2119 */
2120 function _fnColumnTypes(settings) {
2121 var columns = settings.aoColumns
2122 var data = settings.aoData
2123 var types = DataTable.ext.type.detect
2124 var i, ien, j, jen, k, ken
2125 var col, detectedType, cache
2126
2127 // For each column, spin over the data type detection functions, seeing if one matches
2128 for (i = 0, ien = columns.length; i < ien; i++) {
2129 col = columns[i]
2130 cache = []
2131
2132 if (!col.sType && col._sManualType) {
2133 col.sType = col._sManualType
2134 } else if (!col.sType) {
2135 // With SSP type detection can be unreliable and error prone, so we provide a way
2136 // to turn it off.
2137 if (!settings.typeDetect) {
2138 return
2139 }
2140
2141 for (j = 0, jen = types.length; j < jen; j++) {
2142 var typeDetect = types[j]
2143
2144 // There can be either one, or three type detection functions
2145 var oneOf = typeDetect.oneOf
2146 var allOf = typeDetect.allOf || typeDetect
2147 var init = typeDetect.init
2148 var one = false
2149
2150 detectedType = null
2151
2152 // Fast detect based on column assignment
2153 if (init) {
2154 detectedType = _typeResult(typeDetect, init(settings, col, i))
2155
2156 if (detectedType) {
2157 col.sType = detectedType
2158 break
2159 }
2160 }
2161
2162 for (k = 0, ken = data.length; k < ken; k++) {
2163 if (!data[k]) {
2164 continue
2165 }
2166
2167 // Use a cache array so we only need to get the type data
2168 // from the formatter once (when using multiple detectors)
2169 if (cache[k] === undefined) {
2170 cache[k] = _fnGetCellData(settings, k, i, "type")
2171 }
2172
2173 // Only one data point in the column needs to match this function
2174 if (oneOf && !one) {
2175 one = _typeResult(typeDetect, oneOf(cache[k], settings))
2176 }
2177

Callers 3

_fnReDrawFunction · 0.85
_fnAjaxUpdateDrawFunction · 0.85
.datatables.jsFile · 0.85

Calls 7

_typeResultFunction · 0.85
_fnGetCellDataFunction · 0.85
_emptyFunction · 0.85
_columnAutoClassFunction · 0.85
_columnAutoRenderFunction · 0.85
initFunction · 0.70
getMethod · 0.45

Tested by

no test coverage detected