PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.5.1
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.5.1
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/media/view.js +25 -123 3.0.53.5.1 View file →
@@ -1,9 +1,9 @@
1 1 /*jshint scripturl:true*/
2 2 /* global google */
3 3 /* global visualizer */
4 4 /* global showNotice */
5 -(function($, wpm) {
5 +(function($, wpm, visualizer) {
6 6 var libraryWidth, libraryHeight, wpmv, wpmV, wpmvv, wpmvvl, wpmvvb, l10n;
7 7
8 8 wpmv = wpm.view;
9 9 wpmV = wpm.View;
@@ -38,12 +38,11 @@
38 38 wpmV.apply(this, arguments);
39 39 },
40 40
41 41 render: function() {
42 - var self, model, chart, gv, type, series, data, table, settings, i, j, row, date, format, formatter, axis, property;
42 + var self, model, chart;
43 43
44 44 self = this;
45 - gv = google.visualization;
46 45 model = self.model;
47 46
48 47 self.$el
49 48 .width(self.options.width)
@@ -49,128 +48,19 @@
49 48 .width(self.options.width)
50 49 .height(self.options.height)
51 50 .css('background-image', 'none');
52 51
53 - type = model.get('type');
54 - series = model.get('series');
55 - data = model.get('data');
56 - settings = model.get('settings');
52 + chart = {};
53 + chart.type = model.get('type');
54 + chart.series = model.get('series');
55 + chart.data = model.get('data');
56 + chart.library = model.get('library');
57 + chart.settings = model.get('settings');
58 + chart.settings.width = self.options.width;
59 + chart.settings.height = self.options.height;
60 + $('#' + self.id).append(model.get('css'));
57 61
58 - settings.width = self.options.width;
59 - settings.height = self.options.height;
60 -
61 - table = new gv.DataTable({cols: series});
62 - chart = type === 'gauge' ? 'Gauge' : type.charAt(0).toUpperCase() + type.slice(1) + 'Chart';
63 - chart = new gv[chart](self.el);
64 -
65 - switch (type) {
66 - case 'pie':
67 - if (settings.slices) {
68 - for (i in settings.slices) {
69 - if (settings.slices[i]['color'] === '') {
70 - delete settings.slices[i]['color'];
71 - }
72 - }
73 - }
74 - break;
75 - case 'line':
76 - case 'bar':
77 - case 'column':
78 - case 'area':
79 - case 'scatter':
80 - case 'candlestick':
81 - if (settings.series) {
82 - for (i in settings.series) {
83 - if (settings.series[i]['color'] === '') {
84 - delete settings.series[i]['color'];
85 - }
86 - }
87 - }
88 - break;
89 - case 'geo':
90 - if (settings.region !== undefined && settings.region.replace(/^\s+|\s+$/g, '') === '') {
91 - settings['region'] = 'world';
92 - }
93 - break;
94 - case 'gauge':
95 - break;
96 - default:
97 - return;
98 - }
99 -
100 - if (series[0] && (series[0].type === 'date' || series[0].type === 'datetime')) {
101 - axis = false;
102 - switch (type) {
103 - case 'line':
104 - case 'area':
105 - case 'scatter':
106 - case 'candlestick':
107 - case 'column':
108 - axis = settings.hAxis;
109 - break;
110 - case 'bar':
111 - axis = settings.vAxis;
112 - break;
113 - }
114 -
115 - if (axis) {
116 - for (property in axis.viewWindow) {
117 - date = new Date(axis.viewWindow[property]);
118 - if (Object.prototype.toString.call(date) === "[object Date]") {
119 - if (!isNaN(date.getTime())) {
120 - axis.viewWindow[property] = date;
121 - continue;
122 - }
123 - }
124 -
125 - delete axis.viewWindow[property];
126 - }
127 - }
128 - }
129 -
130 - for (i = 0; i < data.length; i++) {
131 - row = [];
132 - for (j = 0; j < series.length; j++) {
133 - if (series[j].type === 'date' || series[j].type === 'datetime') {
134 - date = new Date(data[i][j]);
135 - data[i][j] = null;
136 - if (Object.prototype.toString.call(date) === "[object Date]") {
137 - if (!isNaN(date.getTime())) {
138 - data[i][j] = date;
139 - }
140 - }
141 - }
142 - row.push(data[i][j]);
143 - }
144 - table.addRow(row);
145 - }
146 -
147 - if (settings.series) {
148 - for (i = 0; i < settings.series.length; i++) {
149 - format = settings.series[i].format;
150 - if (!format || format === '') {
151 - continue;
152 - }
153 -
154 - formatter = null;
155 - switch (series[i + 1].type) {
156 - case 'number':
157 - formatter = new gv.NumberFormat({pattern: format});
158 - break;
159 - case 'date':
160 - case 'datetime':
161 - case 'timeofday':
162 - formatter = new gv.DateFormat({pattern: format});
163 - break;
164 - }
165 -
166 - if (formatter) {
167 - formatter.format(table, i + 1);
168 - }
169 - }
170 - }
171 -
172 - chart.draw(table, settings);
62 + $('body').trigger('visualizer:render:specificchart:start', {id: self.id, chart: chart, v: {page_type: 'post'}} );
173 63 }
174 64 });
175 65
176 66 /**
@@ -257,8 +147,20 @@
257 147 paginationView.render();
258 148 }
259 149
260 150 self.renderCollection();
151 + $('.visualizer-library-chart').css('position', 'relative')
152 + .append($(
153 + // jshint ignore:start
154 + '<div class="visualizer-chart-bg"></div>'
155 + + '<div class="visualizer-chart-insert-bg">'
156 + + '<button class="button button-primary visualizer-library-chart-insert">' + visualizer.i10n.insert + '</button>'
157 + + '</div>'
158 + // jshint ignore:end
159 + ))
160 + .on('mouseover', function(){
161 + $(this).addClass('hover');
162 + });
261 163 content.unlock();
262 164 }
263 165 }
264 166 });
@@ -452,9 +354,9 @@
452 354 onPageChange: function(e) {
453 355 this.controller.trigger('visualizer:library:page', $(e.target).data('page'));
454 356 }
455 357 });
456 -})(jQuery, wp.media);
358 +})(jQuery, wp.media, visualizer);
457 359
458 360 (function($) {
459 361 $.fn.lock = function() {
460 362 $(this).each(function() {