(data, opt)
| 3008 | } |
| 3009 | |
| 3010 | function createDataTableHTML(data, opt) { |
| 3011 | var sourceFormat = detectSourceFormat(data); |
| 3012 | var dataTableLimit = opt.dataTableLimit || DEFAULT_DATA_TABLE_LIMIT; |
| 3013 | |
| 3014 | if (!sourceFormat) { |
| 3015 | return ''; |
| 3016 | } |
| 3017 | |
| 3018 | var html = ['<table><tbody>']; |
| 3019 | |
| 3020 | if (sourceFormat === 'arrayRows') { |
| 3021 | for (var i = 0; i < data.length && i <= dataTableLimit; i++) { |
| 3022 | var line = data[i]; |
| 3023 | var htmlLine = ['<tr>']; |
| 3024 | for (var j = 0; j < line.length; j++) { |
| 3025 | var val = i === dataTableLimit ? '...' : line[j]; |
| 3026 | htmlLine.push('<td>' + encodeHTML(val) + '</td>'); |
| 3027 | } |
| 3028 | htmlLine.push('</tr>'); |
| 3029 | html.push(htmlLine.join('')); |
| 3030 | } |
| 3031 | } |
| 3032 | else if (sourceFormat === 'objectRows') { |
| 3033 | for (var i = 0; i < data.length && i <= dataTableLimit; i++) { |
| 3034 | var line = data[i]; |
| 3035 | var htmlLine = ['<tr>']; |
| 3036 | for (var key in line) { |
| 3037 | if (line.hasOwnProperty(key)) { |
| 3038 | var keyText = i === dataTableLimit ? '...' : key; |
| 3039 | htmlLine.push('<td class="test-data-table-key">' + encodeHTML(keyText) + '</td>'); |
| 3040 | var val = i === dataTableLimit ? '...' : line[key]; |
| 3041 | htmlLine.push('<td>' + encodeHTML(val) + '</td>'); |
| 3042 | } |
| 3043 | } |
| 3044 | htmlLine.push('</tr>'); |
| 3045 | html.push(htmlLine.join('')); |
| 3046 | } |
| 3047 | } |
| 3048 | else if (sourceFormat === 'keyedColumns') { |
| 3049 | for (var key in data) { |
| 3050 | var htmlLine = ['<tr>']; |
| 3051 | htmlLine.push('<td class="test-data-table-key">' + encodeHTML(key) + '</td>'); |
| 3052 | if (data.hasOwnProperty(key)) { |
| 3053 | var col = data[key] || []; |
| 3054 | for (var i = 0; i < col.length && i <= dataTableLimit; i++) { |
| 3055 | var val = i === dataTableLimit ? '...' : col[i]; |
| 3056 | htmlLine.push('<td>' + encodeHTML(val) + '</td>'); |
| 3057 | } |
| 3058 | } |
| 3059 | htmlLine.push('</tr>'); |
| 3060 | html.push(htmlLine.join('')); |
| 3061 | } |
| 3062 | } |
| 3063 | |
| 3064 | html.push('</tbody></table>'); |
| 3065 | |
| 3066 | return html.join(''); |
| 3067 | } |
no test coverage detected
searching dependent graphs…