PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.7.2
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.7.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
visualizer / js / library.js

library.js in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.7.2, at js/library.js

167 lines 5.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* global visualizer */
2 /* global alert */
3
4 (function (wpmv) {
5 var vm, vmv;
6
7 vm = visualizer.media = {};
8 vmv = vm.view = {};
9
10 vmv.Chart = wpmv.MediaFrame.extend({
11 initialize: function () {
12 var self = this;
13
14 _.defaults(self.options, {
15 action: '',
16 state: 'iframe:visualizer'
17 });
18
19 wpmv.MediaFrame.prototype.initialize.apply(self, arguments);
20
21 wpmv.settings.tabUrl = self.options.action;
22 self.createIframeStates();
23 },
24
25 open: function () {
26 try{
27 wpmv.MediaFrame.prototype.open.apply(this, arguments);
28 }catch(error){
29 alert(visualizer.i10n.conflict);
30 }
31 this.$el.addClass('hide-menu');
32 }
33 });
34 })(wp.media.view);
35
36 (function ($, vmv, vu) {
37 var resizeTimeout;
38
39 $.fn.adjust = function () {
40 return $(this).each(function () {
41 var width = $('#visualizer-library').width(),
42 margin = width * 0.02;
43
44 width *= 0.305;
45 $(this).prev( '.visualizer-chart-title' ).width(width - 14);
46 $(this).width(width - 14).height(width * 0.75).parent().css('margin-right', margin + 'px').css('margin-bottom', margin + 'px');
47 });
48 };
49
50 $('.visualizer-chart-canvas').adjust();
51
52 $(document).ready(function () {
53 // clears the filters in the library form and submits.
54 $('#viz-lib-reset').on('click', function(e){
55 e.preventDefault();
56 $(this).parent('form')[0].reset();
57 $(this).parent('form').find('.viz-filter').each(function(index, el){
58 var tag = $(el).prop('tagName').toLowerCase() + (typeof $(el).attr('type') !== 'undefined' ? $(el).attr('type').toLowerCase() : '');
59 switch(tag){
60 case 'select':
61 $(el).prop('selectedIndex', 0);
62 break;
63 case 'inputtext':
64 $(el).val('');
65 break;
66 }
67
68 });
69 $(this).parent('form').submit();
70 });
71
72 $('.visualizer-chart-shortcode').click(function (e) {
73 var range, selection;
74
75 if (window.getSelection && document.createRange) {
76 selection = window.getSelection();
77 range = document.createRange();
78 range.selectNodeContents(e.target);
79 selection.removeAllRanges();
80 selection.addRange(range);
81 } else if (document.selection && document.body.createTextRange) {
82 range = document.body.createTextRange();
83 range.moveToElementText(e.target);
84 range.select();
85 }
86 });
87
88 $('.add-new-chart').click(function () {
89 var wnd = window,
90 view = new vmv.Chart({action: vu.create});
91
92 window.parent.addEventListener('message', function(event){
93 switch(event.data) {
94 case 'visualizer:mediaframe:close':
95 view.close();
96 break;
97 }
98 }, false);
99
100 // remove the 'type' while refreshing the library page on creation of a new chart.
101 // this is to avoid cases where users have filtered for chart type A and end up creating chart type B
102 // remove 'vaction' as well so that additional actions are removed
103 wnd.send_to_editor = function () {
104 wnd.location.href = vu.base.replace(/type=[a-zA-Z]*/, '').replace(/vaction/, '');
105 };
106 view.open();
107
108 return false;
109 });
110
111 $('.visualizer-chart-edit').click(function () {
112 var wnd = window,
113 view = new vmv.Chart({action: vu.edit + '&chart=' + $(this).attr('data-chart')});
114
115 wnd.send_to_editor = function () {
116 wnd.location.href = wnd.location.href.replace(/vaction/, '');
117 };
118
119 view.open();
120
121 return false;
122 });
123
124 $(".visualizer-chart-export").on("click", function () {
125 $.ajax({
126 url: $(this).attr("data-chart"),
127 method: "get",
128 success: function (data, textStatus, jqXHR) {
129 var a = document.createElement("a");
130 document.body.appendChild(a);
131 a.style = "display: none";
132 var blob = new Blob([data.data.csv], {type: "application/csv"}),
133 url = window.URL.createObjectURL(blob);
134 a.href = url;
135 a.download = data.data.name;
136 a.click();
137 setTimeout(function () {
138 window.URL.revokeObjectURL(url);
139 }, 100);
140 }
141 });
142 return false;
143 });
144
145 $(".visualizer-chart-image").on("click", function () {
146 $('body').trigger('visualizer:action:specificchart', {action: 'image', id: $(this).attr("data-chart"), data: null, dataObj: {name: $(this).attr("data-chart-title")}});
147 return false;
148 });
149
150 // if vaction=addnew is found as a GET request parameter, show the modal.
151 if(location.href.indexOf('vaction=addnew') !== -1){
152 $('.add-new-chart').first().trigger('click');
153 }
154
155 $(window).resize(function () {
156 clearTimeout(resizeTimeout);
157 resizeTimeout = setTimeout(function () {
158 $('.visualizer-chart-canvas').adjust();
159 }, 100);
160 });
161
162 $('.visualizer-error i.error').on('click', function(){
163 alert( $(this).attr('data-viz-error') );
164 });
165 $('.visualizer-chart:not(.visualizer-chart-display), .visualizer-library-pagination').fadeIn(500);
166 });
167 })(jQuery, visualizer.media.view, visualizer.urls);