← All changes
|
classes/Visualizer/Gutenberg/src/Components/DataTable.js
+29
-25
3.10.4
→
3.4.4
View file →
| @@ -45,20 +45,21 @@ | ||
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | initDataTable( tableColumns, tableRow ) { |
| 48 | 48 | const settings = this.props.options; |
| 49 | + | |
| 49 | 50 | const columns = tableColumns.map( ( i, index ) => { |
| 50 | 51 | let type = i.type; |
| 51 | 52 | |
| 52 | 53 | switch ( i.type ) { |
| 53 | - case 'number': | |
| 54 | - type = 'num'; | |
| 55 | - break; | |
| 56 | - case 'date': | |
| 57 | - case 'datetime': | |
| 58 | - case 'timeofday': | |
| 59 | - type = 'date'; | |
| 60 | - break; | |
| 54 | + case 'number': | |
| 55 | + type = 'num'; | |
| 56 | + break; | |
| 57 | + case 'date': | |
| 58 | + case 'datetime': | |
| 59 | + case 'timeofday': | |
| 60 | + type = 'date'; | |
| 61 | + break; | |
| 61 | 62 | } |
| 62 | 63 | |
| 63 | 64 | return { |
| 64 | 65 | title: i.label, |
| @@ -63,9 +64,9 @@ | ||
| 63 | 64 | return { |
| 64 | 65 | title: i.label, |
| 65 | 66 | data: i.label, |
| 66 | 67 | type: type, |
| 67 | - render: this.dataRenderer( type, index ) | |
| 68 | + render: this.dataRenderer( data, type, index ) | |
| 68 | 69 | }; |
| 69 | 70 | }); |
| 70 | 71 | |
| 71 | 72 | const data = tableRow.map( i => { |
| @@ -92,11 +93,11 @@ | ||
| 92 | 93 | pageLength: settings.pageLength_int || 10, |
| 93 | 94 | pagingType: settings.pagingType, |
| 94 | 95 | ordering: 'false' === settings.ordering_bool ? false : true, |
| 95 | 96 | fixedHeader: 'true' === settings.fixedHeader_bool ? true : false, |
| 96 | - scrollCollapse: !! this.props.chartsScreen || 'true' === settings.scrollCollapse_bool ? true : false, | |
| 97 | + scrollCollapse: this.props.chartsScreen && true || 'true' === settings.scrollCollapse_bool ? true : false, | |
| 97 | 98 | scrollY: this.props.chartsScreen && 180 || ( 'true' === settings.scrollCollapse_bool && Number( settings.scrollY_int ) || false ), |
| 98 | - responsive: !! this.props.chartsScreen || 'true' === settings.responsive_bool ? true : false, | |
| 99 | + responsive: this.props.chartsScreen && true || 'true' === settings.responsive_bool ? true : false, | |
| 99 | 100 | searching: false, |
| 100 | 101 | select: false, |
| 101 | 102 | lengthChange: false, |
| 102 | 103 | bFilter: false, |
| @@ -103,15 +104,14 @@ | ||
| 103 | 104 | bInfo: false |
| 104 | 105 | }); |
| 105 | 106 | } |
| 106 | 107 | |
| 107 | - dataRenderer( type, index ) { | |
| 108 | + dataRenderer( data, type, index ) { | |
| 108 | 109 | const settings = this.props.options; |
| 109 | 110 | |
| 110 | - let renderer = null; | |
| 111 | - if ( 'undefined' === typeof settings.series || 'undefined' === typeof settings.series[index] || 'undefined' === typeof settings.series[index].format ) { | |
| 112 | - return renderer; | |
| 113 | - } | |
| 111 | + if ( undefined === settings.series[index]) { | |
| 112 | + return data; | |
| 113 | + } | |
| 114 | 114 | |
| 115 | 115 | switch ( type ) { |
| 116 | 116 | case 'date': |
| 117 | 117 | case 'datetime': |
| @@ -116,47 +116,51 @@ | ||
| 116 | 116 | case 'date': |
| 117 | 117 | case 'datetime': |
| 118 | 118 | case 'timeofday': |
| 119 | 119 | if ( settings.series[index].format && settings.series[index].format.from && settings.series[index].format.to ) { |
| 120 | - renderer = jQuery.fn.dataTable.render.moment( settings.series[index].format.from, settings.series[index].format.to ); | |
| 121 | - } else { | |
| 122 | - renderer = jQuery.fn.dataTable.render.moment( 'MM-DD-YYYY' ); | |
| 120 | + return jQuery.fn.dataTable.render.moment( settings.series[index].format.from, settings.series[index].format.to ); | |
| 123 | 121 | } |
| 122 | + return jQuery.fn.dataTable.render.moment( 'MM-DD-YYYY' ); | |
| 124 | 123 | break; |
| 125 | 124 | case 'num': |
| 126 | 125 | const parts = [ '', '', '', '', '' ]; |
| 126 | + | |
| 127 | 127 | if ( settings.series[index].format.thousands ) { |
| 128 | 128 | parts[0] = settings.series[index].format.thousands; |
| 129 | 129 | } |
| 130 | + | |
| 130 | 131 | if ( settings.series[index].format.decimal ) { |
| 131 | 132 | parts[1] = settings.series[index].format.decimal; |
| 132 | 133 | } |
| 133 | - if ( settings.series[index].format.precision && 0 < parseInt( settings.series[index].format.precision ) ) { | |
| 134 | + | |
| 135 | + if ( settings.series[index].format.precision ) { | |
| 134 | 136 | parts[2] = settings.series[index].format.precision; |
| 135 | 137 | } |
| 138 | + | |
| 136 | 139 | if ( settings.series[index].format.prefix ) { |
| 137 | 140 | parts[3] = settings.series[index].format.prefix; |
| 138 | 141 | } |
| 142 | + | |
| 139 | 143 | if ( settings.series[index].format.suffix ) { |
| 140 | 144 | parts[4] = settings.series[index].format.suffix; |
| 141 | 145 | } |
| 142 | - renderer = jQuery.fn.dataTable.render.number( ...parts ); | |
| 146 | + return jQuery.fn.dataTable.render.number( ...parts ); | |
| 143 | 147 | break; |
| 144 | 148 | case 'boolean': |
| 145 | 149 | jQuery.fn.dataTable.render.extra = function( data, type, row ) { |
| 146 | - if ( ( true === data || 'true' === data ) && '' !== settings.series[index].format.truthy ) { | |
| 150 | + if ( ( true === data || 'true' === data ) && 'undefined' !== typeof settings.series[index].format && '' !== settings.series[index].format.truthy ) { | |
| 147 | 151 | return settings.series[index].format.truthy.replace( /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '' ); |
| 148 | 152 | } |
| 149 | - if ( ( false === data || 'false' === data ) && '' !== settings.series[index].format.falsy ) { | |
| 153 | + if ( ( false === data || 'false' === data ) && 'undefined' !== typeof settings.series[index].format && '' !== settings.series[index].format.falsy ) { | |
| 150 | 154 | return settings.series[index].format.falsy.replace( /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '' ); |
| 151 | 155 | } |
| 152 | 156 | return data; |
| 153 | 157 | }; |
| 154 | - renderer = jQuery.fn.dataTable.render.extra; | |
| 158 | + return jQuery.fn.dataTable.render.extra; | |
| 155 | 159 | break; |
| 156 | 160 | } |
| 157 | 161 | |
| 158 | - return renderer; | |
| 162 | + return data; | |
| 159 | 163 | } |
| 160 | 164 | |
| 161 | 165 | render() { |
| 162 | 166 | const settings = this.props.options; |