PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.3.4
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.3.4
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
← All changes | js/render-datatables.js +61 -13 3.1.33.3.4 View file →
@@ -5,10 +5,18 @@
5 5 var all_charts;
6 6 // so that we know which charts belong to our library.
7 7 var rendered_charts = [];
8 8
9 + // save the settings corresponding to cssClassNames so that when a table is being edited, they stripes etc. don't get reset
10 + var cssClassNames;
11 +
9 12 function renderChart(id, v) {
10 - renderSpecificChart(id, all_charts[id], v);
13 + var chart = all_charts[id];
14 + if(chart.library !== 'datatables'){
15 + return;
16 + }
17 + cssClassNames = null;
18 + renderSpecificChart(id, chart, v);
11 19 }
12 20
13 21 function renderSpecificChart(id, chart, v) {
14 22 var render, container, series, data, table, settings, i, j, row, date, axis, property, format, formatter, type, rows, cols;
@@ -28,9 +36,8 @@
28 36
29 37 if($('#' + id).find('table.visualizer-data-table').length > 0){
30 38 $('#' + id).empty();
31 39 }
32 - $('#' + id).append($('<table class="dataTable visualizer-data-table table table-striped"></table>'));
33 40
34 41 settings = {
35 42 destroy: true,
36 43 paging: false,
@@ -47,25 +54,42 @@
47 54 },
48 55 dom: 'Bfrtip',
49 56 };
50 57
58 + var $classes = 'dataTable visualizer-data-table table table-striped';
59 +
51 60 if(typeof v.page_type !== 'undefined'){
52 61 switch(v.page_type){
53 62 case 'post':
63 + // fall-through.
54 64 case 'library':
65 + // remove scrollY if its greater than what will fit in the box (along with the legend).
66 + if(parseInt(chart.settings['scrollY_int']) > 180){
67 + chart.settings['scrollY_int'];
68 + }
69 + delete chart.settings['scrollX'];
55 70 $.extend( settings, {
56 71 scrollX: 150,
57 72 scrollY: 180,
58 - scrollCollapse: true
59 73 } );
60 74 break;
75 + case 'chart':
76 + delete chart.settings['scrollX']; // jshint ignore:line
77 + // fall-through.
61 78 case 'frontend':
62 - case 'chart':
63 79 // empty.
64 80 break;
65 81 }
66 82 }
67 83
84 + if(typeof chart.settings['scrollX'] !== 'undefined'){
85 + if(chart.settings['scrollX'] == 'true'){ // jshint ignore:line
86 + $classes = $classes + ' nowrap';
87 + }
88 + }
89 +
90 + $('#' + id).append($('<table class="' + $classes + '"></table>'));
91 +
68 92 var select = {
69 93 info: false
70 94 };
71 95 // we cannot use { select } below because https://github.com/Codeinwp/visualizer/issues/357
@@ -72,10 +96,15 @@
72 96 $.extend( settings, { info: false } ); // jshint ignore:line
73 97
74 98 var stripe = ['', ''];
75 99
100 + if(cssClassNames !== null){
101 + chart.settings['cssClassNames'] = cssClassNames;
102 + }
103 +
76 104 // in preview mode, cssClassNames will not exist when a color is changed.
77 105 if(typeof chart.settings['cssClassNames'] !== 'undefined'){
106 + cssClassNames = chart.settings['cssClassNames'];
78 107 if(typeof chart.settings['cssClassNames']['oddTableRow'] !== 'undefined'){
79 108 stripe[0] = chart.settings['cssClassNames']['oddTableRow'];
80 109 }
81 110
@@ -89,8 +118,12 @@
89 118 } );
90 119 }
91 120 }
92 121
122 + // remove this so that the eval does not fail.
123 + delete chart.settings['internal_title'];
124 +
125 + var additional = [];
93 126 for (i in chart.settings) {
94 127 var valoo = chart.settings[i];
95 128
96 129 // remove the type suffix to get the name of the setting.
@@ -113,14 +146,19 @@
113 146 var array = i.split('_');
114 147 if(array.length === 2){
115 148 i = eval( array[0] ); // jshint ignore:line
116 149 i[ array[1] ] = valoo;
150 + additional[ array[0] ] = i;
151 + if(array[0] === 'select' && array[1] === 'info' ){
152 + // enable main info or the selection info will not show.
153 + $.extend( settings, {info: true} );
154 + }
155 + } else {
156 + settings[i] = valoo;
117 157 }
118 - settings[i] = valoo;
119 158 }
159 + $.extend( settings, additional );
120 160
121 - $.extend( $.fn.dataTable.defaults, settings );
122 -
123 161 cols = [];
124 162 for (j = 0; j < series.length; j++) {
125 163 type = series[j].type;
126 164 switch(type){
@@ -152,17 +190,27 @@
152 190 }
153 191 rows.push(row);
154 192 }
155 193
194 + $.extend( settings, {
195 + data: rows,
196 + columns: cols,
197 + stripeClasses: stripe,
198 + } );
199 +
156 200 // allow user to extend the settings.
157 201 $('body').trigger('visualizer:chart:settings:extend', {id: id, chart: chart, settings: settings});
158 202
159 203 table = $('#' + id + ' table.visualizer-data-table');
160 - table.DataTable( {
161 - data: rows,
162 - columns: cols,
163 - stripeClasses: stripe,
164 - } );
204 + table.DataTable( settings );
205 +
206 + // header row is handled here as the class is added dynamically to it (after the table is rendered).
207 + if(typeof chart.settings['cssClassNames'] !== 'undefined'){
208 + if(typeof chart.settings['cssClassNames']['headerRow'] !== 'undefined'){
209 + $('#' + id + ' table thead tr').addClass( chart.settings['cssClassNames']['headerRow'] );
210 + }
211 + }
212 +
165 213 $('.loader').remove();
166 214 }
167 215
168 216 function addRenderer(type, series, index){
@@ -214,9 +262,9 @@
214 262
215 263 if(typeof visualizer !== 'undefined'){
216 264 // called while updating the chart.
217 265 visualizer.update = function(){
218 - renderChart('canvas', visualizer);
266 + renderSpecificChart('canvas', all_charts['canvas'], visualizer);
219 267 };
220 268 }
221 269
222 270 $('body').on('visualizer:render:chart:start', function(event, v){