PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.11
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.11
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.js +63 -25 3.0.83.0.11 View file →
@@ -1,7 +1,11 @@
1 1 /* global google */
2 2 /* global visualizer */
3 3 /* global console */
4 +
5 +// this will store the images for each chart rendered.
6 +var __visualizer_chart_images = [];
7 +
4 8 (function(v, g) {
5 9 var gv;
6 10
7 11 v.objects = {};
@@ -35,8 +39,14 @@
35 39
36 40 render = new gv[render](container);
37 41 }
38 42
43 + if (settings['animation'] && parseInt(settings['animation']['startup']) === 1)
44 + {
45 + settings['animation']['startup'] = true;
46 + settings['animation']['duration'] = parseInt(settings['animation']['duration']);
47 + }
48 +
39 49 switch (chart.type) {
40 50 case 'pie':
41 51 if (settings.slices) {
42 52 for (i in settings.slices) {
@@ -171,39 +181,67 @@
171 181 table.addRow(row);
172 182 }
173 183
174 184 if (settings.series) {
175 - for (i = 0; i < settings.series.length; i++) {
176 - format = settings.series[i].format;
177 - if (!format || format === '' || !series[i + 1]) {
178 - continue;
179 - }
180 -
181 - formatter = null;
182 - switch (series[i + 1].type) {
183 - case 'number':
184 - formatter = new g.visualization.NumberFormat({pattern: format});
185 - break;
186 - case 'date':
187 - case 'datetime':
188 - case 'timeofday':
189 - formatter = new g.visualization.DateFormat({pattern: format});
190 - break;
191 - }
192 -
193 - if (formatter) {
194 - formatter.format(table, i + 1);
195 - }
196 - }
185 + switch(chart.type){
186 + case 'table':
187 + for(i in settings.series){
188 + i = parseInt(i);
189 + if (!series[i + 1]) {
190 + continue;
191 + }
192 + v.format_data(table, series[i + 1].type, settings.series[i].format, i + 1);
193 + }
194 + break;
195 + default:
196 + for (i = 0; i < settings.series.length; i++) {
197 + if (!series[i + 1]) {
198 + continue;
199 + }
200 + v.format_data(table, series[i + 1].type, settings.series[i].format, i + 1);
201 + }
202 + break;
203 + }
197 204 } else if (chart.type === 'pie' && settings.format && settings.format !== '') {
198 - formatter = new g.visualization.NumberFormat({pattern: settings.format});
199 - formatter.format(table, 1);
205 + v.format_data(table, 'number', settings.format, 1);
200 206 }
207 + v.override(settings);
201 208
202 - v.override(settings);
209 + g.visualization.events.addListener(render, 'ready', function () {
210 + var arr = id.split('-');
211 + try{
212 + var img = render.getImageURI();
213 + __visualizer_chart_images[ arr[0] + '-' + arr[1] ] = img;
214 + jQuery('body').trigger('visualizer:render:chart', {id: arr[1], image: img});
215 + }catch(error){
216 + console.warn('render.getImageURI not defined for ' + arr[0] + '-' + arr[1]);
217 + }
218 + });
203 219
204 220 render.draw(table, settings);
205 221 };
222 +
223 + v.format_data = function(table, type, format, index) {
224 + if (!format || format === '') {
225 + return;
226 + }
227 +
228 + var formatter = null;
229 + switch (type) {
230 + case 'number':
231 + formatter = new g.visualization.NumberFormat({pattern: format});
232 + break;
233 + case 'date':
234 + case 'datetime':
235 + case 'timeofday':
236 + formatter = new g.visualization.DateFormat({pattern: format});
237 + break;
238 + }
239 +
240 + if (formatter) {
241 + formatter.format(table, index);
242 + }
243 + };
206 244
207 245 v.override = function(settings) {
208 246 if (settings.manual) {
209 247 try{