PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 4.0.8
Visualizer – Tables & Charts Manager with Built-in AI Generator v4.0.8
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-chartjs.js +15 -8 3.10.144.0.8 View file →
@@ -18,8 +18,13 @@
18 18
19 19 if(chart.library !== 'chartjs'){
20 20 return;
21 21 }
22 +
23 + // Bail if the chart is already rendered or is being rendered.
24 + if ( ! window.isResizeRequest && ( $('#' + id).hasClass('visualizer-chart-loaded') || ( 'canvas' !== id && $('#' + id).children( ':not(.loader, style)' ).length > 0 ) ) ) {
25 + return;
26 + }
22 27 rendered_charts[id] = 'yes';
23 28
24 29 series = chart.series;
25 30 data = chart.data;
@@ -147,8 +152,10 @@
147 152 }
148 153 }
149 154 };
150 155
156 + override(settings, chart);
157 +
151 158 var chartjs = new Chart(context, {
152 159 type: type,
153 160 data: {
154 161 labels: labels,
@@ -198,12 +205,8 @@
198 205 if(typeof settings['animation'] !== 'undefined' && parseInt(settings['animation']['duration']) === 0){
199 206 settings['animation']['duration'] = 1000;
200 207 }
201 208
202 - if(typeof settings['title'] !== 'undefined' && settings['title']['text'] !== ''){
203 - settings['title']['display'] = true;
204 - }
205 -
206 209 if(typeof settings['tooltip'] !== 'undefined' && typeof settings['tooltip']['intersect'] !== 'undefined'){
207 210 // jshint ignore:line
208 211 settings['tooltip']['intersect'] = settings['tooltip']['intersect'] == true || parseInt(settings['tooltip']['intersect']) === 1; // jshint ignore:line
209 212 }
@@ -230,11 +233,15 @@
230 233 settings.plugins = {
231 234 legend: settings.legend,
232 235 };
233 236
237 + if(typeof settings['title'] !== 'undefined' && settings['title']['text'] !== ''){
238 + settings.plugins['title'] = {};
239 + settings.plugins['title']['display'] = true;
240 + settings.plugins['title']['text'] = settings['title']['text'];
241 + }
242 +
234 243 handleAxes(settings, chart);
235 -
236 - override(settings, chart);
237 244 }
238 245
239 246 function handleAxes(settings, chart){
240 247 if(typeof settings['yAxes'] !== 'undefined' && typeof settings['xAxes'] !== 'undefined'){
@@ -271,9 +278,9 @@
271 278 var $o = {};
272 279 if(Array.isArray(settings[axis][i]) || typeof settings[axis][i] === 'object'){
273 280 for(var j in settings[axis][i]){
274 281 var $val = '';
275 - if(j === 'labelString'){
282 + if(j === 'labelString'){
276 283 $o['display'] = true;
277 284 $val = settings[axis][i][j];
278 285 }else if(i === 'ticks'){
279 286 // number values under ticks need to be converted to numbers or the library throws a JS error.
@@ -498,9 +505,9 @@
498 505 function override(settings, chart) {
499 506 if (settings.manual) {
500 507 try{
501 508 var options = JSON.parse(settings.manual);
502 - $.extend(settings, options);
509 + $.extend(true, settings, options);
503 510 delete settings.manual;
504 511 }catch(error){
505 512 console.error("Error while adding manual configuration override " + settings.manual);
506 513 }