PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.2.1
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.2.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/render-facade.js +37 -17 3.1.33.2.1 View file →
@@ -15,8 +15,10 @@
15 15 var type = $(this).attr( 'data-visualizer-type' );
16 16 var chart = $(this).attr( 'data-visualizer-chart-id' );
17 17 var container = $(this).attr( 'data-visualizer-container-id' );
18 18 var lock = $('.visualizer-front.visualizer-front-' + chart);
19 + var mime = $(this).attr( 'data-visualizer-mime' );
20 + console.log(mime);
19 21 lock.lock();
20 22 e.preventDefault();
21 23 $.ajax({
22 24 url : v.rest_url.replace('#id#', chart).replace('#type#', type),
@@ -23,27 +25,36 @@
23 25 success: function(data) {
24 26 if (data && data.data) {
25 27 switch(type){
26 28 case 'csv':
27 - var a = document.createElement("a");
28 - document.body.appendChild(a);
29 - a.style = "display: none";
30 - var blob = new Blob([data.data.csv], {type: $(this).attr( 'data-visualizer-mime' ) }),
31 - url = window.URL.createObjectURL(blob);
32 - a.href = url;
33 - a.download = data.data.name;
34 - a.click();
35 - setTimeout(function () {
36 - window.URL.revokeObjectURL(url);
37 - }, 100);
29 + var blob = new Blob([data.data.csv], {type: mime });
30 + if(window.navigator.msSaveOrOpenBlob){
31 + window.navigator.msSaveOrOpenBlob(blob, data.data.name);
32 + } else {
33 + var url = window.URL.createObjectURL(blob);
34 + var $a = $("<a>");
35 + $a.attr("href", url);
36 + $("body").append($a);
37 + $a.attr("download", data.data.name);
38 + $a[0].click();
39 + setTimeout(function () {
40 + window.URL.revokeObjectURL(url);
41 + $a.remove();
42 + }, 100);
43 + }
38 44 break;
39 45 case 'xls':
40 - var $a = $("<a>");
41 - $a.attr("href",data.data.csv);
42 - $("body").append($a);
43 - $a.attr("download",data.data.name);
44 - $a[0].click();
45 - $a.remove();
46 + if(window.navigator.msSaveOrOpenBlob){
47 + blob = new Blob([s2ab(atob(data.data.raw))], {type: '' });
48 + window.navigator.msSaveOrOpenBlob(blob, data.data.name);
49 + } else {
50 + var $a = $("<a>"); // jshint ignore:line
51 + $a.attr("href", data.data.csv);
52 + $("body").append($a);
53 + $a.attr("download", data.data.name);
54 + $a[0].click();
55 + $a.remove();
56 + }
46 57 break;
47 58 case 'print':
48 59 $('body').trigger('visualizer:action:specificchart', {action: 'print', id: container, data: data.data.csv});
49 60 break;
@@ -57,8 +68,17 @@
57 68 lock.unlock();
58 69 }
59 70 });
60 71 });
72 + }
73 +
74 + function s2ab(s) {
75 + var buf = new ArrayBuffer(s.length);
76 + var view = new Uint8Array(buf);
77 + for (var i=0; i !== s.length; ++i) {
78 + view[i] = s.charCodeAt(i) & 0xFF;
79 + }
80 + return buf;
61 81 }
62 82
63 83 $(document).ready(function(){
64 84 $('body').trigger('visualizer:render:chart:start', visualizer);