← All changes
|
classes/Visualizer/Gutenberg/src/Components/DataTable.js
+49
-58
3.10.12
→
3.4.2
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,60 +104,50 @@ | ||
| 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 | - switch ( type ) { | |
| 116 | - case 'date': | |
| 117 | - case 'datetime': | |
| 118 | - case 'timeofday': | |
| 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' ); | |
| 123 | - } | |
| 124 | - break; | |
| 125 | - case 'num': | |
| 126 | - const parts = [ '', '', '', '', '' ]; | |
| 127 | - if ( settings.series[index].format.thousands ) { | |
| 128 | - parts[0] = settings.series[index].format.thousands; | |
| 129 | - } | |
| 130 | - if ( settings.series[index].format.decimal ) { | |
| 131 | - parts[1] = settings.series[index].format.decimal; | |
| 132 | - } | |
| 133 | - if ( settings.series[index].format.precision && 0 < parseInt( settings.series[index].format.precision ) ) { | |
| 134 | - parts[2] = settings.series[index].format.precision; | |
| 135 | - } | |
| 136 | - if ( settings.series[index].format.prefix ) { | |
| 137 | - parts[3] = settings.series[index].format.prefix; | |
| 138 | - } | |
| 139 | - if ( settings.series[index].format.suffix ) { | |
| 140 | - parts[4] = settings.series[index].format.suffix; | |
| 141 | - } | |
| 142 | - renderer = jQuery.fn.dataTable.render.number( ...parts ); | |
| 143 | - break; | |
| 144 | - case 'boolean': | |
| 145 | - jQuery.fn.dataTable.render.extra = function( data, type, row ) { | |
| 146 | - if ( ( true === data || 'true' === data ) && '' !== settings.series[index].format.truthy ) { | |
| 147 | - return settings.series[index].format.truthy.replace( /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '' ); | |
| 148 | - } | |
| 149 | - if ( ( false === data || 'false' === data ) && '' !== settings.series[index].format.falsy ) { | |
| 150 | - return settings.series[index].format.falsy.replace( /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '' ); | |
| 151 | - } | |
| 152 | - return data; | |
| 153 | - }; | |
| 154 | - renderer = jQuery.fn.dataTable.render.extra; | |
| 155 | - break; | |
| 115 | + if ( 'date' === type || 'datetime' === type || 'timeofday' === type ) { | |
| 116 | + if ( settings.series[index].format && settings.series[index].format.from && settings.series[index].format.to ) { | |
| 117 | + return jQuery.fn.dataTable.render.moment( settings.series[index].format.from, settings.series[index].format.to ); | |
| 118 | + } | |
| 119 | + | |
| 120 | + return jQuery.fn.dataTable.render.moment( 'MM-DD-YYYY' ); | |
| 156 | 121 | } |
| 157 | 122 | |
| 158 | - return renderer; | |
| 123 | + if ( 'num' === type ) { | |
| 124 | + const parts = [ '', '', '', '', '' ]; | |
| 125 | + | |
| 126 | + if ( settings.series[index].format.thousands ) { | |
| 127 | + parts[0] = settings.series[index].format.thousands; | |
| 128 | + } | |
| 129 | + | |
| 130 | + if ( settings.series[index].format.decimal ) { | |
| 131 | + parts[1] = settings.series[index].format.decimal; | |
| 132 | + } | |
| 133 | + | |
| 134 | + if ( settings.series[index].format.precision ) { | |
| 135 | + parts[2] = settings.series[index].format.precision; | |
| 136 | + } | |
| 137 | + | |
| 138 | + if ( settings.series[index].format.prefix ) { | |
| 139 | + parts[3] = settings.series[index].format.prefix; | |
| 140 | + } | |
| 141 | + | |
| 142 | + if ( settings.series[index].format.suffix ) { | |
| 143 | + parts[4] = settings.series[index].format.suffix; | |
| 144 | + } | |
| 145 | + | |
| 146 | + return jQuery.fn.dataTable.render.number( ...parts ); | |
| 147 | + } | |
| 148 | + | |
| 149 | + return data; | |
| 159 | 150 | } |
| 160 | 151 | |
| 161 | 152 | render() { |
| 162 | 153 | const settings = this.props.options; |