PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 2.0.2
Visualizer – Tables & Charts Manager with Built-in AI Generator v2.0.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 / preview.js

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

89 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* global visualizer */
2 (function($, v) {
3 var timeout;
4
5 $(document).ready(function() {
6 $('#settings-button').click(function() {
7 $('#settings-form').submit();
8 });
9
10 function updateChart() {
11 clearTimeout(timeout);
12 timeout = setTimeout(function() {
13 var settings = $('#settings-form').serializeObject();
14
15 delete settings['width'];
16 delete settings['height'];
17
18 v.charts.canvas.settings = settings;
19 v.render();
20 }, 1000);
21 }
22
23 $('.control-text').change(updateChart).keyup(updateChart);
24 $('.control-select, .control-checkbox').change(updateChart);
25 $('.color-picker-hex').wpColorPicker({
26 change: updateChart,
27 clear: updateChart
28 });
29 });
30 })(jQuery, visualizer);
31
32 (function($) {
33 $.fn.serializeObject = function() {
34 var self = this,
35 json = {},
36 push_counters = {},
37 patterns = {
38 "validate": /^[a-zA-Z][a-zA-Z0-9_]*(?:\[(?:\d*|[a-zA-Z0-9_]+)\])*$/,
39 "key": /[a-zA-Z0-9_]+|(?=\[\])/g,
40 "push": /^$/,
41 "fixed": /^\d+$/,
42 "named": /^[a-zA-Z0-9_]+$/
43 };
44
45 this.build = function(base, key, value) {
46 base[key] = value;
47 return base;
48 };
49
50 this.push_counter = function(key) {
51 if (push_counters[key] === undefined) {
52 push_counters[key] = 0;
53 }
54 return push_counters[key]++;
55 };
56
57 $.each($(this).serializeArray(), function() {
58 // skip invalid keys
59 if (!patterns.validate.test(this.name)) {
60 return;
61 }
62
63 var k,
64 keys = this.name.match(patterns.key),
65 merge = this.value,
66 reverse_key = this.name;
67
68 while ((k = keys.pop()) !== undefined) {
69 // adjust reverse_key
70 reverse_key = reverse_key.replace(new RegExp("\\[" + k + "\\]$"), '');
71
72 if (k.match(patterns.push)) {
73 // push
74 merge = self.build([], self.push_counter(reverse_key), merge);
75 } else if (k.match(patterns.fixed)) {
76 // fixed
77 merge = self.build([], k, merge);
78 } else if (k.match(patterns.named)) {
79 // named
80 merge = self.build({}, k, merge);
81 }
82 }
83
84 json = $.extend(true, json, merge);
85 });
86
87 return json;
88 };
89 })(jQuery);