PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.3.2
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.3.2
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 3.10.4 All 148 releases
← All changes | js/render-google.js +71 -2 3.1.03.3.2 View file →
@@ -7,8 +7,10 @@
7 7
8 8 (function($) {
9 9 var gv;
10 10 var all_charts, objects;
11 + // so that we know which charts belong to our library.
12 + var rendered_charts = [];
11 13
12 14 function renderChart(id) {
13 15 renderSpecificChart(id, all_charts[id]);
14 16 }
@@ -18,8 +20,9 @@
18 20
19 21 if(chart.library !== 'google'){
20 22 return;
21 23 }
24 + rendered_charts[id] = 'yes';
22 25
23 26 series = chart.series;
24 27 data = chart.data;
25 28 settings = chart.settings;
@@ -131,8 +134,9 @@
131 134 case 'area':
132 135 case 'scatter':
133 136 case 'candlestick':
134 137 case 'column':
138 + case 'combo':
135 139 axis = settings.hAxis;
136 140 break;
137 141 case 'bar':
138 142 axis = settings.vAxis;
@@ -209,12 +213,19 @@
209 213 }
210 214 } else if (chart.type === 'pie' && settings.format && settings.format !== '') {
211 215 format_data(id, table, 'number', settings.format, 1);
212 216 }
217 +
218 +
219 + if(settings.hAxis) {
220 + format_data(id, table, series[0].type, settings.hAxis.format, 0);
221 + }
222 +
213 223 override(settings);
214 224
215 225 gv.events.addListener(render, 'ready', function () {
216 226 var arr = id.split('-');
227 + __visualizer_chart_images[ arr[0] + '-' + arr[1] ] = '';
217 228 try{
218 229 var img = render.getImageURI();
219 230 __visualizer_chart_images[ arr[0] + '-' + arr[1] ] = img;
220 231 $('body').trigger('visualizer:render:chart', {id: arr[1], image: img});
@@ -222,8 +233,10 @@
222 233 console.warn('render.getImageURI not defined for ' + arr[0] + '-' + arr[1]);
223 234 }
224 235 });
225 236
237 + $('body').trigger('visualizer:chart:settings:extend', {id: id, chart: chart, settings: settings, data: table});
238 +
226 239 render.draw(table, settings);
227 240 }
228 241
229 242 function format_data(id, table, type, format, index) {
@@ -288,9 +301,9 @@
288 301
289 302 resizeHiddenContainers(true);
290 303 });
291 304
292 - $(window).load(function(){
305 + $(window).on('load', function(){
293 306 resizeHiddenContainers(true);
294 307 });
295 308
296 309 function resizeHiddenContainers(everytime){
@@ -319,10 +332,46 @@
319 332 });
320 333 }
321 334
322 335 $('body').on('visualizer:render:chart:start', function(event, v){
336 + var $chart_types = ['corechart', 'geochart', 'gauge', 'table', 'timeline'];
337 + if(v.is_front == true){ // jshint ignore:line
338 + // check what all chart types to load.
339 + $chart_types = [];
340 + $.each(v.charts, function(i, c){
341 + var $type = c.type;
342 + switch($type){
343 + case 'bar':
344 + case 'column':
345 + case 'line':
346 + case 'area':
347 + case 'stepped area':
348 + case 'bubble':
349 + case 'pie':
350 + case 'donut':
351 + case 'combo':
352 + case 'candlestick':
353 + case 'histogram':
354 + case 'scatter':
355 + $type = 'corechart';
356 + break;
357 + case 'geo':
358 + $type = 'geochart';
359 + break;
360 + case 'dataTable':
361 + case 'polarArea':
362 + case 'radar':
363 + $type = null;
364 + break;
365 + }
366 + if($type != null){
367 + $chart_types.push($type);
368 + }
369 + });
370 + }
371 +
323 372 objects = {};
324 - google.charts.load("current", {packages: ["corechart", "geochart", "gauge", "table", "timeline"], mapsApiKey: v.map_api_key, 'language' : v.language});
373 + google.charts.load("current", {packages: $chart_types, mapsApiKey: v.map_api_key, 'language' : v.language});
325 374 google.charts.setOnLoadCallback(function() {
326 375 gv = google.visualization;
327 376 all_charts = v.charts;
328 377 render();
@@ -332,7 +381,27 @@
332 381 $('body').on('visualizer:render:specificchart:start', function(event, v){
333 382 objects = {};
334 383 gv = google.visualization;
335 384 renderSpecificChart(v.id, v.chart);
385 + });
386 +
387 + // front end actions
388 + $('body').on('visualizer:action:specificchart', function(event, v){
389 + switch(v.action){
390 + case 'print':
391 + var id = v.id;
392 + if(typeof rendered_charts[id] === 'undefined'){
393 + return;
394 + }
395 + var arr = id.split('-');
396 + var img = __visualizer_chart_images[ arr[0] + '-' + arr[1] ];
397 + // for charts that have no rendered image defined, we print the data instead.
398 + var html = v.data;
399 + if(img !== ''){
400 + html = "<html><body><img src='" + img + "' /></body></html>";
401 + }
402 + $('body').trigger('visualizer:action:specificchart:defaultprint', {data: html});
403 + break;
404 + }
336 405 });
337 406
338 407 })(jQuery);