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 +18 -57 4.0.73.3.4 View file →
@@ -23,13 +23,8 @@
23 23
24 24 if(chart.library !== 'datatables'){
25 25 return;
26 26 }
27 -
28 - // Bail if the chart is already rendered or is being rendered.
29 - if ( ! window.isResizeRequest && ( $('#' + id).hasClass('visualizer-chart-loaded') || ( 'canvas' !== id && $('#' + id).children( ':not(.loader, style)' ).length > 0 ) ) ) {
30 - return;
31 - }
32 27 rendered_charts[id] = 'yes';
33 28
34 29 series = chart.series;
35 30 data = chart.data;
@@ -66,28 +61,17 @@
66 61 switch(v.page_type){
67 62 case 'post':
68 63 // fall-through.
69 64 case 'library':
70 - // for smaller screens...
71 - if(window.innerWidth < 1500){
72 - delete chart.settings['scrollX'];
73 - delete chart.settings['scrollY'];
74 - delete chart.settings['scrollY_int'];
75 - $.extend( settings, {
76 - scrollX: '100%',
77 - scrollY: (( chart.settings['responsive_bool'] === 'true' ? 0.8 : 0.5 ) * parseInt($(container).css('height').replace('px',''))),
78 - scrollCollapse: true
79 - } );
80 - }else{
81 - if(parseInt(chart.settings['scrollY_int']) > 180){
82 - chart.settings['scrollY_int'];
83 - }
84 - delete chart.settings['scrollX'];
85 - $.extend( settings, {
86 - scrollX: '100%',
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'];
70 + $.extend( settings, {
71 + scrollX: 150,
87 72 scrollY: 180,
88 - } );
89 - }
73 + } );
90 74 break;
91 75 case 'chart':
92 76 delete chart.settings['scrollX']; // jshint ignore:line
93 77 // fall-through.
@@ -155,11 +139,8 @@
155 139 default:
156 140 if(parseInt(valoo) > 0){
157 141 valoo = parseInt(valoo);
158 142 }
159 - if(i === 'pageLength' && (valoo === '' || parseInt(valoo) < 0)){
160 - valoo = 1;
161 - }
162 143 }
163 144
164 145 // if the setting name has an '_' this means it is a sub-setting e.g. select_items means { select: { items: ... } }.
165 146 var array = i.split('_');
@@ -189,8 +170,9 @@
189 170 case 'timeofday':
190 171 type = 'date';
191 172 break;
192 173 }
174 +
193 175 render = addRenderer(series[j].type, settings.series, j);
194 176
195 177 var col = { title: series[j].label, data: series[j].label, type: type, render: render };
196 178 if(typeof chart.settings['cssClassNames'] !== 'undefined' && typeof chart.settings['cssClassNames']['tableCell'] !== 'undefined'){
@@ -203,12 +185,8 @@
203 185 for (i = 0; i < data.length; i++) {
204 186 row = [];
205 187 for (j = 0; j < series.length; j++) {
206 188 var datum = data[i][j];
207 - // datum could be undefined for dynamic data (e.g. through json).
208 - if(typeof datum === 'undefined'){
209 - datum = data[i][series[j].label];
210 - }
211 189 row[ series[j].label ] = datum;
212 190 }
213 191 rows.push(row);
214 192 }
@@ -251,13 +229,10 @@
251 229 parts[0] = series.format.thousands;
252 230 }
253 231 if(typeof series.format.decimal !== ''){
254 232 parts[1] = series.format.decimal;
255 - if ( '' === series.format.precision ) {
256 - series.format.precision = 2;
257 - }
258 233 }
259 - if(typeof series.format.precision !== '' && parseInt(series.format.precision) > 0){
234 + if(typeof series.format.precision !== ''){
260 235 parts[2] = series.format.precision;
261 236 }
262 237 if(typeof series.format.prefix !== ''){
263 238 parts[3] = series.format.prefix;
@@ -273,21 +248,10 @@
273 248 if(typeof series.format.to !== 'undefined' && typeof series.format.from !== 'undefined' && series.format.from != '' && series.format.to !== ''){
274 249 render = $.fn.dataTable.render.moment(series.format.from, series.format.to);
275 250 }
276 251 break;
277 - default:
278 - render = $.fn.dataTable.render.extra = function ( data, type, row ) {
279 - if((data === true || data === 'true') && typeof series.format !== 'undefined' && series.format.truthy !== ''){
280 - data = series.format.truthy.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
281 - }
282 - if((data === false || data === 'false') && typeof series.format !== 'undefined' && series.format.falsy !== ''){
283 - data = series.format.falsy.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
284 - }
285 - return data;
286 - }
287 252 }
288 253 /* jshint ignore:end */
289 -
290 254 return render;
291 255 }
292 256
293 257 function render(v) {
@@ -295,25 +259,22 @@
295 259 renderChart(id, v);
296 260 }
297 261 }
298 262
263 + if(typeof visualizer !== 'undefined'){
264 + // called while updating the chart.
265 + visualizer.update = function(){
266 + renderSpecificChart('canvas', all_charts['canvas'], visualizer);
267 + };
268 + }
269 +
299 270 $('body').on('visualizer:render:chart:start', function(event, v){
300 271 all_charts = v.charts;
301 -
302 - if(v.is_front == true && typeof v.id !== 'undefined'){ // jshint ignore:line
303 - renderChart(v.id, v);
304 - } else {
305 - render(v);
306 - }
272 + render(v);
307 273 });
308 274
309 275 $('body').on('visualizer:render:specificchart:start', function(event, v){
310 276 renderSpecificChart(v.id, v.chart, v.v);
311 - });
312 -
313 - $('body').on('visualizer:render:currentchart:update', function(event, v){
314 - var data = v || event.detail;
315 - renderSpecificChart('canvas', all_charts['canvas'], data.visualizer);
316 277 });
317 278
318 279 // front end actions
319 280 $('body').on('visualizer:action:specificchart', function(event, v){