Skip to content

Commit 3349bdb

Browse files
Merge pull request #272 from Codeinwp/development
New chart title option for the back-end of the charts that don't allow a title on the front-end Store the png images of the charts in a global array that can be used in JS Added options for charts animations
2 parents 61b5ce4 + e07e6b3 commit 3349bdb

File tree

9 files changed

+178
-46
lines changed

9 files changed

+178
-46
lines changed

classes/Visualizer/Plugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
class Visualizer_Plugin {
2929

3030
const NAME = 'visualizer';
31-
const VERSION = '3.0.8';
31+
const VERSION = '3.0.9';
3232

3333
// custom post types
3434
const CPT_VISUALIZER = 'visualizer';

classes/Visualizer/Render/Sidebar.php

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,14 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
8383
*/
8484
protected $_alignments;
8585

86+
/**
87+
* Whether this chart supports animation or not.
88+
*
89+
* @access protected
90+
* @var bool
91+
*/
92+
protected $_supportsAnimation = true;
93+
8694
/**
8795
* Constructor.
8896
*
@@ -311,9 +319,58 @@ protected function _renderGeneralSettings() {
311319
self::_renderSectionStart( esc_html__( 'Tooltip', 'visualizer' ), false );
312320
$this->_renderTooltipSettigns();
313321
self::_renderSectionEnd();
322+
323+
$this->_renderAnimationSettings();
324+
314325
self::_renderGroupEnd();
315326
}
316327

328+
/**
329+
* Renders animation settings section.
330+
*
331+
* @access protected
332+
*/
333+
protected function _renderAnimationSettings() {
334+
if ( ! $this->_supportsAnimation ) {
335+
return;
336+
}
337+
338+
self::_renderSectionStart( esc_html__( 'Animation', 'visualizer' ), false );
339+
340+
self::_renderCheckboxItem(
341+
esc_html__( 'Animate on startup', 'visualizer' ),
342+
'animation[startup]',
343+
$this->animation['startup'],
344+
true,
345+
esc_html__( 'Determines if the chart will animate on the initial draw.', 'visualizer' )
346+
);
347+
348+
self::_renderTextItem(
349+
esc_html__( 'Duration', 'visualizer' ),
350+
'animation[duration]',
351+
isset( $this->animation['duration'] ) ? $this->animation['duration'] : 0,
352+
esc_html__( 'The duration of the animation, in milliseconds', 'visualizer' ),
353+
0,
354+
'number'
355+
);
356+
357+
self::_renderSelectItem(
358+
esc_html__( 'Easing', 'visualizer' ),
359+
'animation[easing]',
360+
isset( $this->animation['easing'] ) ? $this->animation['easing'] : null,
361+
array(
362+
'linear' => esc_html__( 'Constant speed', 'visualizer' ),
363+
'in' => esc_html__( 'Start slow and speed up', 'visualizer' ),
364+
'out' => esc_html__( 'Start fast and slow down', 'visualizer' ),
365+
'inAndOut' => esc_html__( 'Start slow, speed up, then slow down', 'visualizer' ),
366+
),
367+
esc_html__( 'The easing function applied to the animation.', 'visualizer' )
368+
);
369+
370+
self::_renderSectionEnd();
371+
372+
}
373+
317374
/**
318375
* Renders tooltip settings section.
319376
*

classes/Visualizer/Render/Sidebar/Type/Gauge.php

Lines changed: 70 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -38,57 +38,92 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
3838
* @access protected
3939
*/
4040
protected function _toHTML() {
41+
$this->_supportsAnimation = false;
4142
$this->_renderGeneralSettings();
42-
$this->_renderGreenColorSettings();
43-
$this->_renderYellowColorSettings();
44-
$this->_renderRedColorSettings();
43+
$this->_renderGaugeSettings();
4544
$this->_renderViewSettings();
4645
$this->_renderAdvancedSettings();
4746
}
4847

4948
/**
50-
* Renders chart general settings group.
49+
* Renders Gauge settings group.
50+
*
51+
* @since 1.0.0
52+
*
53+
* @access protected
54+
*/
55+
protected function _renderGaugeSettings() {
56+
self::_renderGroupStart( esc_html__( 'Gauge Settings', 'visualizer' ) );
57+
$this->_renderTickSettings();
58+
$this->_renderGreenColorSettings();
59+
$this->_renderYellowColorSettings();
60+
$this->_renderRedColorSettings();
61+
self::_renderGroupEnd();
62+
}
63+
64+
/**
65+
* Renders general settings group.
5166
*
5267
* @since 1.0.0
5368
*
5469
* @access protected
5570
*/
5671
protected function _renderGeneralSettings() {
5772
self::_renderGroupStart( esc_html__( 'General Settings', 'visualizer' ) );
58-
self::_renderSectionStart();
5973

60-
echo '<div class="viz-section-item">';
61-
echo '<a class="more-info" href="javascript:;">[?]</a>';
62-
echo '<b>', esc_html__( 'Min And Max Values', 'visualizer' ), '</b>';
74+
self::_renderSectionStart( esc_html__( 'Title', 'visualizer' ), false );
75+
self::_renderTextItem(
76+
esc_html__( 'Chart Title', 'visualizer' ),
77+
'title',
78+
$this->title,
79+
esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
80+
);
81+
self::_renderSectionEnd();
6382

64-
echo '<table class="viz-section-table" cellspacing="0" cellpadding="0" border="0">';
65-
echo '<tr>';
66-
echo '<td class="viz-section-table-column">';
67-
echo '<input type="text" name="min" class="control-text" value="', esc_attr( $this->min ), '" placeholder="0">';
68-
echo '</td>';
69-
echo '<td class="viz-section-table-column">';
70-
echo '<input type="text" name="max" class="control-text" value="', esc_attr( $this->max ), '" placeholder="100">';
71-
echo '</td>';
72-
echo '</tr>';
73-
echo '</table>';
83+
self::_renderSectionStart( esc_html__( 'Gauge Settings', 'visualizer' ), false );
84+
}
7485

75-
echo '<p class="viz-section-description">';
76-
esc_html_e( 'The maximal and minimal values of the gauge.', 'visualizer' );
77-
echo '</p>';
78-
echo '</div>';
86+
/**
87+
* Renders tick settings group.
88+
*
89+
* @since 1.0.0
90+
*
91+
* @access protected
92+
*/
93+
protected function _renderTickSettings() {
94+
self::_renderSectionStart( esc_html__( 'Tick Settings', 'visualizer' ), false );
7995

80-
self::_renderTextItem(
81-
esc_html__( 'Minor Ticks', 'visualizer' ),
82-
'minorTicks',
83-
$this->minorTicks,
84-
esc_html__( 'The number of minor tick section in each major tick section.', 'visualizer' ),
85-
2
86-
);
96+
echo '<div class="viz-section-item">';
97+
echo '<a class="more-info" href="javascript:;">[?]</a>';
98+
echo '<b>', esc_html__( 'Min And Max Values', 'visualizer' ), '</b>';
8799

88-
$this->_renderFormatField();
100+
echo '<table class="viz-section-table" cellspacing="0" cellpadding="0" border="0">';
101+
echo '<tr>';
102+
echo '<td class="viz-section-table-column">';
103+
echo '<input type="text" name="min" class="control-text" value="', esc_attr( $this->min ), '" placeholder="0">';
104+
echo '</td>';
105+
echo '<td class="viz-section-table-column">';
106+
echo '<input type="text" name="max" class="control-text" value="', esc_attr( $this->max ), '" placeholder="100">';
107+
echo '</td>';
108+
echo '</tr>';
109+
echo '</table>';
89110

90-
self::_renderSectionEnd();
91-
self::_renderGroupEnd();
111+
echo '<p class="viz-section-description">';
112+
esc_html_e( 'The maximal and minimal values of the gauge.', 'visualizer' );
113+
echo '</p>';
114+
echo '</div>';
115+
116+
self::_renderTextItem(
117+
esc_html__( 'Minor Ticks', 'visualizer' ),
118+
'minorTicks',
119+
$this->minorTicks,
120+
esc_html__( 'The number of minor tick section in each major tick section.', 'visualizer' ),
121+
2
122+
);
123+
124+
$this->_renderFormatField();
125+
126+
self::_renderSectionEnd();
92127
}
93128

94129
/**
@@ -99,8 +134,7 @@ protected function _renderGeneralSettings() {
99134
* @access protected
100135
*/
101136
protected function _renderGreenColorSettings() {
102-
self::_renderGroupStart( esc_html__( 'Green Color', 'visualizer' ) );
103-
self::_renderSectionStart();
137+
self::_renderSectionStart( esc_html__( 'Green Color', 'visualizer' ), false );
104138
self::_renderSectionDescription( esc_html__( 'Configure the green section of the gauge chart.', 'visualizer' ) );
105139

106140
echo '<div class="viz-section-item">';
@@ -130,7 +164,6 @@ protected function _renderGreenColorSettings() {
130164
'#109618'
131165
);
132166
self::_renderSectionEnd();
133-
self::_renderGroupEnd();
134167
}
135168

136169
/**
@@ -141,8 +174,7 @@ protected function _renderGreenColorSettings() {
141174
* @access protected
142175
*/
143176
protected function _renderYellowColorSettings() {
144-
self::_renderGroupStart( esc_html__( 'Yellow Color', 'visualizer' ) );
145-
self::_renderSectionStart();
177+
self::_renderSectionStart( esc_html__( 'Yellow Color', 'visualizer' ), false );
146178
self::_renderSectionDescription( esc_html__( 'Configure the yellow section of the gauge chart.', 'visualizer' ) );
147179

148180
echo '<div class="viz-section-item">';
@@ -172,7 +204,6 @@ protected function _renderYellowColorSettings() {
172204
'#FF9900'
173205
);
174206
self::_renderSectionEnd();
175-
self::_renderGroupEnd();
176207
}
177208

178209
/**
@@ -183,8 +214,7 @@ protected function _renderYellowColorSettings() {
183214
* @access protected
184215
*/
185216
protected function _renderRedColorSettings() {
186-
self::_renderGroupStart( esc_html__( 'Red Color', 'visualizer' ) );
187-
self::_renderSectionStart();
217+
self::_renderSectionStart( esc_html__( 'Red Color', 'visualizer' ), false );
188218
self::_renderSectionDescription( esc_html__( 'Configure the red section of the gauge chart.', 'visualizer' ) );
189219

190220
echo '<div class="viz-section-item">';
@@ -214,7 +244,6 @@ protected function _renderRedColorSettings() {
214244
'#DC3912'
215245
);
216246
self::_renderSectionEnd();
217-
self::_renderGroupEnd();
218247
}
219248

220249
/**

classes/Visualizer/Render/Sidebar/Type/Geo.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
3838
* @access protected
3939
*/
4040
protected function _toHTML() {
41+
$this->_supportsAnimation = false;
42+
$this->_renderGeneralSettings();
4143
$this->_renderMapSettings();
4244
$this->_renderColorAxisSettings();
4345
$this->_renderSizeAxisSettings();
@@ -46,6 +48,26 @@ protected function _toHTML() {
4648
$this->_renderAdvancedSettings();
4749
}
4850

51+
/**
52+
* Renders general settings group.
53+
*
54+
* @since 1.0.0
55+
*
56+
* @access protected
57+
*/
58+
protected function _renderGeneralSettings() {
59+
self::_renderGroupStart( esc_html__( 'General Settings', 'visualizer' ) );
60+
self::_renderSectionStart( esc_html__( 'Title', 'visualizer' ), false );
61+
self::_renderTextItem(
62+
esc_html__( 'Chart Title', 'visualizer' ),
63+
'title',
64+
$this->title,
65+
esc_html__( 'Text to display in the back-end admin area.', 'visualizer' )
66+
);
67+
self::_renderSectionEnd();
68+
self::_renderGroupEnd();
69+
}
70+
4971
/**
5072
* Renders map settings group.
5173
*

classes/Visualizer/Render/Sidebar/Type/Pie.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class Visualizer_Render_Sidebar_Type_Pie extends Visualizer_Render_Sidebar {
3838
* @access protected
3939
*/
4040
protected function _toHTML() {
41+
$this->_supportsAnimation = false;
4142
$this->_renderGeneralSettings();
4243
$this->_renderPieSettings();
4344
$this->_renderResidueSettings();

css/media.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Version: 3.0.8
2+
Version: 3.0.9
33
*/
44
#visualizer-library-view {
55
padding: 30px 10px 10px 30px;

index.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Plugin Name: Visualizer: Charts and Graphs Lite
55
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
66
Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
7-
Version: 3.0.8
7+
Version: 3.0.9
88
Author: Themeisle
99
Author URI: http://themeisle.com
1010
License: GPL v2.0 or later
@@ -88,7 +88,9 @@ function visualizer_launch() {
8888
if ( is_admin() || defined( 'WP_TESTS_DOMAIN' ) ) {
8989
// set admin modules
9090
$plugin->setModule( Visualizer_Module_Admin::NAME );
91-
} else {
91+
}
92+
93+
if ( ! is_admin() || defined( 'WP_TESTS_DOMAIN' ) ) {
9294
// set frontend modules
9395
$plugin->setModule( Visualizer_Module_Frontend::NAME );
9496
}

js/render.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
/* global google */
22
/* global visualizer */
33
/* global console */
4+
5+
// this will store the images for each chart rendered.
6+
var __visualizer_chart_images = [];
7+
48
(function(v, g) {
59
var gv;
610

@@ -36,6 +40,12 @@
3640
render = new gv[render](container);
3741
}
3842

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+
3949
switch (chart.type) {
4050
case 'pie':
4151
if (settings.slices) {
@@ -201,6 +211,17 @@
201211

202212
v.override(settings);
203213

214+
g.visualization.events.addListener(render, 'ready', function () {
215+
var arr = id.split('-');
216+
try{
217+
var img = render.getImageURI();
218+
__visualizer_chart_images[ arr[0] + '-' + arr[1] ] = img;
219+
jQuery('body').trigger('visualizer:render:chart', {id: arr[1], image: img});
220+
}catch(error){
221+
console.warn('render.getImageURI not defined for ' + arr[0] + '-' + arr[1]);
222+
}
223+
});
224+
204225
render.draw(table, settings);
205226
};
206227

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "visualizer",
3-
"version": "3.0.8",
3+
"version": "3.0.9",
44
"description": "Visualizer Lite",
55
"repository": {
66
"type": "git",

0 commit comments

Comments
 (0)