Version Description
Download this release
Release Info
Developer | codeinwp |
Plugin | WordPress Charts and Graphs Lite |
Version | 1.7.0 |
Comparing to | |
See all releases |
Code changes from version 1.6.6 to 1.7.0
- CHANGELOG.md +4 -2
- classes/Visualizer/Module.php +12 -11
- classes/Visualizer/Module/Admin.php +37 -39
- classes/Visualizer/Module/Chart.php +130 -122
- classes/Visualizer/Module/Frontend.php +12 -13
- classes/Visualizer/Module/Setup.php +1 -2
- classes/Visualizer/Module/Sources.php +9 -10
- classes/Visualizer/Plugin.php +14 -16
- classes/Visualizer/Render.php +6 -7
- classes/Visualizer/Render/Library.php +45 -47
- classes/Visualizer/Render/Page.php +3 -5
- classes/Visualizer/Render/Page/Data.php +39 -43
- classes/Visualizer/Render/Page/Send.php +1 -2
- classes/Visualizer/Render/Page/Settings.php +2 -3
- classes/Visualizer/Render/Page/Types.php +18 -19
- classes/Visualizer/Render/Page/Update.php +17 -20
- classes/Visualizer/Render/Sidebar.php +88 -87
- classes/Visualizer/Render/Sidebar/Columnar.php +16 -18
- classes/Visualizer/Render/Sidebar/Graph.php +159 -161
- classes/Visualizer/Render/Sidebar/Linear.php +40 -42
- classes/Visualizer/Render/Sidebar/Type/Area.php +20 -22
- classes/Visualizer/Render/Sidebar/Type/Bar.php +2 -4
- classes/Visualizer/Render/Sidebar/Type/Candlestick.php +37 -39
- classes/Visualizer/Render/Sidebar/Type/Column.php +2 -4
- classes/Visualizer/Render/Sidebar/Type/Gauge.php +25 -27
- classes/Visualizer/Render/Sidebar/Type/Geo.php +72 -74
- classes/Visualizer/Render/Sidebar/Type/Line.php +3 -5
- classes/Visualizer/Render/Sidebar/Type/Pie.php +48 -50
- classes/Visualizer/Render/Sidebar/Type/Scatter.php +1 -3
- classes/Visualizer/Render/Templates.php +5 -6
- classes/Visualizer/Source.php +12 -13
- classes/Visualizer/Source/Csv.php +7 -8
- classes/Visualizer/Source/Csv/Remote.php +6 -7
- css/frame.css +322 -320
- css/library.css +57 -39
- css/media.css +43 -31
- images/ajax-loader.gif +0 -0
- images/available_pro.png +0 -0
- images/computer.png +0 -0
- images/from_chart.png +0 -0
- images/notfound.png +0 -0
- images/star.png +0 -0
- images/ui-icons.png +0 -0
- images/web.png +0 -0
- index.php +16 -17
- js/frame.js +9 -5
- js/library.js +2 -1
- js/media.js +1 -0
- js/media/model.js +1 -1
- js/media/view.js +18 -18
- js/preview.js +1 -0
- js/render.js +29 -20
- languages/visualizer.pot +1351 -0
- readme.txt +5 -0
CHANGELOG.md
CHANGED
@@ -1,4 +1,8 @@
|
|
1 |
|
|
|
|
|
|
|
2 |
-
|
3 |
|
4 |
|
5 |
|
6 |
-
Fixed issue on chart resizing on tabbed system
|
1 |
|
2 |
+
|
3 |
+
|
4 |
+
|
5 |
+
|
6 |
|
7 |
|
8 |
|
|
classes/Visualizer/Module.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Base class for all modules. Implements routine methods required by all modules.
|
25 |
*
|
@@ -75,11 +74,12 @@ class Visualizer_Module {
|
|
75 |
* @access protected
|
76 |
* @param string $tag The name of the action to which the $method is hooked.
|
77 |
* @param string $method The name of the method to be called.
|
78 |
-
* @param
|
79 |
-
* @param int
|
|
|
80 |
* @return Visualizer_Module
|
81 |
*/
|
82 |
-
protected function _addAction( $tag, $method, $methodClass=
|
83 |
add_action( $tag, array( $methodClass ? $methodClass : $this, $method ), $priority, $accepted_args );
|
84 |
return $this;
|
85 |
}
|
@@ -90,13 +90,14 @@ class Visualizer_Module {
|
|
90 |
* @since 1.0.0
|
91 |
*
|
92 |
* @access public
|
93 |
-
* @param string
|
94 |
-
* @param string
|
|
|
95 |
* @param boolean $private Optional. Determines if we should register hook for logged in users.
|
96 |
* @param boolean $public Optional. Determines if we should register hook for not logged in users.
|
97 |
* @return Visualizer_Module
|
98 |
*/
|
99 |
-
protected function _addAjaxAction( $tag, $method = '', $methodClass=
|
100 |
if ( $private ) {
|
101 |
$this->_addAction( 'wp_ajax_' . $tag, $method, $methodClass );
|
102 |
}
|
@@ -116,9 +117,9 @@ class Visualizer_Module {
|
|
116 |
*
|
117 |
* @access protected
|
118 |
* @param string $tag The name of the filter to hook the $method to.
|
119 |
-
* @param type
|
120 |
-
* @param int
|
121 |
-
* @param int
|
122 |
* @return Visualizer_Module
|
123 |
*/
|
124 |
protected function _addFilter( $tag, $method, $priority = 10, $accepted_args = 1 ) {
|
@@ -142,4 +143,4 @@ class Visualizer_Module {
|
|
142 |
return $this;
|
143 |
}
|
144 |
|
145 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Base class for all modules. Implements routine methods required by all modules.
|
24 |
*
|
74 |
* @access protected
|
75 |
* @param string $tag The name of the action to which the $method is hooked.
|
76 |
* @param string $method The name of the method to be called.
|
77 |
+
* @param bool $methodClass The root of the method.
|
78 |
+
* @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
|
79 |
+
* @param int $accepted_args optional. The number of arguments the function accept (default 1).
|
80 |
* @return Visualizer_Module
|
81 |
*/
|
82 |
+
protected function _addAction( $tag, $method, $methodClass = null, $priority = 10, $accepted_args = 1 ) {
|
83 |
add_action( $tag, array( $methodClass ? $methodClass : $this, $method ), $priority, $accepted_args );
|
84 |
return $this;
|
85 |
}
|
90 |
* @since 1.0.0
|
91 |
*
|
92 |
* @access public
|
93 |
+
* @param string $tag The name of the AJAX action to which the $method is hooked.
|
94 |
+
* @param string $method Optional. The name of the method to be called. If the name of the method is not provided, tag name will be used as method name.
|
95 |
+
* @param bool $methodClass The root of the method.
|
96 |
* @param boolean $private Optional. Determines if we should register hook for logged in users.
|
97 |
* @param boolean $public Optional. Determines if we should register hook for not logged in users.
|
98 |
* @return Visualizer_Module
|
99 |
*/
|
100 |
+
protected function _addAjaxAction( $tag, $method = '', $methodClass = null, $private = true, $public = false ) {
|
101 |
if ( $private ) {
|
102 |
$this->_addAction( 'wp_ajax_' . $tag, $method, $methodClass );
|
103 |
}
|
117 |
*
|
118 |
* @access protected
|
119 |
* @param string $tag The name of the filter to hook the $method to.
|
120 |
+
* @param type $method The name of the method to be called when the filter is applied.
|
121 |
+
* @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
|
122 |
+
* @param int $accepted_args optional. The number of arguments the function accept (default 1).
|
123 |
* @return Visualizer_Module
|
124 |
*/
|
125 |
protected function _addFilter( $tag, $method, $priority = 10, $accepted_args = 1 ) {
|
143 |
return $this;
|
144 |
}
|
145 |
|
146 |
+
}
|
classes/Visualizer/Module/Admin.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* The module for all admin stuff.
|
25 |
*
|
@@ -75,21 +74,21 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
75 |
*/
|
76 |
public static function _getChartTypesLocalized() {
|
77 |
$types = array(
|
78 |
-
'all' => esc_html__( 'All',
|
79 |
-
'pie' => esc_html__( 'Pie',
|
80 |
-
'line' => esc_html__( 'Line',
|
81 |
-
'area' => esc_html__( 'Area',
|
82 |
-
'geo' => esc_html__( 'Geo',
|
83 |
-
'bar' => esc_html__( 'Bar',
|
84 |
-
'column' => esc_html__( 'Column',
|
85 |
-
'gauge' => esc_html__( 'Gauge',
|
86 |
-
'scatter' => esc_html__( 'Scatter',
|
87 |
-
'candlestick' => esc_html__( 'Candlestick',
|
88 |
);
|
89 |
|
90 |
-
|
91 |
|
92 |
-
|
93 |
}
|
94 |
|
95 |
/**
|
@@ -134,11 +133,11 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
134 |
'delete_chart' => Visualizer_Plugin::ACTION_DELETE_CHART,
|
135 |
),
|
136 |
'controller' => array(
|
137 |
-
'title' => esc_html__( 'Visualizations',
|
138 |
),
|
139 |
'routers' => array(
|
140 |
-
'library' => esc_html__( 'From Library',
|
141 |
-
'create' => esc_html__( 'Create New',
|
142 |
),
|
143 |
'library' => array(
|
144 |
'filters' => self::_getChartTypesLocalized(),
|
@@ -189,7 +188,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
189 |
wp_enqueue_media();
|
190 |
wp_enqueue_script( 'visualizer-library', VISUALIZER_ABSURL . 'js/library.js', array( 'jquery', 'media-views' ), Visualizer_Plugin::VERSION, true );
|
191 |
wp_enqueue_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
|
192 |
-
wp_enqueue_script( 'google-jsapi-old', '//www.google.com/jsapi', array('google-jsapi-new'), null, true );
|
193 |
wp_enqueue_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'google-jsapi-old', 'visualizer-library' ), Visualizer_Plugin::VERSION, true );
|
194 |
}
|
195 |
}
|
@@ -216,7 +215,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
216 |
* @access public
|
217 |
*/
|
218 |
public function registerAdminMenu() {
|
219 |
-
$title = esc_html__( 'Visualizer Library',
|
220 |
$callback = array( $this, 'renderLibraryPage' );
|
221 |
$this->_libraryPage = add_submenu_page( 'upload.php', $title, $title, 'edit_posts', Visualizer_Plugin::NAME, $callback );
|
222 |
}
|
@@ -234,7 +233,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
234 |
'options' => array(
|
235 |
'min_range' => 1,
|
236 |
'default' => 1,
|
237 |
-
)
|
238 |
) );
|
239 |
|
240 |
// the initial query arguments to fetch charts
|
@@ -258,24 +257,23 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
258 |
$filter = 'all';
|
259 |
}
|
260 |
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
'key' => Visualizer_Plugin::CF_SETTINGS,
|
266 |
'value' => $filterByMeta,
|
267 |
'compare' => 'LIKE',
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
// fetch charts
|
276 |
$charts = array();
|
277 |
$query = new WP_Query( $query_args );
|
278 |
-
while( $query->have_posts() ) {
|
279 |
$chart = $query->next_post();
|
280 |
|
281 |
// fetch and update settings
|
@@ -287,7 +285,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
287 |
$data = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA, unserialize( $chart->post_content ), $chart->ID, $type );
|
288 |
|
289 |
// add chart to the array
|
290 |
-
$charts['visualizer-' . $chart->ID] = array(
|
291 |
'id' => $chart->ID,
|
292 |
'type' => $type,
|
293 |
'series' => $series,
|
@@ -303,7 +301,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
303 |
'urls' => array(
|
304 |
'base' => add_query_arg( 'vpage', false ),
|
305 |
'create' => add_query_arg( array( 'action' => Visualizer_Plugin::ACTION_CREATE_CHART, 'library' => 'yes' ), $ajaxurl ),
|
306 |
-
'edit' => add_query_arg( array( 'action' => Visualizer_Plugin::ACTION_EDIT_CHART,
|
307 |
),
|
308 |
) );
|
309 |
|
@@ -330,7 +328,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
330 |
* @since 1.0.0
|
331 |
*
|
332 |
* @access public
|
333 |
-
* @param array
|
334 |
* @param string $file The plugin basename.
|
335 |
* @return array Updated array of action links.
|
336 |
*/
|
@@ -341,7 +339,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
341 |
sprintf(
|
342 |
'<a href="%s">%s</a>',
|
343 |
admin_url( 'upload.php?page=' . Visualizer_Plugin::NAME ),
|
344 |
-
esc_html__( 'Library',
|
345 |
)
|
346 |
);
|
347 |
}
|
@@ -355,7 +353,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
355 |
* @since 1.0.0
|
356 |
*
|
357 |
* @access public
|
358 |
-
* @param array
|
359 |
* @param string $plugin_file The plugin's basename.
|
360 |
* @return array Updated array of plugin meta links.
|
361 |
*/
|
@@ -364,16 +362,16 @@ class Visualizer_Module_Admin extends Visualizer_Module {
|
|
364 |
// knowledge base link
|
365 |
$plugin_meta[] = sprintf(
|
366 |
'<a href="https://github.com/codeinwp/visualizer/wiki" target="_blank">%s</a>',
|
367 |
-
esc_html__( 'Knowledge Base',
|
368 |
);
|
369 |
// flattr link
|
370 |
$plugin_meta[] = sprintf(
|
371 |
'<a style="color:red" href="https://themeisle.com/plugins/visualizer-charts-and-graphs-pro-addon/" target="_blank">%s</a>',
|
372 |
-
esc_html__( 'Pro Addon',
|
373 |
);
|
374 |
}
|
375 |
|
376 |
return $plugin_meta;
|
377 |
}
|
378 |
|
379 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* The module for all admin stuff.
|
24 |
*
|
74 |
*/
|
75 |
public static function _getChartTypesLocalized() {
|
76 |
$types = array(
|
77 |
+
'all' => esc_html__( 'All', 'visualizer' ),
|
78 |
+
'pie' => esc_html__( 'Pie', 'visualizer' ),
|
79 |
+
'line' => esc_html__( 'Line', 'visualizer' ),
|
80 |
+
'area' => esc_html__( 'Area', 'visualizer' ),
|
81 |
+
'geo' => esc_html__( 'Geo', 'visualizer' ),
|
82 |
+
'bar' => esc_html__( 'Bar', 'visualizer' ),
|
83 |
+
'column' => esc_html__( 'Column', 'visualizer' ),
|
84 |
+
'gauge' => esc_html__( 'Gauge', 'visualizer' ),
|
85 |
+
'scatter' => esc_html__( 'Scatter', 'visualizer' ),
|
86 |
+
'candlestick' => esc_html__( 'Candlestick', 'visualizer' ),
|
87 |
);
|
88 |
|
89 |
+
$types = apply_filters( 'visualizer_pro_chart_types', $types );
|
90 |
|
91 |
+
return $types;
|
92 |
}
|
93 |
|
94 |
/**
|
133 |
'delete_chart' => Visualizer_Plugin::ACTION_DELETE_CHART,
|
134 |
),
|
135 |
'controller' => array(
|
136 |
+
'title' => esc_html__( 'Visualizations', 'visualizer' ),
|
137 |
),
|
138 |
'routers' => array(
|
139 |
+
'library' => esc_html__( 'From Library', 'visualizer' ),
|
140 |
+
'create' => esc_html__( 'Create New', 'visualizer' ),
|
141 |
),
|
142 |
'library' => array(
|
143 |
'filters' => self::_getChartTypesLocalized(),
|
188 |
wp_enqueue_media();
|
189 |
wp_enqueue_script( 'visualizer-library', VISUALIZER_ABSURL . 'js/library.js', array( 'jquery', 'media-views' ), Visualizer_Plugin::VERSION, true );
|
190 |
wp_enqueue_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
|
191 |
+
wp_enqueue_script( 'google-jsapi-old', '//www.google.com/jsapi', array( 'google-jsapi-new' ), null, true );
|
192 |
wp_enqueue_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'google-jsapi-old', 'visualizer-library' ), Visualizer_Plugin::VERSION, true );
|
193 |
}
|
194 |
}
|
215 |
* @access public
|
216 |
*/
|
217 |
public function registerAdminMenu() {
|
218 |
+
$title = esc_html__( 'Visualizer Library', 'visualizer' );
|
219 |
$callback = array( $this, 'renderLibraryPage' );
|
220 |
$this->_libraryPage = add_submenu_page( 'upload.php', $title, $title, 'edit_posts', Visualizer_Plugin::NAME, $callback );
|
221 |
}
|
233 |
'options' => array(
|
234 |
'min_range' => 1,
|
235 |
'default' => 1,
|
236 |
+
),
|
237 |
) );
|
238 |
|
239 |
// the initial query arguments to fetch charts
|
257 |
$filter = 'all';
|
258 |
}
|
259 |
|
260 |
+
// Added by Ash/Upwork
|
261 |
+
$filterByMeta = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
|
262 |
+
if ( $filterByMeta ) {
|
263 |
+
$query = array(
|
264 |
'key' => Visualizer_Plugin::CF_SETTINGS,
|
265 |
'value' => $filterByMeta,
|
266 |
'compare' => 'LIKE',
|
267 |
+
);
|
268 |
+
$meta = isset( $query_args['meta_query'] ) ? $query_args['meta_query'] : array();
|
269 |
+
$meta[] = $query;
|
270 |
+
$query_args['meta_query'] = $meta;
|
271 |
+
}
|
272 |
+
// Added by Ash/Upwork
|
|
|
273 |
// fetch charts
|
274 |
$charts = array();
|
275 |
$query = new WP_Query( $query_args );
|
276 |
+
while ( $query->have_posts() ) {
|
277 |
$chart = $query->next_post();
|
278 |
|
279 |
// fetch and update settings
|
285 |
$data = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA, unserialize( $chart->post_content ), $chart->ID, $type );
|
286 |
|
287 |
// add chart to the array
|
288 |
+
$charts[ 'visualizer-' . $chart->ID ] = array(
|
289 |
'id' => $chart->ID,
|
290 |
'type' => $type,
|
291 |
'series' => $series,
|
301 |
'urls' => array(
|
302 |
'base' => add_query_arg( 'vpage', false ),
|
303 |
'create' => add_query_arg( array( 'action' => Visualizer_Plugin::ACTION_CREATE_CHART, 'library' => 'yes' ), $ajaxurl ),
|
304 |
+
'edit' => add_query_arg( array( 'action' => Visualizer_Plugin::ACTION_EDIT_CHART, 'library' => 'yes' ), $ajaxurl ),
|
305 |
),
|
306 |
) );
|
307 |
|
328 |
* @since 1.0.0
|
329 |
*
|
330 |
* @access public
|
331 |
+
* @param array $links The array of original action links.
|
332 |
* @param string $file The plugin basename.
|
333 |
* @return array Updated array of action links.
|
334 |
*/
|
339 |
sprintf(
|
340 |
'<a href="%s">%s</a>',
|
341 |
admin_url( 'upload.php?page=' . Visualizer_Plugin::NAME ),
|
342 |
+
esc_html__( 'Library', 'visualizer' )
|
343 |
)
|
344 |
);
|
345 |
}
|
353 |
* @since 1.0.0
|
354 |
*
|
355 |
* @access public
|
356 |
+
* @param array $plugin_meta The array of a plugin meta links.
|
357 |
* @param string $plugin_file The plugin's basename.
|
358 |
* @return array Updated array of plugin meta links.
|
359 |
*/
|
362 |
// knowledge base link
|
363 |
$plugin_meta[] = sprintf(
|
364 |
'<a href="https://github.com/codeinwp/visualizer/wiki" target="_blank">%s</a>',
|
365 |
+
esc_html__( 'Knowledge Base', 'visualizer' )
|
366 |
);
|
367 |
// flattr link
|
368 |
$plugin_meta[] = sprintf(
|
369 |
'<a style="color:red" href="https://themeisle.com/plugins/visualizer-charts-and-graphs-pro-addon/" target="_blank">%s</a>',
|
370 |
+
esc_html__( 'Pro Addon', 'visualizer' )
|
371 |
);
|
372 |
}
|
373 |
|
374 |
return $plugin_meta;
|
375 |
}
|
376 |
|
377 |
+
}
|
classes/Visualizer/Module/Chart.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* The module for all stuff related to getting, editing, creating and deleting charts.
|
25 |
*
|
@@ -60,15 +59,14 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
60 |
$this->_addAjaxAction( Visualizer_Plugin::ACTION_UPLOAD_DATA, 'uploadData' );
|
61 |
$this->_addAjaxAction( Visualizer_Plugin::ACTION_CLONE_CHART, 'cloneChart' );
|
62 |
|
63 |
-
|
64 |
$this->_addAjaxAction( Visualizer_Plugin::ACTION_EXPORT_DATA, 'exportData' );
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
}
|
73 |
|
74 |
/**
|
@@ -128,8 +126,8 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
128 |
'options' => array(
|
129 |
'min_range' => 1,
|
130 |
'default' => 1,
|
131 |
-
)
|
132 |
-
) )
|
133 |
);
|
134 |
|
135 |
$filter = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
|
@@ -146,7 +144,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
146 |
$query = new WP_Query( $query_args );
|
147 |
|
148 |
$charts = array();
|
149 |
-
while( $query->have_posts() ) {
|
150 |
$chart = $query->next_post();
|
151 |
|
152 |
$chart_data = $this->_getChartArray( $chart );
|
@@ -206,11 +204,11 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
206 |
* @access public
|
207 |
*/
|
208 |
public function renderChartPages() {
|
209 |
-
define
|
210 |
|
211 |
// check chart, if chart not exists, will create new one and redirects to the same page with proper chart id
|
212 |
$chart_id = filter_input( INPUT_GET, 'chart', FILTER_VALIDATE_INT );
|
213 |
-
if (
|
214 |
$default_type = 'line';
|
215 |
|
216 |
$source = new Visualizer_Source_Csv( VISUALIZER_ABSPATH . DIRECTORY_SEPARATOR . 'samples' . DIRECTORY_SEPARATOR . $default_type . '.csv' );
|
@@ -224,15 +222,15 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
224 |
'post_content' => $source->getData(),
|
225 |
) );
|
226 |
|
227 |
-
if ( $chart_id && !is_wp_error( $chart_id ) ) {
|
228 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, $default_type );
|
229 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_DEFAULT_DATA, 1 );
|
230 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, $source->getSourceName() );
|
231 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
|
232 |
-
add_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, array('focusTarget' => 'datum') );
|
233 |
}
|
234 |
|
235 |
-
wp_redirect( add_query_arg( 'chart', (int)$chart_id ) );
|
236 |
exit;
|
237 |
}
|
238 |
|
@@ -241,21 +239,21 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
241 |
|
242 |
wp_register_script( 'visualizer-frame', VISUALIZER_ABSURL . 'js/frame.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
|
243 |
wp_register_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
|
244 |
-
wp_register_script( 'google-jsapi-old', '//www.google.com/jsapi', array('google-jsapi-new'), null, true );
|
245 |
wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'google-jsapi-old', 'google-jsapi-new', 'visualizer-frame' ), Visualizer_Plugin::VERSION, true );
|
246 |
wp_register_script( 'visualizer-preview', VISUALIZER_ABSURL . 'js/preview.js', array( 'wp-color-picker', 'visualizer-render' ), Visualizer_Plugin::VERSION, true );
|
247 |
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
|
254 |
// dispatch pages
|
255 |
$this->_chart = $chart;
|
256 |
switch ( filter_input( INPUT_GET, 'tab' ) ) {
|
257 |
case 'settings':
|
258 |
-
|
259 |
$this->_handleDataAndSettingsPage();
|
260 |
break;
|
261 |
case 'type':
|
@@ -295,7 +293,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
295 |
|
296 |
// redirect to next tab
|
297 |
// changed by Ash/Upwork
|
298 |
-
|
299 |
return;
|
300 |
}
|
301 |
}
|
@@ -308,7 +306,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
308 |
wp_enqueue_style( 'visualizer-frame' );
|
309 |
wp_enqueue_script( 'visualizer-frame' );
|
310 |
|
311 |
-
wp_iframe( array( $render, 'render') );
|
312 |
}
|
313 |
|
314 |
/**
|
@@ -331,28 +329,29 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
331 |
wp_enqueue_script( 'visualizer-render' );
|
332 |
wp_localize_script( 'visualizer-render', 'visualizer', array(
|
333 |
'l10n' => array(
|
334 |
-
'remotecsv_prompt' => esc_html__( 'Please, enter the URL of CSV file:',
|
335 |
-
'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.',
|
336 |
),
|
337 |
'charts' => array(
|
338 |
'canvas' => $data,
|
339 |
),
|
340 |
) );
|
341 |
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
$this->_addAction( 'admin_head', 'renderFlattrScript' );
|
350 |
|
351 |
-
wp_iframe( array( $render, 'render') );
|
352 |
}
|
353 |
|
354 |
-
|
355 |
-
|
|
|
|
|
356 |
if ( $_SERVER['REQUEST_METHOD'] == 'POST' && wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ) ) ) {
|
357 |
if ( $this->_chart->post_status == 'auto-draft' ) {
|
358 |
$this->_chart->post_status = 'publish';
|
@@ -364,7 +363,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
364 |
$render = new Visualizer_Render_Page_Send();
|
365 |
$render->text = sprintf( '[visualizer id="%d"]', $this->_chart->ID );
|
366 |
|
367 |
-
wp_iframe( array( $render, 'render') );
|
368 |
return;
|
369 |
}
|
370 |
|
@@ -377,12 +376,12 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
377 |
$sidebar->__series = $data['series'];
|
378 |
$sidebar->__data = $data['data'];
|
379 |
} else {
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
|
387 |
unset( $data['settings']['width'], $data['settings']['height'] );
|
388 |
|
@@ -394,8 +393,8 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
394 |
wp_enqueue_script( 'visualizer-render' );
|
395 |
wp_localize_script( 'visualizer-render', 'visualizer', array(
|
396 |
'l10n' => array(
|
397 |
-
'remotecsv_prompt' => esc_html__( 'Please, enter the URL of CSV file:',
|
398 |
-
'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.',
|
399 |
),
|
400 |
'charts' => array(
|
401 |
'canvas' => $data,
|
@@ -409,23 +408,22 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
409 |
$render->sidebar = $sidebar;
|
410 |
if ( filter_input( INPUT_GET, 'library', FILTER_VALIDATE_BOOLEAN ) ) {
|
411 |
$render->button = filter_input( INPUT_GET, 'action' ) == Visualizer_Plugin::ACTION_EDIT_CHART
|
412 |
-
? esc_html__( 'Save Chart',
|
413 |
-
: esc_html__( 'Create Chart',
|
414 |
} else {
|
415 |
-
$render->button = esc_attr__( 'Insert Chart',
|
416 |
}
|
417 |
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
|
423 |
$this->_addAction( 'admin_head', 'renderFlattrScript' );
|
424 |
|
425 |
-
wp_iframe( array( $render, 'render') );
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
/**
|
430 |
* Renders flattr script in the iframe <head>
|
431 |
*
|
@@ -435,7 +433,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
435 |
* @access public
|
436 |
*/
|
437 |
public function renderFlattrScript() {
|
438 |
-
|
439 |
}
|
440 |
|
441 |
/**
|
@@ -447,14 +445,14 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
447 |
*/
|
448 |
public function uploadData() {
|
449 |
// validate nonce
|
450 |
-
if ( !wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ) ) ) {
|
451 |
status_header( 403 );
|
452 |
exit;
|
453 |
}
|
454 |
|
455 |
// check chart, if chart exists
|
456 |
$chart_id = filter_input( INPUT_GET, 'chart', FILTER_VALIDATE_INT );
|
457 |
-
if (
|
458 |
status_header( 400 );
|
459 |
exit;
|
460 |
}
|
@@ -462,18 +460,17 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
462 |
$source = null;
|
463 |
$render = new Visualizer_Render_Page_Update();
|
464 |
if ( filter_input( INPUT_POST, 'remote_data', FILTER_VALIDATE_URL ) ) {
|
465 |
-
$source =
|
466 |
} elseif ( isset( $_FILES['local_data'] ) && $_FILES['local_data']['error'] == 0 ) {
|
467 |
-
$source =
|
468 |
-
|
469 |
-
// Added by Ash/Upwork
|
470 |
-
} elseif ( defined( 'Visualizer_Pro' ) && isset( $_POST['chart_data'] ) && strlen( $_POST['chart_data'] ) > 0){
|
471 |
-
global $Visualizer_Pro;
|
472 |
-
$source = $Visualizer_Pro->_handleChartData($_POST['chart_data']);
|
473 |
-
// Added by Ash/Upwork
|
474 |
|
475 |
-
|
476 |
-
|
|
|
|
|
|
|
|
|
|
|
477 |
}
|
478 |
|
479 |
if ( $source ) {
|
@@ -488,7 +485,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
488 |
$render->data = json_encode( $source->getRawData() );
|
489 |
$render->series = json_encode( $source->getSeries() );
|
490 |
} else {
|
491 |
-
$render->message = esc_html__(
|
492 |
}
|
493 |
}
|
494 |
|
@@ -525,7 +522,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
525 |
'post_content' => $chart->post_content,
|
526 |
) );
|
527 |
|
528 |
-
if ( $new_chart_id && !is_wp_error( $new_chart_id ) ) {
|
529 |
add_post_meta( $new_chart_id, Visualizer_Plugin::CF_CHART_TYPE, get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true ) );
|
530 |
add_post_meta( $new_chart_id, Visualizer_Plugin::CF_DEFAULT_DATA, get_post_meta( $chart_id, Visualizer_Plugin::CF_DEFAULT_DATA, true ) );
|
531 |
add_post_meta( $new_chart_id, Visualizer_Plugin::CF_SOURCE, get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true ) );
|
@@ -551,7 +548,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
551 |
* @access public
|
552 |
*/
|
553 |
public function exportData() {
|
554 |
-
|
555 |
|
556 |
$chart_id = $success = false;
|
557 |
$capable = current_user_can( 'edit_posts' );
|
@@ -564,55 +561,66 @@ class Visualizer_Module_Chart extends Visualizer_Module {
|
|
564 |
}
|
565 |
|
566 |
if ( $success ) {
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
614 |
}
|
615 |
|
616 |
exit;
|
617 |
}
|
618 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* The module for all stuff related to getting, editing, creating and deleting charts.
|
24 |
*
|
59 |
$this->_addAjaxAction( Visualizer_Plugin::ACTION_UPLOAD_DATA, 'uploadData' );
|
60 |
$this->_addAjaxAction( Visualizer_Plugin::ACTION_CLONE_CHART, 'cloneChart' );
|
61 |
|
62 |
+
// Added by Ash/Upwork
|
63 |
$this->_addAjaxAction( Visualizer_Plugin::ACTION_EXPORT_DATA, 'exportData' );
|
64 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
65 |
+
global $Visualizer_Pro;
|
66 |
+
list($action, $name, $class) = $Visualizer_Pro->_getAjaxAction( $this );
|
67 |
+
$this->_addAjaxAction( $action, $name, $class );
|
68 |
+
}
|
69 |
+
// Added by Ash/Upwork
|
|
|
70 |
}
|
71 |
|
72 |
/**
|
126 |
'options' => array(
|
127 |
'min_range' => 1,
|
128 |
'default' => 1,
|
129 |
+
),
|
130 |
+
) ),
|
131 |
);
|
132 |
|
133 |
$filter = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
|
144 |
$query = new WP_Query( $query_args );
|
145 |
|
146 |
$charts = array();
|
147 |
+
while ( $query->have_posts() ) {
|
148 |
$chart = $query->next_post();
|
149 |
|
150 |
$chart_data = $this->_getChartArray( $chart );
|
204 |
* @access public
|
205 |
*/
|
206 |
public function renderChartPages() {
|
207 |
+
define( 'IFRAME_REQUEST', 1 );
|
208 |
|
209 |
// check chart, if chart not exists, will create new one and redirects to the same page with proper chart id
|
210 |
$chart_id = filter_input( INPUT_GET, 'chart', FILTER_VALIDATE_INT );
|
211 |
+
if ( ! $chart_id || ! ( $chart = get_post( $chart_id ) ) || $chart->post_type != Visualizer_Plugin::CPT_VISUALIZER ) {
|
212 |
$default_type = 'line';
|
213 |
|
214 |
$source = new Visualizer_Source_Csv( VISUALIZER_ABSPATH . DIRECTORY_SEPARATOR . 'samples' . DIRECTORY_SEPARATOR . $default_type . '.csv' );
|
222 |
'post_content' => $source->getData(),
|
223 |
) );
|
224 |
|
225 |
+
if ( $chart_id && ! is_wp_error( $chart_id ) ) {
|
226 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, $default_type );
|
227 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_DEFAULT_DATA, 1 );
|
228 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, $source->getSourceName() );
|
229 |
add_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
|
230 |
+
add_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, array( 'focusTarget' => 'datum' ) );
|
231 |
}
|
232 |
|
233 |
+
wp_redirect( add_query_arg( 'chart', (int) $chart_id ) );
|
234 |
exit;
|
235 |
}
|
236 |
|
239 |
|
240 |
wp_register_script( 'visualizer-frame', VISUALIZER_ABSURL . 'js/frame.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
|
241 |
wp_register_script( 'google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
|
242 |
+
wp_register_script( 'google-jsapi-old', '//www.google.com/jsapi', array( 'google-jsapi-new' ), null, true );
|
243 |
wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'google-jsapi-old', 'google-jsapi-new', 'visualizer-frame' ), Visualizer_Plugin::VERSION, true );
|
244 |
wp_register_script( 'visualizer-preview', VISUALIZER_ABSURL . 'js/preview.js', array( 'wp-color-picker', 'visualizer-render' ), Visualizer_Plugin::VERSION, true );
|
245 |
|
246 |
+
// added by Ash/Upwork
|
247 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
248 |
+
global $Visualizer_Pro;
|
249 |
+
$Visualizer_Pro->_addScriptsAndStyles();
|
250 |
+
}
|
251 |
|
252 |
// dispatch pages
|
253 |
$this->_chart = $chart;
|
254 |
switch ( filter_input( INPUT_GET, 'tab' ) ) {
|
255 |
case 'settings':
|
256 |
+
// changed by Ash/Upwork
|
257 |
$this->_handleDataAndSettingsPage();
|
258 |
break;
|
259 |
case 'type':
|
293 |
|
294 |
// redirect to next tab
|
295 |
// changed by Ash/Upwork
|
296 |
+
wp_redirect( add_query_arg( 'tab', 'settings' ) );
|
297 |
return;
|
298 |
}
|
299 |
}
|
306 |
wp_enqueue_style( 'visualizer-frame' );
|
307 |
wp_enqueue_script( 'visualizer-frame' );
|
308 |
|
309 |
+
wp_iframe( array( $render, 'render' ) );
|
310 |
}
|
311 |
|
312 |
/**
|
329 |
wp_enqueue_script( 'visualizer-render' );
|
330 |
wp_localize_script( 'visualizer-render', 'visualizer', array(
|
331 |
'l10n' => array(
|
332 |
+
'remotecsv_prompt' => esc_html__( 'Please, enter the URL of CSV file:', 'visualizer' ),
|
333 |
+
'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
|
334 |
),
|
335 |
'charts' => array(
|
336 |
'canvas' => $data,
|
337 |
),
|
338 |
) );
|
339 |
|
340 |
+
// Added by Ash/Upwork
|
341 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
342 |
+
global $Visualizer_Pro;
|
343 |
+
$Visualizer_Pro->_enqueueScriptsAndStyles( $data );
|
344 |
+
}
|
345 |
+
// Added by Ash/Upwork
|
|
|
346 |
$this->_addAction( 'admin_head', 'renderFlattrScript' );
|
347 |
|
348 |
+
wp_iframe( array( $render, 'render' ) );
|
349 |
}
|
350 |
|
351 |
+
/**
|
352 |
+
* Handle data and settings page
|
353 |
+
*/
|
354 |
+
private function _handleDataAndSettingsPage() {
|
355 |
if ( $_SERVER['REQUEST_METHOD'] == 'POST' && wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ) ) ) {
|
356 |
if ( $this->_chart->post_status == 'auto-draft' ) {
|
357 |
$this->_chart->post_status = 'publish';
|
363 |
$render = new Visualizer_Render_Page_Send();
|
364 |
$render->text = sprintf( '[visualizer id="%d"]', $this->_chart->ID );
|
365 |
|
366 |
+
wp_iframe( array( $render, 'render' ) );
|
367 |
return;
|
368 |
}
|
369 |
|
376 |
$sidebar->__series = $data['series'];
|
377 |
$sidebar->__data = $data['data'];
|
378 |
} else {
|
379 |
+
$sidebar = apply_filters( 'visualizer_pro_chart_type_sidebar', '', $data );
|
380 |
+
if ( $sidebar != '' ) {
|
381 |
+
$sidebar->__series = $data['series'];
|
382 |
+
$sidebar->__data = $data['data'];
|
383 |
+
}
|
384 |
+
}
|
385 |
|
386 |
unset( $data['settings']['width'], $data['settings']['height'] );
|
387 |
|
393 |
wp_enqueue_script( 'visualizer-render' );
|
394 |
wp_localize_script( 'visualizer-render', 'visualizer', array(
|
395 |
'l10n' => array(
|
396 |
+
'remotecsv_prompt' => esc_html__( 'Please, enter the URL of CSV file:', 'visualizer' ),
|
397 |
+
'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
|
398 |
),
|
399 |
'charts' => array(
|
400 |
'canvas' => $data,
|
408 |
$render->sidebar = $sidebar;
|
409 |
if ( filter_input( INPUT_GET, 'library', FILTER_VALIDATE_BOOLEAN ) ) {
|
410 |
$render->button = filter_input( INPUT_GET, 'action' ) == Visualizer_Plugin::ACTION_EDIT_CHART
|
411 |
+
? esc_html__( 'Save Chart', 'visualizer' )
|
412 |
+
: esc_html__( 'Create Chart', 'visualizer' );
|
413 |
} else {
|
414 |
+
$render->button = esc_attr__( 'Insert Chart', 'visualizer' );
|
415 |
}
|
416 |
|
417 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
418 |
+
global $Visualizer_Pro;
|
419 |
+
$Visualizer_Pro->_enqueueScriptsAndStyles( $data );
|
420 |
+
}
|
421 |
|
422 |
$this->_addAction( 'admin_head', 'renderFlattrScript' );
|
423 |
|
424 |
+
wp_iframe( array( $render, 'render' ) );
|
425 |
+
}
|
426 |
+
// changed by Ash/Upwork
|
|
|
427 |
/**
|
428 |
* Renders flattr script in the iframe <head>
|
429 |
*
|
433 |
* @access public
|
434 |
*/
|
435 |
public function renderFlattrScript() {
|
436 |
+
echo '';
|
437 |
}
|
438 |
|
439 |
/**
|
445 |
*/
|
446 |
public function uploadData() {
|
447 |
// validate nonce
|
448 |
+
if ( ! wp_verify_nonce( filter_input( INPUT_GET, 'nonce' ) ) ) {
|
449 |
status_header( 403 );
|
450 |
exit;
|
451 |
}
|
452 |
|
453 |
// check chart, if chart exists
|
454 |
$chart_id = filter_input( INPUT_GET, 'chart', FILTER_VALIDATE_INT );
|
455 |
+
if ( ! $chart_id || ! ( $chart = get_post( $chart_id ) ) || $chart->post_type != Visualizer_Plugin::CPT_VISUALIZER ) {
|
456 |
status_header( 400 );
|
457 |
exit;
|
458 |
}
|
460 |
$source = null;
|
461 |
$render = new Visualizer_Render_Page_Update();
|
462 |
if ( filter_input( INPUT_POST, 'remote_data', FILTER_VALIDATE_URL ) ) {
|
463 |
+
$source = new Visualizer_Source_Csv_Remote( $_POST['remote_data'] );
|
464 |
} elseif ( isset( $_FILES['local_data'] ) && $_FILES['local_data']['error'] == 0 ) {
|
465 |
+
$source = new Visualizer_Source_Csv( $_FILES['local_data']['tmp_name'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
466 |
|
467 |
+
// Added by Ash/Upwork
|
468 |
+
} elseif ( defined( 'Visualizer_Pro' ) && isset( $_POST['chart_data'] ) && strlen( $_POST['chart_data'] ) > 0 ) {
|
469 |
+
global $Visualizer_Pro;
|
470 |
+
$source = $Visualizer_Pro->_handleChartData( $_POST['chart_data'] );
|
471 |
+
// Added by Ash/Upwork
|
472 |
+
} else {
|
473 |
+
$render->message = esc_html__( 'CSV file with chart data was not uploaded. Please, try again.', 'visualizer' );
|
474 |
}
|
475 |
|
476 |
if ( $source ) {
|
485 |
$render->data = json_encode( $source->getRawData() );
|
486 |
$render->series = json_encode( $source->getSeries() );
|
487 |
} else {
|
488 |
+
$render->message = esc_html__( 'CSV file is broken or invalid. Please, try again.', 'visualizer' );
|
489 |
}
|
490 |
}
|
491 |
|
522 |
'post_content' => $chart->post_content,
|
523 |
) );
|
524 |
|
525 |
+
if ( $new_chart_id && ! is_wp_error( $new_chart_id ) ) {
|
526 |
add_post_meta( $new_chart_id, Visualizer_Plugin::CF_CHART_TYPE, get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true ) );
|
527 |
add_post_meta( $new_chart_id, Visualizer_Plugin::CF_DEFAULT_DATA, get_post_meta( $chart_id, Visualizer_Plugin::CF_DEFAULT_DATA, true ) );
|
528 |
add_post_meta( $new_chart_id, Visualizer_Plugin::CF_SOURCE, get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true ) );
|
548 |
* @access public
|
549 |
*/
|
550 |
public function exportData() {
|
551 |
+
check_ajax_referer( Visualizer_Plugin::ACTION_EXPORT_DATA . Visualizer_Plugin::VERSION, 'security' );
|
552 |
|
553 |
$chart_id = $success = false;
|
554 |
$capable = current_user_can( 'edit_posts' );
|
561 |
}
|
562 |
|
563 |
if ( $success ) {
|
564 |
+
$settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true );
|
565 |
+
$filename = $settings['title'];
|
566 |
+
if ( empty( $filename ) ) {
|
567 |
+
$filename = 'export.csv';
|
568 |
+
} else {
|
569 |
+
$filename .= '.csv';
|
570 |
+
}
|
571 |
+
$rows = array();
|
572 |
+
$series = get_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, true );
|
573 |
+
$data = unserialize( $chart->post_content );
|
574 |
+
if ( ! empty( $series ) ) {
|
575 |
+
$row = array();
|
576 |
+
foreach ( $series as $array ) {
|
577 |
+
$row[] = $array['label'];
|
578 |
+
}
|
579 |
+
$rows[] = $row;
|
580 |
+
|
581 |
+
$row = array();
|
582 |
+
foreach ( $series as $array ) {
|
583 |
+
$row[] = $array['type'];
|
584 |
+
}
|
585 |
+
$rows[] = $row;
|
586 |
+
}
|
587 |
+
|
588 |
+
if ( ! empty( $data ) ) {
|
589 |
+
foreach ( $data as $array ) {
|
590 |
+
// ignore strings
|
591 |
+
if ( ! is_array( $array ) ) { continue; }
|
592 |
+
|
593 |
+
// if this is an array of arrays...
|
594 |
+
if ( is_array( $array[0] ) ) {
|
595 |
+
foreach ( $array as $arr ) {
|
596 |
+
$rows[] = $arr;
|
597 |
+
}
|
598 |
+
} else {
|
599 |
+
// just an array
|
600 |
+
$rows[] = $array;
|
601 |
+
}
|
602 |
+
}
|
603 |
+
}
|
604 |
+
|
605 |
+
$fp = tmpfile();
|
606 |
+
foreach ( $rows as $row ) {
|
607 |
+
fputcsv( $fp, $row );
|
608 |
+
}
|
609 |
+
rewind( $fp );
|
610 |
+
|
611 |
+
$csv = '';
|
612 |
+
while ( ($array = fgetcsv( $fp )) !== false ) {
|
613 |
+
if ( strlen( $csv ) > 0 ) { $csv .= PHP_EOL; }
|
614 |
+
$csv .= implode( ',', $array );
|
615 |
+
}
|
616 |
+
fclose( $fp );
|
617 |
+
|
618 |
+
echo wp_send_json_success(array(
|
619 |
+
'csv' => $csv,
|
620 |
+
'name' => $filename,
|
621 |
+
));
|
622 |
}
|
623 |
|
624 |
exit;
|
625 |
}
|
626 |
+
}
|
classes/Visualizer/Module/Frontend.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Frontend module class.
|
25 |
*
|
@@ -58,12 +57,12 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
58 |
$this->_addShortcode( 'visualizer', 'renderChart' );
|
59 |
|
60 |
// add do_shortocde hook for widget_text filter
|
61 |
-
if ( !has_filter( 'widget_text', 'do_shortcode' ) ) {
|
62 |
add_filter( 'widget_text', 'do_shortcode' );
|
63 |
}
|
64 |
|
65 |
// add do_shortcode hook for term_description filter
|
66 |
-
if ( !has_filter( 'term_description', 'do_shortcode' ) ) {
|
67 |
add_filter( 'term_description', 'do_shortcode' );
|
68 |
}
|
69 |
}
|
@@ -78,7 +77,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
78 |
*/
|
79 |
public function enqueueScripts() {
|
80 |
wp_register_script( 'visualizer-google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
|
81 |
-
wp_register_script( 'visualizer-google-jsapi-old', '//www.google.com/jsapi', array('visualizer-google-jsapi-new'), null, true );
|
82 |
wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'visualizer-google-jsapi-old', 'jquery' ), Visualizer_Plugin::VERSION, true );
|
83 |
}
|
84 |
|
@@ -105,15 +104,15 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
105 |
), $atts );
|
106 |
|
107 |
// if empty id or chart does not exists, then return empty string
|
108 |
-
if (
|
109 |
return '';
|
110 |
}
|
111 |
|
112 |
$id = 'visualizer-' . $atts['id'];
|
113 |
-
|
114 |
$class = apply_filters( Visualizer_Plugin::FILTER_CHART_WRAPPER_CLASS, $atts['class'], $atts['id'] );
|
115 |
-
|
116 |
-
$class = !empty( $class ) ? ' class="' . trim($class) . '"' : '';
|
117 |
|
118 |
$type = get_post_meta( $chart->ID, Visualizer_Plugin::CF_CHART_TYPE, true );
|
119 |
|
@@ -125,23 +124,23 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
125 |
|
126 |
// handle series filter hooks
|
127 |
$series = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SERIES, get_post_meta( $chart->ID, Visualizer_Plugin::CF_SERIES, true ), $chart->ID, $type );
|
128 |
-
if ( !empty( $atts['series'] ) ) {
|
129 |
$series = apply_filters( $atts['series'], $series, $chart->ID, $type );
|
130 |
}
|
131 |
// handle settings filter hooks
|
132 |
$settings = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SETTINGS, $settings, $chart->ID, $type );
|
133 |
-
if ( !empty( $atts['settings'] ) ) {
|
134 |
$settings = apply_filters( $atts['settings'], $settings, $chart->ID, $type );
|
135 |
}
|
136 |
|
137 |
// handle data filter hooks
|
138 |
$data = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA, unserialize( $chart->post_content ), $chart->ID, $type );
|
139 |
-
if ( !empty( $atts['data'] ) ) {
|
140 |
$data = apply_filters( $atts['data'], $data, $chart->ID, $type );
|
141 |
}
|
142 |
|
143 |
// add chart to the array
|
144 |
-
$this->_charts[$id] = array(
|
145 |
'type' => $type,
|
146 |
'series' => $series,
|
147 |
'settings' => $settings,
|
@@ -156,4 +155,4 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
|
|
156 |
return '<div id="' . $id . '"' . $class . '></div>';
|
157 |
}
|
158 |
|
159 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Frontend module class.
|
24 |
*
|
57 |
$this->_addShortcode( 'visualizer', 'renderChart' );
|
58 |
|
59 |
// add do_shortocde hook for widget_text filter
|
60 |
+
if ( ! has_filter( 'widget_text', 'do_shortcode' ) ) {
|
61 |
add_filter( 'widget_text', 'do_shortcode' );
|
62 |
}
|
63 |
|
64 |
// add do_shortcode hook for term_description filter
|
65 |
+
if ( ! has_filter( 'term_description', 'do_shortcode' ) ) {
|
66 |
add_filter( 'term_description', 'do_shortcode' );
|
67 |
}
|
68 |
}
|
77 |
*/
|
78 |
public function enqueueScripts() {
|
79 |
wp_register_script( 'visualizer-google-jsapi-new', '//www.gstatic.com/charts/loader.js', array(), null, true );
|
80 |
+
wp_register_script( 'visualizer-google-jsapi-old', '//www.google.com/jsapi', array( 'visualizer-google-jsapi-new' ), null, true );
|
81 |
wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'visualizer-google-jsapi-old', 'jquery' ), Visualizer_Plugin::VERSION, true );
|
82 |
}
|
83 |
|
104 |
), $atts );
|
105 |
|
106 |
// if empty id or chart does not exists, then return empty string
|
107 |
+
if ( ! $atts['id'] || ! ( $chart = get_post( $atts['id'] ) ) || $chart->post_type != Visualizer_Plugin::CPT_VISUALIZER ) {
|
108 |
return '';
|
109 |
}
|
110 |
|
111 |
$id = 'visualizer-' . $atts['id'];
|
112 |
+
$defaultClass = 'visualizer-front';
|
113 |
$class = apply_filters( Visualizer_Plugin::FILTER_CHART_WRAPPER_CLASS, $atts['class'], $atts['id'] );
|
114 |
+
$class = $defaultClass . ' ' . $class;
|
115 |
+
$class = ! empty( $class ) ? ' class="' . trim( $class ) . '"' : '';
|
116 |
|
117 |
$type = get_post_meta( $chart->ID, Visualizer_Plugin::CF_CHART_TYPE, true );
|
118 |
|
124 |
|
125 |
// handle series filter hooks
|
126 |
$series = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SERIES, get_post_meta( $chart->ID, Visualizer_Plugin::CF_SERIES, true ), $chart->ID, $type );
|
127 |
+
if ( ! empty( $atts['series'] ) ) {
|
128 |
$series = apply_filters( $atts['series'], $series, $chart->ID, $type );
|
129 |
}
|
130 |
// handle settings filter hooks
|
131 |
$settings = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_SETTINGS, $settings, $chart->ID, $type );
|
132 |
+
if ( ! empty( $atts['settings'] ) ) {
|
133 |
$settings = apply_filters( $atts['settings'], $settings, $chart->ID, $type );
|
134 |
}
|
135 |
|
136 |
// handle data filter hooks
|
137 |
$data = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA, unserialize( $chart->post_content ), $chart->ID, $type );
|
138 |
+
if ( ! empty( $atts['data'] ) ) {
|
139 |
$data = apply_filters( $atts['data'], $data, $chart->ID, $type );
|
140 |
}
|
141 |
|
142 |
// add chart to the array
|
143 |
+
$this->_charts[ $id ] = array(
|
144 |
'type' => $type,
|
145 |
'series' => $series,
|
146 |
'settings' => $settings,
|
155 |
return '<div id="' . $id . '"' . $class . '></div>';
|
156 |
}
|
157 |
|
158 |
+
}
|
classes/Visualizer/Module/Setup.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* General module what setups all required environment.
|
25 |
*
|
@@ -74,4 +73,4 @@ class Visualizer_Module_Setup extends Visualizer_Module {
|
|
74 |
load_plugin_textdomain( Visualizer_Plugin::NAME, false, dirname( plugin_basename( VISUALIZER_BASEFILE ) ) . '/languages/' );
|
75 |
}
|
76 |
|
77 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* General module what setups all required environment.
|
24 |
*
|
73 |
load_plugin_textdomain( Visualizer_Plugin::NAME, false, dirname( plugin_basename( VISUALIZER_BASEFILE ) ) . '/languages/' );
|
74 |
}
|
75 |
|
76 |
+
}
|
classes/Visualizer/Module/Sources.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Sources module class.
|
25 |
*
|
@@ -67,16 +66,16 @@ class Visualizer_Module_Sources extends Visualizer_Module {
|
|
67 |
* @return Visualizer_Source The source object if source exists, otherwise FALSE.
|
68 |
*/
|
69 |
private function _getSource( $chart_id ) {
|
70 |
-
if ( !isset( $this->_sources[$chart_id] ) ) {
|
71 |
$class = get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true );
|
72 |
-
if ( !class_exists( $class, true ) ) {
|
73 |
return false;
|
74 |
}
|
75 |
|
76 |
-
$this->_sources[$chart_id] = new $class();
|
77 |
}
|
78 |
|
79 |
-
return $this->_sources[$chart_id];
|
80 |
}
|
81 |
|
82 |
/**
|
@@ -86,12 +85,12 @@ class Visualizer_Module_Sources extends Visualizer_Module {
|
|
86 |
*
|
87 |
* @access public
|
88 |
* @param array $series The array of chart series.
|
89 |
-
* @param int
|
90 |
* @return array The array of filtered series.
|
91 |
*/
|
92 |
public function filterChartSeries( $series, $chart_id ) {
|
93 |
$source = $this->_getSource( $chart_id );
|
94 |
-
if (
|
95 |
return $series;
|
96 |
}
|
97 |
|
@@ -105,16 +104,16 @@ class Visualizer_Module_Sources extends Visualizer_Module {
|
|
105 |
*
|
106 |
* @access public
|
107 |
* @param array $data The array of chart data.
|
108 |
-
* @param int
|
109 |
* @return array The array of filtered data.
|
110 |
*/
|
111 |
public function filterChartData( $data, $chart_id ) {
|
112 |
$source = $this->_getSource( $chart_id );
|
113 |
-
if (
|
114 |
return $data;
|
115 |
}
|
116 |
|
117 |
return $source->repopulateData( $data, $chart_id );
|
118 |
}
|
119 |
|
120 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Sources module class.
|
24 |
*
|
66 |
* @return Visualizer_Source The source object if source exists, otherwise FALSE.
|
67 |
*/
|
68 |
private function _getSource( $chart_id ) {
|
69 |
+
if ( ! isset( $this->_sources[ $chart_id ] ) ) {
|
70 |
$class = get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true );
|
71 |
+
if ( ! class_exists( $class, true ) ) {
|
72 |
return false;
|
73 |
}
|
74 |
|
75 |
+
$this->_sources[ $chart_id ] = new $class();
|
76 |
}
|
77 |
|
78 |
+
return $this->_sources[ $chart_id ];
|
79 |
}
|
80 |
|
81 |
/**
|
85 |
*
|
86 |
* @access public
|
87 |
* @param array $series The array of chart series.
|
88 |
+
* @param int $chart_id The chart id.
|
89 |
* @return array The array of filtered series.
|
90 |
*/
|
91 |
public function filterChartSeries( $series, $chart_id ) {
|
92 |
$source = $this->_getSource( $chart_id );
|
93 |
+
if ( ! $source ) {
|
94 |
return $series;
|
95 |
}
|
96 |
|
104 |
*
|
105 |
* @access public
|
106 |
* @param array $data The array of chart data.
|
107 |
+
* @param int $chart_id The chart id.
|
108 |
* @return array The array of filtered data.
|
109 |
*/
|
110 |
public function filterChartData( $data, $chart_id ) {
|
111 |
$source = $this->_getSource( $chart_id );
|
112 |
+
if ( ! $source ) {
|
113 |
return $data;
|
114 |
}
|
115 |
|
116 |
return $source->repopulateData( $data, $chart_id );
|
117 |
}
|
118 |
|
119 |
+
}
|
classes/Visualizer/Plugin.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* The core plugin class.
|
25 |
*
|
@@ -30,7 +29,7 @@
|
|
30 |
class Visualizer_Plugin {
|
31 |
|
32 |
const NAME = 'visualizer';
|
33 |
-
const VERSION = '1.
|
34 |
|
35 |
// custom post types
|
36 |
const CPT_VISUALIZER = 'visualizer';
|
@@ -49,7 +48,7 @@ class Visualizer_Plugin {
|
|
49 |
const ACTION_CLONE_CHART = 'visualizer-clone-chart';
|
50 |
const ACTION_DELETE_CHART = 'visualizer-delete-chart';
|
51 |
const ACTION_UPLOAD_DATA = 'visualizer-upload-data';
|
52 |
-
|
53 |
const ACTION_EXPORT_DATA = 'visualizer-export-data';
|
54 |
|
55 |
// custom filters
|
@@ -58,11 +57,10 @@ class Visualizer_Plugin {
|
|
58 |
const FILTER_GET_CHART_DATA = 'visualizer-get-chart-data';
|
59 |
const FILTER_GET_CHART_SETTINGS = 'visualizer-get-chart-settings';
|
60 |
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
/**
|
67 |
* Singletone instance of the plugin.
|
68 |
*
|
@@ -128,7 +126,7 @@ class Visualizer_Plugin {
|
|
128 |
* @return Visualizer_Module|null Returns a module if it was registered or NULL.
|
129 |
*/
|
130 |
public function getModule( $name ) {
|
131 |
-
return isset( $this->_modules[$name] ) ? $this->_modules[$name] : null;
|
132 |
}
|
133 |
|
134 |
/**
|
@@ -141,7 +139,7 @@ class Visualizer_Plugin {
|
|
141 |
* @return boolean TRUE if the module has been registered. Otherwise FALSE.
|
142 |
*/
|
143 |
public function hasModule( $name ) {
|
144 |
-
return isset( $this->_modules[$name] );
|
145 |
}
|
146 |
|
147 |
/**
|
@@ -150,10 +148,10 @@ class Visualizer_Plugin {
|
|
150 |
* @since 1.0.0
|
151 |
*
|
152 |
* @access public
|
153 |
-
* @param string $
|
154 |
*/
|
155 |
public function setModule( $class ) {
|
156 |
-
$this->_modules[$class] = new $class( $this );
|
157 |
}
|
158 |
|
159 |
/**
|
@@ -166,9 +164,9 @@ class Visualizer_Plugin {
|
|
166 |
* @return array
|
167 |
*/
|
168 |
public static function getChartTypes() {
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
}
|
173 |
|
174 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* The core plugin class.
|
24 |
*
|
29 |
class Visualizer_Plugin {
|
30 |
|
31 |
const NAME = 'visualizer';
|
32 |
+
const VERSION = '1.7.0';
|
33 |
|
34 |
// custom post types
|
35 |
const CPT_VISUALIZER = 'visualizer';
|
48 |
const ACTION_CLONE_CHART = 'visualizer-clone-chart';
|
49 |
const ACTION_DELETE_CHART = 'visualizer-delete-chart';
|
50 |
const ACTION_UPLOAD_DATA = 'visualizer-upload-data';
|
51 |
+
// Added by Ash/Upwork
|
52 |
const ACTION_EXPORT_DATA = 'visualizer-export-data';
|
53 |
|
54 |
// custom filters
|
57 |
const FILTER_GET_CHART_DATA = 'visualizer-get-chart-data';
|
58 |
const FILTER_GET_CHART_SETTINGS = 'visualizer-get-chart-settings';
|
59 |
|
60 |
+
// Added by Ash/Upwork
|
61 |
+
const PRO_TEASER_URL = 'http://themeisle.com/plugins/visualizer-charts-and-graphs-pro-addon/';
|
62 |
+
const PRO_TEASER_TITLE = 'Check PRO version ';
|
63 |
+
// Added by Ash/Upwork
|
|
|
64 |
/**
|
65 |
* Singletone instance of the plugin.
|
66 |
*
|
126 |
* @return Visualizer_Module|null Returns a module if it was registered or NULL.
|
127 |
*/
|
128 |
public function getModule( $name ) {
|
129 |
+
return isset( $this->_modules[ $name ] ) ? $this->_modules[ $name ] : null;
|
130 |
}
|
131 |
|
132 |
/**
|
139 |
* @return boolean TRUE if the module has been registered. Otherwise FALSE.
|
140 |
*/
|
141 |
public function hasModule( $name ) {
|
142 |
+
return isset( $this->_modules[ $name ] );
|
143 |
}
|
144 |
|
145 |
/**
|
148 |
* @since 1.0.0
|
149 |
*
|
150 |
* @access public
|
151 |
+
* @param string $class The name of the module to use in the plugin.
|
152 |
*/
|
153 |
public function setModule( $class ) {
|
154 |
+
$this->_modules[ $class ] = new $class( $this );
|
155 |
}
|
156 |
|
157 |
/**
|
164 |
* @return array
|
165 |
*/
|
166 |
public static function getChartTypes() {
|
167 |
+
$array = array_keys( Visualizer_Module_Admin::_getChartTypesLocalized() );
|
168 |
+
unset( $array[0] ); // all
|
169 |
+
return $array;
|
170 |
}
|
171 |
|
172 |
+
}
|
classes/Visualizer/Render.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Abstract render class implements all routine stuff required for template
|
25 |
* rendering.
|
@@ -64,7 +63,7 @@ abstract class Visualizer_Render {
|
|
64 |
* @return mixed Returns mixed value of a property or NULL if a property doesn't exist.
|
65 |
*/
|
66 |
public function __get( $name ) {
|
67 |
-
return array_key_exists( $name, $this->_data ) ? $this->_data[$name] : null;
|
68 |
}
|
69 |
|
70 |
/**
|
@@ -73,7 +72,7 @@ abstract class Visualizer_Render {
|
|
73 |
* @since 1.0.0
|
74 |
*
|
75 |
* @access public
|
76 |
-
* @param string $name
|
77 |
* @return boolean TRUE if the property exists, otherwise FALSE.
|
78 |
*/
|
79 |
public function __isset( $name ) {
|
@@ -87,10 +86,10 @@ abstract class Visualizer_Render {
|
|
87 |
*
|
88 |
* @access public
|
89 |
* @param string $name The name of a property to associate.
|
90 |
-
* @param mixed
|
91 |
*/
|
92 |
public function __set( $name, $value ) {
|
93 |
-
$this->_data[$name] = $value;
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -102,7 +101,7 @@ abstract class Visualizer_Render {
|
|
102 |
* @param string $name The name of the property to unassociate.
|
103 |
*/
|
104 |
public function __unset( $name ) {
|
105 |
-
unset( $this->_data[$name] );
|
106 |
}
|
107 |
|
108 |
/**
|
@@ -152,4 +151,4 @@ abstract class Visualizer_Render {
|
|
152 |
$this->_toHTML();
|
153 |
}
|
154 |
|
155 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Abstract render class implements all routine stuff required for template
|
24 |
* rendering.
|
63 |
* @return mixed Returns mixed value of a property or NULL if a property doesn't exist.
|
64 |
*/
|
65 |
public function __get( $name ) {
|
66 |
+
return array_key_exists( $name, $this->_data ) ? $this->_data[ $name ] : null;
|
67 |
}
|
68 |
|
69 |
/**
|
72 |
* @since 1.0.0
|
73 |
*
|
74 |
* @access public
|
75 |
+
* @param string $name The key name.
|
76 |
* @return boolean TRUE if the property exists, otherwise FALSE.
|
77 |
*/
|
78 |
public function __isset( $name ) {
|
86 |
*
|
87 |
* @access public
|
88 |
* @param string $name The name of a property to associate.
|
89 |
+
* @param mixed $value The value of a property.
|
90 |
*/
|
91 |
public function __set( $name, $value ) {
|
92 |
+
$this->_data[ $name ] = $value;
|
93 |
}
|
94 |
|
95 |
/**
|
101 |
* @param string $name The name of the property to unassociate.
|
102 |
*/
|
103 |
public function __unset( $name ) {
|
104 |
+
unset( $this->_data[ $name ] );
|
105 |
}
|
106 |
|
107 |
/**
|
151 |
$this->_toHTML();
|
152 |
}
|
153 |
|
154 |
+
}
|
classes/Visualizer/Render/Library.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Renders visualizer library page.
|
25 |
*
|
@@ -37,7 +36,7 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
37 |
*
|
38 |
* @access private
|
39 |
* @param string $placeholder_id The placeholder's id for the chart.
|
40 |
-
* @param int
|
41 |
*/
|
42 |
private function _renderChartBox( $placeholder_id, $chart_id ) {
|
43 |
$ajax_url = admin_url( 'admin-ajax.php' );
|
@@ -55,23 +54,23 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
55 |
'type' => $this->type,
|
56 |
), $ajax_url );
|
57 |
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
|
64 |
echo '<div class="visualizer-chart">';
|
65 |
echo '<div id="', $placeholder_id, '" class="visualizer-chart-canvas">';
|
66 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
67 |
echo '</div>';
|
68 |
echo '<div class="visualizer-chart-footer visualizer-clearfix">';
|
69 |
-
echo '<a class="visualizer-chart-action visualizer-chart-delete" href="', $delete_url, '" title="', esc_attr__( 'Delete',
|
70 |
-
echo '<a class="visualizer-chart-action visualizer-chart-clone" href="', $clone_url, '" title="', esc_attr__( 'Clone',
|
71 |
-
echo '<a class="visualizer-chart-action visualizer-chart-edit" href="javascript:;" title="', esc_attr__( 'Edit',
|
72 |
-
echo '<a class="visualizer-chart-action visualizer-chart-export" href="javascript:;" title="', esc_attr__( 'Export',
|
73 |
|
74 |
-
echo '<span class="visualizer-chart-shortcode" title="', esc_attr__( 'Click to select',
|
75 |
echo ' [visualizer id="', $chart_id, '"] ';
|
76 |
echo '</span>';
|
77 |
echo '</div>';
|
@@ -86,55 +85,54 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
86 |
* @access private
|
87 |
*/
|
88 |
private function _renderLibrary() {
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
<input type="text" name="filter" value="' . $filterBy . '">
|
96 |
<input type="hidden" name="page" value="visualizer">
|
97 |
-
<input type="submit" class="button button-secondary" value="' . esc_attr__('Search',
|
98 |
</form></div>';
|
99 |
-
|
100 |
-
|
101 |
echo '<div id="visualizer-types" class="visualizer-clearfix">';
|
102 |
echo '<ul>';
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
echo '</ul>';
|
117 |
echo '</div>';
|
118 |
|
119 |
-
if ( !empty( $this->charts ) ) {
|
120 |
echo '<div id="visualizer-library" class="visualizer-clearfix">';
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
echo '</div>';
|
125 |
|
126 |
if ( is_array( $this->pagination ) ) {
|
127 |
echo '<ul class="visualizer-library-pagination">';
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
echo '</ul>';
|
132 |
}
|
133 |
} else {
|
134 |
echo '<div id="visualizer-library" class="visualizer-clearfix">';
|
135 |
echo '<div class="visualizer-chart">';
|
136 |
echo '<div class="visualizer-chart-canvas visualizer-nochart-canvas">';
|
137 |
-
echo '<div class="visualizer-notfound">', esc_html__( 'No charts found',
|
138 |
echo '</div>';
|
139 |
echo '<div class="visualizer-chart-footer visualizer-clearfix">';
|
140 |
echo '<span class="visualizer-chart-action visualizer-nochart-delete"></span>';
|
@@ -162,8 +160,8 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
162 |
echo '<div class="wrap">';
|
163 |
echo '<div id="visualizer-icon" class="icon32"><br></div>';
|
164 |
echo '<h2>';
|
165 |
-
esc_html_e( 'Visualizer Library',
|
166 |
-
echo ' <a href="javascript:;" class="add-new-h2">', esc_html__( 'Add New',
|
167 |
echo '</h2>';
|
168 |
|
169 |
$this->_renderMessages();
|
@@ -179,13 +177,13 @@ class Visualizer_Render_Library extends Visualizer_Render {
|
|
179 |
* @access private
|
180 |
*/
|
181 |
private function _renderMessages() {
|
182 |
-
if ( !filter_var( ini_get( 'allow_url_fopen' ), FILTER_VALIDATE_BOOLEAN ) ) {
|
183 |
echo '<div class="updated error">';
|
184 |
echo '<p>';
|
185 |
-
printf( esc_html__( '%s option is disabled in your php.ini config. Please, enable it by change its value to 1. This option increases the speed of remote CSV uploading.',
|
186 |
echo '</p>';
|
187 |
echo '</div>';
|
188 |
}
|
189 |
}
|
190 |
|
191 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Renders visualizer library page.
|
24 |
*
|
36 |
*
|
37 |
* @access private
|
38 |
* @param string $placeholder_id The placeholder's id for the chart.
|
39 |
+
* @param int $chart_id The id of the chart.
|
40 |
*/
|
41 |
private function _renderChartBox( $placeholder_id, $chart_id ) {
|
42 |
$ajax_url = admin_url( 'admin-ajax.php' );
|
54 |
'type' => $this->type,
|
55 |
), $ajax_url );
|
56 |
|
57 |
+
$export_link = add_query_arg( array(
|
58 |
+
'action' => Visualizer_Plugin::ACTION_EXPORT_DATA,
|
59 |
+
'chart' => $chart_id,
|
60 |
+
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_EXPORT_DATA . Visualizer_Plugin::VERSION ),
|
61 |
+
), admin_url( 'admin-ajax.php' ) );
|
62 |
|
63 |
echo '<div class="visualizer-chart">';
|
64 |
echo '<div id="', $placeholder_id, '" class="visualizer-chart-canvas">';
|
65 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
66 |
echo '</div>';
|
67 |
echo '<div class="visualizer-chart-footer visualizer-clearfix">';
|
68 |
+
echo '<a class="visualizer-chart-action visualizer-chart-delete" href="', $delete_url, '" title="', esc_attr__( 'Delete', 'visualizer' ), '" onclick="return showNotice.warn();"></a>';
|
69 |
+
echo '<a class="visualizer-chart-action visualizer-chart-clone" href="', $clone_url, '" title="', esc_attr__( 'Clone', 'visualizer' ), '"></a>';
|
70 |
+
echo '<a class="visualizer-chart-action visualizer-chart-edit" href="javascript:;" title="', esc_attr__( 'Edit', 'visualizer' ), '" data-chart="', $chart_id, '"></a>';
|
71 |
+
echo '<a class="visualizer-chart-action visualizer-chart-export" href="javascript:;" title="', esc_attr__( 'Export', 'visualizer' ), '" data-chart="', $export_link, '"></a>';
|
72 |
|
73 |
+
echo '<span class="visualizer-chart-shortcode" title="', esc_attr__( 'Click to select', 'visualizer' ), '">';
|
74 |
echo ' [visualizer id="', $chart_id, '"] ';
|
75 |
echo '</span>';
|
76 |
echo '</div>';
|
85 |
* @access private
|
86 |
*/
|
87 |
private function _renderLibrary() {
|
88 |
+
// Added by Ash/Upwork
|
89 |
+
$filterBy = null;
|
90 |
+
if ( isset( $_GET['filter'] ) && strlen( $_GET['filter'] ) > 0 ) {
|
91 |
+
$filterBy = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
|
92 |
+
}
|
93 |
+
echo '<div id="visualizer-search"><form action="" method="get">
|
94 |
<input type="text" name="filter" value="' . $filterBy . '">
|
95 |
<input type="hidden" name="page" value="visualizer">
|
96 |
+
<input type="submit" class="button button-secondary" value="' . esc_attr__( 'Search', 'visualizer' ) . '">
|
97 |
</form></div>';
|
98 |
+
// Added by Ash/Upwork
|
|
|
99 |
echo '<div id="visualizer-types" class="visualizer-clearfix">';
|
100 |
echo '<ul>';
|
101 |
+
foreach ( $this->types as $type => $label ) {
|
102 |
+
echo '<li class="visualizer-list-item">';
|
103 |
+
if ( $type == $this->type ) {
|
104 |
+
echo '<a class="page-numbers current" href="', esc_url( add_query_arg( 'vpage', false ) ), '">';
|
105 |
+
echo $label;
|
106 |
+
echo '</a>';
|
107 |
+
} else {
|
108 |
+
echo '<a class="page-numbers" href="', esc_url( add_query_arg( array( 'type' => $type, 'vpage' => false ) ) ), '">';
|
109 |
+
echo $label;
|
110 |
+
echo '</a>';
|
111 |
+
}
|
112 |
+
echo '</li>';
|
113 |
+
}
|
114 |
echo '</ul>';
|
115 |
echo '</div>';
|
116 |
|
117 |
+
if ( ! empty( $this->charts ) ) {
|
118 |
echo '<div id="visualizer-library" class="visualizer-clearfix">';
|
119 |
+
foreach ( $this->charts as $placeholder_id => $chart ) {
|
120 |
+
$this->_renderChartBox( $placeholder_id, $chart['id'] );
|
121 |
+
}
|
122 |
echo '</div>';
|
123 |
|
124 |
if ( is_array( $this->pagination ) ) {
|
125 |
echo '<ul class="visualizer-library-pagination">';
|
126 |
+
foreach ( $this->pagination as $page ) {
|
127 |
+
echo '<li class="visualizer-list-item">', $page, '</li>';
|
128 |
+
}
|
129 |
echo '</ul>';
|
130 |
}
|
131 |
} else {
|
132 |
echo '<div id="visualizer-library" class="visualizer-clearfix">';
|
133 |
echo '<div class="visualizer-chart">';
|
134 |
echo '<div class="visualizer-chart-canvas visualizer-nochart-canvas">';
|
135 |
+
echo '<div class="visualizer-notfound">', esc_html__( 'No charts found', 'visualizer' ), '</div>';
|
136 |
echo '</div>';
|
137 |
echo '<div class="visualizer-chart-footer visualizer-clearfix">';
|
138 |
echo '<span class="visualizer-chart-action visualizer-nochart-delete"></span>';
|
160 |
echo '<div class="wrap">';
|
161 |
echo '<div id="visualizer-icon" class="icon32"><br></div>';
|
162 |
echo '<h2>';
|
163 |
+
esc_html_e( 'Visualizer Library', 'visualizer' );
|
164 |
+
echo ' <a href="javascript:;" class="add-new-h2">', esc_html__( 'Add New', 'visualizer' ), '</a>';
|
165 |
echo '</h2>';
|
166 |
|
167 |
$this->_renderMessages();
|
177 |
* @access private
|
178 |
*/
|
179 |
private function _renderMessages() {
|
180 |
+
if ( ! filter_var( ini_get( 'allow_url_fopen' ), FILTER_VALIDATE_BOOLEAN ) ) {
|
181 |
echo '<div class="updated error">';
|
182 |
echo '<p>';
|
183 |
+
printf( esc_html__( '%s option is disabled in your php.ini config. Please, enable it by change its value to 1. This option increases the speed of remote CSV uploading.', 'visualizer' ), '<b>allow_url_fopen</b>' );
|
184 |
echo '</p>';
|
185 |
echo '</div>';
|
186 |
}
|
187 |
}
|
188 |
|
189 |
+
}
|
classes/Visualizer/Render/Page.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Base class for all chart builder pages.
|
26 |
*
|
@@ -71,10 +69,10 @@ class Visualizer_Render_Page extends Visualizer_Render {
|
|
71 |
echo '</ul>';
|
72 |
|
73 |
echo '<div id="rate-the-plugin">';
|
74 |
-
echo '<div><b>', esc_html__( 'Like the plugin? Show us your love!',
|
75 |
echo '<div id="rate-stars"> </div>';
|
76 |
echo '<a id="rate-link" href="http://wordpress.org/support/view/plugin-reviews/visualizer" target="_blank">';
|
77 |
-
esc_html_e( 'Rate it on WordPress.org',
|
78 |
echo '</a>';
|
79 |
echo '</div>';
|
80 |
echo '</div>';
|
@@ -98,4 +96,4 @@ class Visualizer_Render_Page extends Visualizer_Render {
|
|
98 |
*/
|
99 |
protected function _renderToolbar() {}
|
100 |
|
101 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Base class for all chart builder pages.
|
24 |
*
|
69 |
echo '</ul>';
|
70 |
|
71 |
echo '<div id="rate-the-plugin">';
|
72 |
+
echo '<div><b>', esc_html__( 'Like the plugin? Show us your love!', 'visualizer' ), '</b></div>';
|
73 |
echo '<div id="rate-stars"> </div>';
|
74 |
echo '<a id="rate-link" href="http://wordpress.org/support/view/plugin-reviews/visualizer" target="_blank">';
|
75 |
+
esc_html_e( 'Rate it on WordPress.org', 'visualizer' );
|
76 |
echo '</a>';
|
77 |
echo '</div>';
|
78 |
echo '</div>';
|
96 |
*/
|
97 |
protected function _renderToolbar() {}
|
98 |
|
99 |
+
}
|
classes/Visualizer/Render/Page/Data.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Renders chart data setup page.
|
25 |
*
|
@@ -39,14 +38,13 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
|
|
39 |
* @access protected
|
40 |
*/
|
41 |
protected function _renderContent() {
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
echo '<div id="canvas">';
|
50 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
51 |
echo '</div>';
|
52 |
}
|
@@ -69,13 +67,13 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
|
|
69 |
echo '<div class="initial-screen">';
|
70 |
echo '<iframe id="thehole" name="thehole"></iframe>';
|
71 |
echo '<p class="group-description">';
|
72 |
-
|
73 |
echo '</p>';
|
74 |
|
75 |
echo '<p class="group-description">';
|
76 |
-
esc_html_e( 'If you are unsure about how to format your data CSV then please take a look at this sample:',
|
77 |
echo ' <a href="', VISUALIZER_ABSURL, 'samples/', $this->type, '.csv" target="_blank">', $this->type, '.csv</a> ';
|
78 |
-
printf( esc_html__( 'or read how you can add Google spreadsheet in following %sarticle%s.',
|
79 |
echo '</p>';
|
80 |
|
81 |
echo '<div>';
|
@@ -84,46 +82,45 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
|
|
84 |
echo '<div class="form-inline">';
|
85 |
echo '<div class="button button-primary file-wrapper computer-btn">';
|
86 |
echo '<input type="file" id="csv-file" class="file" name="local_data">';
|
87 |
-
esc_attr_e( 'From Computer',
|
88 |
echo '</div>';
|
89 |
|
90 |
-
echo '<a id="remote-file" class="button from-web from-web-btn" href="javascript:;">', esc_html__( 'From Web',
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
echo '</div>';
|
100 |
echo '</form>';
|
101 |
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
?>
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
<?php
|
112 |
-
|
113 |
-
|
114 |
-
echo'<input type="button" name="advanced_button" class="advanced-settings-btn preview-btn" value="'. __( 'Advanced', Visualizer_Plugin::NAME ).' »">';
|
115 |
-
// Added by Ash/Upwork
|
116 |
|
|
|
|
|
117 |
echo '</div>';
|
118 |
echo '</div>';
|
119 |
|
120 |
-
|
121 |
echo '<div class= "second-screen hidden-setting">';
|
122 |
echo '<form id="settings-form" action="', add_query_arg( 'nonce', wp_create_nonce() ), '" method="post">';
|
123 |
-
|
124 |
echo '</form>';
|
125 |
echo '</div>';
|
126 |
-
|
127 |
}
|
128 |
|
129 |
/**
|
@@ -134,16 +131,15 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
|
|
134 |
* @access protected
|
135 |
*/
|
136 |
protected function _renderToolbar() {
|
137 |
-
|
138 |
-
|
139 |
echo '<a class="button button-large" href="', add_query_arg( 'tab', 'types' ), '">';
|
140 |
-
esc_html_e( 'Back',
|
141 |
echo '</a>';
|
142 |
-
echo '</div>';
|
143 |
echo '<input type="submit" id="settings-button" class="button button-primary button-large push-right" value="', $this->button, '">';
|
144 |
|
145 |
-
|
146 |
-
|
147 |
|
148 |
}
|
149 |
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Renders chart data setup page.
|
24 |
*
|
38 |
* @access protected
|
39 |
*/
|
40 |
protected function _renderContent() {
|
41 |
+
// Added by Ash/Upwork
|
42 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
43 |
+
global $Visualizer_Pro;
|
44 |
+
$Visualizer_Pro->_addEditor();
|
45 |
+
}
|
46 |
+
// Added by Ash/Upwork
|
47 |
+
echo '<div id="canvas">';
|
|
|
48 |
echo '<img src="', VISUALIZER_ABSURL, 'images/ajax-loader.gif" class="loader">';
|
49 |
echo '</div>';
|
50 |
}
|
67 |
echo '<div class="initial-screen">';
|
68 |
echo '<iframe id="thehole" name="thehole"></iframe>';
|
69 |
echo '<p class="group-description">';
|
70 |
+
esc_html_e( 'Select and upload your data CSV file here. The first row of the CSV file should contain the column headings. The second one should contain series type (string, number, boolean, date, datetime, timeofday).', 'visualizer' );
|
71 |
echo '</p>';
|
72 |
|
73 |
echo '<p class="group-description">';
|
74 |
+
esc_html_e( 'If you are unsure about how to format your data CSV then please take a look at this sample:', 'visualizer' );
|
75 |
echo ' <a href="', VISUALIZER_ABSURL, 'samples/', $this->type, '.csv" target="_blank">', $this->type, '.csv</a> ';
|
76 |
+
printf( esc_html__( 'or read how you can add Google spreadsheet in following %1$sarticle%1$s.', 'visualizer' ), '<a href="https://github.com/madpixelslabs/visualizer/wiki/How-can-I-populate-data-from-Google-Spreadsheet%3F" target="_blank">', '</a>' );
|
77 |
echo '</p>';
|
78 |
|
79 |
echo '<div>';
|
82 |
echo '<div class="form-inline">';
|
83 |
echo '<div class="button button-primary file-wrapper computer-btn">';
|
84 |
echo '<input type="file" id="csv-file" class="file" name="local_data">';
|
85 |
+
esc_attr_e( 'From Computer', 'visualizer' );
|
86 |
echo '</div>';
|
87 |
|
88 |
+
echo '<a id="remote-file" class="button from-web from-web-btn" href="javascript:;">', esc_html__( 'From Web', 'visualizer' ), '</a>';
|
89 |
+
// Added by Ash/Upwork
|
90 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
91 |
+
global $Visualizer_Pro;
|
92 |
+
$Visualizer_Pro->_addFormElements();
|
93 |
+
} else {
|
94 |
+
// Added by Ash/Upwork
|
95 |
+
echo '<div class="just-on-pro"> </div>';
|
96 |
+
}
|
97 |
echo '</div>';
|
98 |
echo '</form>';
|
99 |
|
100 |
+
// added by Ash/Upwork
|
101 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
102 |
+
global $Visualizer_Pro;
|
103 |
+
$Visualizer_Pro->_addEditorElements();
|
104 |
+
} else {
|
105 |
?>
|
106 |
+
<a href="<?php echo Visualizer_Plugin::PRO_TEASER_URL;?>" title="<?php echo Visualizer_Plugin::PRO_TEASER_TITLE;?>" class="check-pro-btn" target="_new">
|
107 |
+
<input type="button" class="button preview preview-btn" id="existing-chart-free" value="<?php esc_attr_e( 'Check PRO Version ', 'visualizer' );?>">
|
108 |
+
</a>
|
109 |
<?php
|
110 |
+
}
|
|
|
|
|
|
|
111 |
|
112 |
+
echo'<input type="button" name="advanced_button" class="advanced-settings-btn preview-btn" value="' . __( 'Advanced', 'visualizer' ) . ' »">';
|
113 |
+
// Added by Ash/Upwork
|
114 |
echo '</div>';
|
115 |
echo '</div>';
|
116 |
|
117 |
+
// changed by Ash/Upwork
|
118 |
echo '<div class= "second-screen hidden-setting">';
|
119 |
echo '<form id="settings-form" action="', add_query_arg( 'nonce', wp_create_nonce() ), '" method="post">';
|
120 |
+
echo $this->sidebar;
|
121 |
echo '</form>';
|
122 |
echo '</div>';
|
123 |
+
// changed by Ash/Upwork
|
124 |
}
|
125 |
|
126 |
/**
|
131 |
* @access protected
|
132 |
*/
|
133 |
protected function _renderToolbar() {
|
134 |
+
// changed by Ash/Upwork
|
135 |
+
echo '<div class="toolbar-div">';
|
136 |
echo '<a class="button button-large" href="', add_query_arg( 'tab', 'types' ), '">';
|
137 |
+
esc_html_e( 'Back', 'visualizer' );
|
138 |
echo '</a>';
|
139 |
+
echo '</div>';
|
140 |
echo '<input type="submit" id="settings-button" class="button button-primary button-large push-right" value="', $this->button, '">';
|
141 |
|
142 |
+
echo '</div>';
|
|
|
143 |
|
144 |
}
|
145 |
|
classes/Visualizer/Render/Page/Send.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Renders page which sends a text to editor.
|
25 |
*
|
@@ -55,4 +54,4 @@ class Visualizer_Render_Page_Send extends Visualizer_Render_Page {
|
|
55 |
echo '</html>';
|
56 |
}
|
57 |
|
58 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Renders page which sends a text to editor.
|
24 |
*
|
54 |
echo '</html>';
|
55 |
}
|
56 |
|
57 |
+
}
|
classes/Visualizer/Render/Page/Settings.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Renders chart settings page.
|
25 |
*
|
@@ -53,7 +52,7 @@ class Visualizer_Render_Page_Settings extends Visualizer_Render_Page {
|
|
53 |
*/
|
54 |
protected function _renderToolbar() {
|
55 |
echo '<a class="button button-large" href="', add_query_arg( 'tab', 'data' ), '">';
|
56 |
-
esc_html_e( 'Back',
|
57 |
echo '</a>';
|
58 |
echo '<input type="submit" class="button button-primary button-large push-right" value="', $this->button, '">';
|
59 |
}
|
@@ -82,4 +81,4 @@ class Visualizer_Render_Page_Settings extends Visualizer_Render_Page {
|
|
82 |
echo $this->sidebar;
|
83 |
}
|
84 |
|
85 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Renders chart settings page.
|
24 |
*
|
52 |
*/
|
53 |
protected function _renderToolbar() {
|
54 |
echo '<a class="button button-large" href="', add_query_arg( 'tab', 'data' ), '">';
|
55 |
+
esc_html_e( 'Back', 'visualizer' );
|
56 |
echo '</a>';
|
57 |
echo '<input type="submit" class="button button-primary button-large push-right" value="', $this->button, '">';
|
58 |
}
|
81 |
echo $this->sidebar;
|
82 |
}
|
83 |
|
84 |
+
}
|
classes/Visualizer/Render/Page/Types.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Renders chart type picker page.
|
25 |
*
|
@@ -54,13 +53,13 @@ class Visualizer_Render_Page_Types extends Visualizer_Render_Page {
|
|
54 |
*/
|
55 |
protected function _renderContent() {
|
56 |
echo '<div id="type-picker">';
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
echo '</div>';
|
65 |
}
|
66 |
|
@@ -80,15 +79,15 @@ class Visualizer_Render_Page_Types extends Visualizer_Render_Page {
|
|
80 |
*
|
81 |
* @access protected
|
82 |
*/
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
echo "<a class='pro-upsell' href='".Visualizer_Plugin::PRO_TEASER_URL."' target='_blank'>";
|
88 |
-
|
89 |
-
|
90 |
-
echo
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Renders chart type picker page.
|
24 |
*
|
53 |
*/
|
54 |
protected function _renderContent() {
|
55 |
echo '<div id="type-picker">';
|
56 |
+
foreach ( $this->types as $type ) {
|
57 |
+
echo '<div class="type-box type-box-', $type, '">';
|
58 |
+
echo '<label class="type-label', $type == $this->type ? ' type-label-selected' : '', '">';
|
59 |
+
echo '<input type="radio" class="type-radio" name="type" value="', $type, '"', checked( $type, $this->type, false ), '>';
|
60 |
+
echo '</label>';
|
61 |
+
echo '</div>';
|
62 |
+
}
|
63 |
echo '</div>';
|
64 |
}
|
65 |
|
79 |
*
|
80 |
* @access protected
|
81 |
*/
|
82 |
+
protected function _renderToolbar() {
|
83 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
84 |
+
global $Visualizer_Pro;
|
85 |
+
} else {
|
86 |
+
echo "<a class='pro-upsell' href='" . Visualizer_Plugin::PRO_TEASER_URL . "' target='_blank'>";
|
87 |
+
echo "<span class='dashicons dashicons-plus-alt'></span>";
|
88 |
+
echo esc_html( 'Three Additional Chart Types Available in the Pro Version ( Table, Timeline and Combo Chart ) ', 'visualizer' );
|
89 |
+
echo '</a>';
|
90 |
+
}
|
91 |
+
echo '<input type="submit" class="button button-primary button-large push-right" value="', esc_attr__( 'Next', 'visualizer' ), '">';
|
92 |
+
}
|
93 |
}
|
classes/Visualizer/Render/Page/Update.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Renders data uploading respond.
|
26 |
*
|
@@ -45,24 +43,23 @@ class Visualizer_Render_Page_Update extends Visualizer_Render_Page {
|
|
45 |
echo '<head>';
|
46 |
echo '<script type="text/javascript">';
|
47 |
echo '(function() {';
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
// added by Ash/Upwork
|
57 |
-
if( defined( 'Visualizer_Pro' ) ){
|
58 |
-
global $Visualizer_Pro;
|
59 |
-
$Visualizer_Pro->_addUpdateHook($this->series, $this->data);
|
60 |
-
}
|
61 |
-
// Added by Ash/Upwork
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
echo '})();';
|
67 |
echo '</script>';
|
68 |
echo '</head>';
|
@@ -70,4 +67,4 @@ class Visualizer_Render_Page_Update extends Visualizer_Render_Page {
|
|
70 |
echo '</html>';
|
71 |
}
|
72 |
|
73 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Renders data uploading respond.
|
24 |
*
|
43 |
echo '<head>';
|
44 |
echo '<script type="text/javascript">';
|
45 |
echo '(function() {';
|
46 |
+
if ( empty( $this->message ) ) {
|
47 |
+
echo 'var win = window.dialogArguments || opener || parent || top;';
|
48 |
+
echo 'if (win.visualizer) {';
|
49 |
+
echo 'win.visualizer.charts.canvas.series = ', $this->series, ';';
|
50 |
+
echo 'win.visualizer.charts.canvas.data = ', $this->data, ';';
|
51 |
+
echo 'win.visualizer.render();';
|
52 |
+
echo '}';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
+
// added by Ash/Upwork
|
55 |
+
if ( defined( 'Visualizer_Pro' ) ) {
|
56 |
+
global $Visualizer_Pro;
|
57 |
+
$Visualizer_Pro->_addUpdateHook( $this->series, $this->data );
|
58 |
+
}
|
59 |
+
// Added by Ash/Upwork
|
60 |
+
} else {
|
61 |
+
echo 'alert("', $this->message, '");';
|
62 |
+
}
|
63 |
echo '})();';
|
64 |
echo '</script>';
|
65 |
echo '</head>';
|
67 |
echo '</html>';
|
68 |
}
|
69 |
|
70 |
+
}
|
classes/Visualizer/Render/Sidebar.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Base class for all chart sidebar groups.
|
26 |
*
|
@@ -98,25 +96,25 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
98 |
|
99 |
$this->_legendPositions = array(
|
100 |
'' => '',
|
101 |
-
'left' => esc_html__( 'Left of the chart',
|
102 |
-
'right' => esc_html__( 'Right of the chart',
|
103 |
-
'top' => esc_html__( 'Above the chart',
|
104 |
-
'bottom' => esc_html__( 'Below the chart',
|
105 |
-
'in' => esc_html__( 'Inside the chart',
|
106 |
-
'none' => esc_html__( 'Omit the legend',
|
107 |
);
|
108 |
|
109 |
$this->_alignments = array(
|
110 |
'' => '',
|
111 |
-
'start' => esc_html__( 'Aligned to the start of the allocated area',
|
112 |
-
'center' => esc_html__( 'Centered in the allocated area',
|
113 |
-
'end' => esc_html__( 'Aligned to the end of the allocated area',
|
114 |
);
|
115 |
|
116 |
$this->_yesno = array(
|
117 |
'' => '',
|
118 |
-
'1' => esc_html__( 'Yes',
|
119 |
-
'0' => esc_html__( 'No',
|
120 |
);
|
121 |
}
|
122 |
|
@@ -129,14 +127,14 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
129 |
*/
|
130 |
protected function _renderChartTitleSettings() {
|
131 |
self::_renderTextItem(
|
132 |
-
esc_html__( 'Chart Title',
|
133 |
'title',
|
134 |
$this->title,
|
135 |
-
esc_html__( 'Text to display above the chart.',
|
136 |
);
|
137 |
|
138 |
self::_renderColorPickerItem(
|
139 |
-
esc_html__( 'Chart Title Color',
|
140 |
'titleTextStyle[color]',
|
141 |
isset( $this->titleTextStyle['color'] ) ? $this->titleTextStyle['color'] : null,
|
142 |
'#000'
|
@@ -151,75 +149,75 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
151 |
* @access protected
|
152 |
*/
|
153 |
protected function _renderGeneralSettings() {
|
154 |
-
self::_renderGroupStart( esc_html__( 'General Settings',
|
155 |
self::_renderSectionStart();
|
156 |
-
self::_renderSectionDescription( esc_html__( 'Configure title, font styles, tooltip, legend and else settings for the chart.',
|
157 |
self::_renderSectionEnd();
|
158 |
|
159 |
-
self::_renderSectionStart( esc_html__( 'Title',
|
160 |
$this->_renderChartTitleSettings();
|
161 |
self::_renderSectionEnd();
|
162 |
|
163 |
-
self::_renderSectionStart( esc_html__( 'Font Styles' ), false );
|
164 |
echo '<div class="section-item">';
|
165 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
166 |
-
echo '<b>', esc_html__( 'Family And Size',
|
167 |
|
168 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
169 |
echo '<tr>';
|
170 |
echo '<td class="section-table-column">';
|
171 |
echo '<select name="fontName" class="control-select">';
|
172 |
echo '<option></option>';
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
echo '</select>';
|
179 |
echo '</td>';
|
180 |
echo '<td class="section-table-column">';
|
181 |
echo '<select name="fontSize" class="control-select">';
|
182 |
echo '<option></option>';
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
echo '</select>';
|
187 |
echo '</td>';
|
188 |
echo '</tr>';
|
189 |
echo '</table>';
|
190 |
|
191 |
echo '<p class="section-description">';
|
192 |
-
esc_html_e( 'The default font family and size for all text in the chart.',
|
193 |
echo '</p>';
|
194 |
echo '</div>';
|
195 |
self::_renderSectionEnd();
|
196 |
|
197 |
-
self::_renderSectionStart( esc_html__( 'Legend',
|
198 |
self::_renderSelectItem(
|
199 |
-
esc_html__( 'Position',
|
200 |
'legend[position]',
|
201 |
$this->legend['position'],
|
202 |
$this->_legendPositions,
|
203 |
-
esc_html__( 'Determines where to place the legend, compared to the chart area.',
|
204 |
);
|
205 |
|
206 |
self::_renderSelectItem(
|
207 |
-
esc_html__( 'Alignment',
|
208 |
'legend[alignment]',
|
209 |
$this->legend['alignment'],
|
210 |
$this->_alignments,
|
211 |
-
esc_html__( 'Determines the alignment of the legend.',
|
212 |
);
|
213 |
|
214 |
self::_renderColorPickerItem(
|
215 |
-
esc_html__( 'Font Color',
|
216 |
'legend[textStyle][color]',
|
217 |
isset( $this->legend['textStyle']['color'] ) ? $this->legend['textStyle']['color'] : null,
|
218 |
'#000'
|
219 |
);
|
220 |
self::_renderSectionEnd();
|
221 |
|
222 |
-
self::_renderSectionStart( esc_html__( 'Tooltip',
|
223 |
$this->_renderTooltipSettigns();
|
224 |
self::_renderSectionEnd();
|
225 |
self::_renderGroupEnd();
|
@@ -234,24 +232,24 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
234 |
*/
|
235 |
protected function _renderTooltipSettigns() {
|
236 |
self::_renderSelectItem(
|
237 |
-
esc_html__( 'Trigger',
|
238 |
'tooltip[trigger]',
|
239 |
isset( $this->tooltip['trigger'] ) ? $this->tooltip['trigger'] : null,
|
240 |
array(
|
241 |
'' => '',
|
242 |
-
'focus' => esc_html__( 'The tooltip will be displayed when the user hovers over an element',
|
243 |
-
'selection' => esc_html__( 'The tooltip will be displayed when the user selects an element',
|
244 |
-
'none' => esc_html__( 'The tooltip will not be displayed',
|
245 |
),
|
246 |
-
esc_html__( 'Determines the user interaction that causes the tooltip to be displayed.',
|
247 |
);
|
248 |
|
249 |
self::_renderSelectItem(
|
250 |
-
esc_html__( 'Show Color Code',
|
251 |
'tooltip[showColorCode]',
|
252 |
isset( $this->tooltip['showColorCode'] ) ? $this->tooltip['showColorCode'] : null,
|
253 |
$this->_yesno,
|
254 |
-
esc_html__( 'If set to yes, will show colored squares next to the slice information in the tooltip.',
|
255 |
);
|
256 |
}
|
257 |
|
@@ -263,13 +261,13 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
263 |
* @access protected
|
264 |
*/
|
265 |
protected function _renderViewSettings() {
|
266 |
-
self::_renderGroupStart( esc_html__( 'Layout & Chart Area',
|
267 |
-
self::_renderSectionStart( esc_html__( 'Layout',
|
268 |
-
self::_renderSectionDescription( esc_html__( 'Configure the total size of the chart. Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.',
|
269 |
|
270 |
echo '<div class="section-item">';
|
271 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
272 |
-
echo '<b>', esc_html__( 'Width And Height Of Chart',
|
273 |
|
274 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
275 |
echo '<tr>';
|
@@ -283,32 +281,32 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
283 |
echo '</table>';
|
284 |
|
285 |
echo '<p class="section-description">';
|
286 |
-
esc_html_e( 'Determines the total width and height of the chart.',
|
287 |
echo '</p>';
|
288 |
echo '</div>';
|
289 |
|
290 |
echo '<div class="section-delimiter"></div>';
|
291 |
|
292 |
-
self::_renderSectionDescription( esc_html__( 'Configure the background color for the main area of the chart and the chart border width and color.',
|
293 |
|
294 |
self::_renderTextItem(
|
295 |
-
esc_html__( 'Stroke Width',
|
296 |
'backgroundColor[strokeWidth]',
|
297 |
isset( $this->backgroundColor['strokeWidth'] ) ? $this->backgroundColor['strokeWidth'] : null,
|
298 |
-
esc_html__( 'The chart border width in pixels.',
|
299 |
'0'
|
300 |
);
|
301 |
|
302 |
self::_renderColorPickerItem(
|
303 |
-
esc_html__( 'Stroke Color',
|
304 |
'backgroundColor[stroke]',
|
305 |
-
!empty( $this->backgroundColor['stroke'] ) ? $this->backgroundColor['stroke'] : null,
|
306 |
'#666'
|
307 |
);
|
308 |
|
309 |
-
$background_color = !empty( $this->backgroundColor['fill'] ) ? $this->backgroundColor['fill'] : null;
|
310 |
self::_renderColorPickerItem(
|
311 |
-
esc_html__( 'Background Color',
|
312 |
'backgroundColor[fill]',
|
313 |
$background_color,
|
314 |
'#fff'
|
@@ -317,51 +315,51 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
317 |
echo '<div class="section-item">';
|
318 |
echo '<label>';
|
319 |
echo '<input type="checkbox" class="control-checkbox" name="backgroundColor[fill]" value="transparent"', checked( $background_color, 'transparent', false ), '> ';
|
320 |
-
esc_html_e( 'Transparent background' );
|
321 |
echo '</label>';
|
322 |
echo '</div>';
|
323 |
self::_renderSectionEnd();
|
324 |
|
325 |
-
self::_renderSectionStart( esc_html__( 'Chart Area',
|
326 |
-
self::_renderSectionDescription( esc_html__( 'Configure the placement and size of the chart area (where the chart itself is drawn, excluding axis and legends). Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.',
|
327 |
|
328 |
echo '<div class="section-item">';
|
329 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
330 |
-
echo '<b>', esc_html__( 'Left And Top Margins',
|
331 |
|
332 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
333 |
echo '<tr>';
|
334 |
echo '<td class="section-table-column">';
|
335 |
-
echo '<input type="text" name="chartArea[left]" class="control-text" value="',
|
336 |
echo '</td>';
|
337 |
echo '<td class="section-table-column">';
|
338 |
-
echo '<input type="text" name="chartArea[top]" class="control-text" value="',
|
339 |
echo '</td>';
|
340 |
echo '</tr>';
|
341 |
echo '</table>';
|
342 |
|
343 |
echo '<p class="section-description">';
|
344 |
-
esc_html_e( 'Determines how far to draw the chart from the left and top borders.',
|
345 |
echo '</p>';
|
346 |
echo '</div>';
|
347 |
|
348 |
echo '<div class="section-item">';
|
349 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
350 |
-
echo '<b>', esc_html__( 'Width And Height Of Chart Area',
|
351 |
|
352 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
353 |
echo '<tr>';
|
354 |
echo '<td class="section-table-column">';
|
355 |
-
echo '<input type="text" name="chartArea[width]" class="control-text" value="', !empty( $this->chartArea['width'] ) ? esc_attr( $this->chartArea['width'] ) : '', '" placeholder="60%">';
|
356 |
echo '</td>';
|
357 |
echo '<td class="section-table-column">';
|
358 |
-
echo '<input type="text" name="chartArea[height]" class="control-text" value="', !empty( $this->chartArea['height'] ) ? esc_attr( $this->chartArea['height'] ) : '', '" placeholder="60%">';
|
359 |
echo '</td>';
|
360 |
echo '</tr>';
|
361 |
echo '</table>';
|
362 |
|
363 |
echo '<p class="section-description">';
|
364 |
-
esc_html_e( 'Determines the width and hight of the chart area.',
|
365 |
echo '</p>';
|
366 |
echo '</div>';
|
367 |
self::_renderSectionEnd();
|
@@ -378,7 +376,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
378 |
* @param string $title The title of the select item.
|
379 |
* @param string $name The name of the select item.
|
380 |
* @param string $value The actual value of the select item.
|
381 |
-
* @param array
|
382 |
* @param string $desc The description of the select item.
|
383 |
*/
|
384 |
protected static function _renderSelectItem( $title, $name, $value, array $options, $desc ) {
|
@@ -386,11 +384,11 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
386 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
387 |
echo '<b>', $title, '</b>';
|
388 |
echo '<select class="control-select" name="', $name, '">';
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
echo '</select>';
|
395 |
echo '<p class="section-description">', $desc, '</p>';
|
396 |
echo '</div>';
|
@@ -412,7 +410,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
412 |
echo '<div class="section-item">';
|
413 |
echo '<b>', $title, '</b>';
|
414 |
echo '<div>';
|
415 |
-
echo '<input type="text" class="color-picker-hex" name="', $name, '" maxlength="7" placeholder="', esc_attr__( 'Hex Value',
|
416 |
echo '</div>';
|
417 |
echo '</div>';
|
418 |
}
|
@@ -474,14 +472,14 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
474 |
*
|
475 |
* @static
|
476 |
* @access protected
|
477 |
-
* @param string
|
478 |
* @param boolean $open Determines whether the section items block has to be expanded or collapsed.
|
479 |
*/
|
480 |
protected static function _renderSectionStart( $title = false, $open = true ) {
|
481 |
echo '<li>';
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
echo '<div class="section-items', $open ? ' open' : '', '">';
|
486 |
}
|
487 |
|
@@ -522,13 +520,13 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
522 |
* @param int $index The index of the series.
|
523 |
*/
|
524 |
protected function _renderFormatField( $index = 0 ) {
|
525 |
-
switch ( $this->__series[$index + 1]['type'] ) {
|
526 |
case 'number':
|
527 |
self::_renderTextItem(
|
528 |
-
esc_html__( 'Number Format',
|
529 |
'series[' . $index . '][format]',
|
530 |
-
isset( $this->series[$index]['format'] ) ? $this->series[$index]['format'] : '',
|
531 |
-
sprintf( esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %sICU pattern set%s. Use something like #,### to get 1,234 as output, or $# to add dollar sign before digits. Pay attention that if you use
|
532 |
'#,###.##'
|
533 |
);
|
534 |
break;
|
@@ -536,23 +534,26 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
|
|
536 |
case 'datetime':
|
537 |
case 'timeofday':
|
538 |
self::_renderTextItem(
|
539 |
-
esc_html__( 'Date Format',
|
540 |
'series[' . $index . '][format]',
|
541 |
-
isset( $this->series[$index]['format'] ) ? $this->series[$index]['format'] : '',
|
542 |
-
sprintf( esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %sICU date and time format%s.',
|
543 |
'eeee, dd LLLL yyyy'
|
544 |
);
|
545 |
break;
|
546 |
}
|
547 |
}
|
548 |
|
|
|
|
|
|
|
549 |
protected static function _renderCheckboxItem( $title, $name, $value, $default, $desc ) {
|
550 |
echo '<div class="section-item">';
|
551 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
552 |
echo '<b>', $title, '</b>';
|
553 |
-
echo '<input type="checkbox" class="control-check" value="', $default, '" name="', $name, '" ', ($value == $default ?
|
554 |
echo '<p class="section-description">', $desc, '</p>';
|
555 |
echo '</div>';
|
556 |
}
|
557 |
|
558 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Base class for all chart sidebar groups.
|
24 |
*
|
96 |
|
97 |
$this->_legendPositions = array(
|
98 |
'' => '',
|
99 |
+
'left' => esc_html__( 'Left of the chart', 'visualizer' ),
|
100 |
+
'right' => esc_html__( 'Right of the chart', 'visualizer' ),
|
101 |
+
'top' => esc_html__( 'Above the chart', 'visualizer' ),
|
102 |
+
'bottom' => esc_html__( 'Below the chart', 'visualizer' ),
|
103 |
+
'in' => esc_html__( 'Inside the chart', 'visualizer' ),
|
104 |
+
'none' => esc_html__( 'Omit the legend', 'visualizer' ),
|
105 |
);
|
106 |
|
107 |
$this->_alignments = array(
|
108 |
'' => '',
|
109 |
+
'start' => esc_html__( 'Aligned to the start of the allocated area', 'visualizer' ),
|
110 |
+
'center' => esc_html__( 'Centered in the allocated area', 'visualizer' ),
|
111 |
+
'end' => esc_html__( 'Aligned to the end of the allocated area', 'visualizer' ),
|
112 |
);
|
113 |
|
114 |
$this->_yesno = array(
|
115 |
'' => '',
|
116 |
+
'1' => esc_html__( 'Yes', 'visualizer' ),
|
117 |
+
'0' => esc_html__( 'No', 'visualizer' ),
|
118 |
);
|
119 |
}
|
120 |
|
127 |
*/
|
128 |
protected function _renderChartTitleSettings() {
|
129 |
self::_renderTextItem(
|
130 |
+
esc_html__( 'Chart Title', 'visualizer' ),
|
131 |
'title',
|
132 |
$this->title,
|
133 |
+
esc_html__( 'Text to display above the chart.', 'visualizer' )
|
134 |
);
|
135 |
|
136 |
self::_renderColorPickerItem(
|
137 |
+
esc_html__( 'Chart Title Color', 'visualizer' ),
|
138 |
'titleTextStyle[color]',
|
139 |
isset( $this->titleTextStyle['color'] ) ? $this->titleTextStyle['color'] : null,
|
140 |
'#000'
|
149 |
* @access protected
|
150 |
*/
|
151 |
protected function _renderGeneralSettings() {
|
152 |
+
self::_renderGroupStart( esc_html__( 'General Settings', 'visualizer' ) );
|
153 |
self::_renderSectionStart();
|
154 |
+
self::_renderSectionDescription( esc_html__( 'Configure title, font styles, tooltip, legend and else settings for the chart.', 'visualizer' ) );
|
155 |
self::_renderSectionEnd();
|
156 |
|
157 |
+
self::_renderSectionStart( esc_html__( 'Title', 'visualizer' ), false );
|
158 |
$this->_renderChartTitleSettings();
|
159 |
self::_renderSectionEnd();
|
160 |
|
161 |
+
self::_renderSectionStart( esc_html__( 'Font Styles', 'visualizer' ), false );
|
162 |
echo '<div class="section-item">';
|
163 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
164 |
+
echo '<b>', esc_html__( 'Family And Size', 'visualizer' ), '</b>';
|
165 |
|
166 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
167 |
echo '<tr>';
|
168 |
echo '<td class="section-table-column">';
|
169 |
echo '<select name="fontName" class="control-select">';
|
170 |
echo '<option></option>';
|
171 |
+
foreach ( self::$_fontFamilies as $font => $label ) {
|
172 |
+
echo '<option value="', $font, '"', selected( $font, $this->fontName, false ), '>';
|
173 |
+
echo $label;
|
174 |
+
echo '</option>';
|
175 |
+
}
|
176 |
echo '</select>';
|
177 |
echo '</td>';
|
178 |
echo '<td class="section-table-column">';
|
179 |
echo '<select name="fontSize" class="control-select">';
|
180 |
echo '<option></option>';
|
181 |
+
for ( $i = 7; $i <= 20; $i++ ) {
|
182 |
+
echo '<option value="', $i, '"', selected( $i, $this->fontSize, false ), '>', $i, '</option>';
|
183 |
+
}
|
184 |
echo '</select>';
|
185 |
echo '</td>';
|
186 |
echo '</tr>';
|
187 |
echo '</table>';
|
188 |
|
189 |
echo '<p class="section-description">';
|
190 |
+
esc_html_e( 'The default font family and size for all text in the chart.', 'visualizer' );
|
191 |
echo '</p>';
|
192 |
echo '</div>';
|
193 |
self::_renderSectionEnd();
|
194 |
|
195 |
+
self::_renderSectionStart( esc_html__( 'Legend', 'visualizer' ), false );
|
196 |
self::_renderSelectItem(
|
197 |
+
esc_html__( 'Position', 'visualizer' ),
|
198 |
'legend[position]',
|
199 |
$this->legend['position'],
|
200 |
$this->_legendPositions,
|
201 |
+
esc_html__( 'Determines where to place the legend, compared to the chart area.', 'visualizer' )
|
202 |
);
|
203 |
|
204 |
self::_renderSelectItem(
|
205 |
+
esc_html__( 'Alignment', 'visualizer' ),
|
206 |
'legend[alignment]',
|
207 |
$this->legend['alignment'],
|
208 |
$this->_alignments,
|
209 |
+
esc_html__( 'Determines the alignment of the legend.', 'visualizer' )
|
210 |
);
|
211 |
|
212 |
self::_renderColorPickerItem(
|
213 |
+
esc_html__( 'Font Color', 'visualizer' ),
|
214 |
'legend[textStyle][color]',
|
215 |
isset( $this->legend['textStyle']['color'] ) ? $this->legend['textStyle']['color'] : null,
|
216 |
'#000'
|
217 |
);
|
218 |
self::_renderSectionEnd();
|
219 |
|
220 |
+
self::_renderSectionStart( esc_html__( 'Tooltip', 'visualizer' ), false );
|
221 |
$this->_renderTooltipSettigns();
|
222 |
self::_renderSectionEnd();
|
223 |
self::_renderGroupEnd();
|
232 |
*/
|
233 |
protected function _renderTooltipSettigns() {
|
234 |
self::_renderSelectItem(
|
235 |
+
esc_html__( 'Trigger', 'visualizer' ),
|
236 |
'tooltip[trigger]',
|
237 |
isset( $this->tooltip['trigger'] ) ? $this->tooltip['trigger'] : null,
|
238 |
array(
|
239 |
'' => '',
|
240 |
+
'focus' => esc_html__( 'The tooltip will be displayed when the user hovers over an element', 'visualizer' ),
|
241 |
+
'selection' => esc_html__( 'The tooltip will be displayed when the user selects an element', 'visualizer' ),
|
242 |
+
'none' => esc_html__( 'The tooltip will not be displayed', 'visualizer' ),
|
243 |
),
|
244 |
+
esc_html__( 'Determines the user interaction that causes the tooltip to be displayed.', 'visualizer' )
|
245 |
);
|
246 |
|
247 |
self::_renderSelectItem(
|
248 |
+
esc_html__( 'Show Color Code', 'visualizer' ),
|
249 |
'tooltip[showColorCode]',
|
250 |
isset( $this->tooltip['showColorCode'] ) ? $this->tooltip['showColorCode'] : null,
|
251 |
$this->_yesno,
|
252 |
+
esc_html__( 'If set to yes, will show colored squares next to the slice information in the tooltip.', 'visualizer' )
|
253 |
);
|
254 |
}
|
255 |
|
261 |
* @access protected
|
262 |
*/
|
263 |
protected function _renderViewSettings() {
|
264 |
+
self::_renderGroupStart( esc_html__( 'Layout & Chart Area', 'visualizer' ) );
|
265 |
+
self::_renderSectionStart( esc_html__( 'Layout', 'visualizer' ), false );
|
266 |
+
self::_renderSectionDescription( esc_html__( 'Configure the total size of the chart. Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.', 'visualizer' ) );
|
267 |
|
268 |
echo '<div class="section-item">';
|
269 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
270 |
+
echo '<b>', esc_html__( 'Width And Height Of Chart', 'visualizer' ), '</b>';
|
271 |
|
272 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
273 |
echo '<tr>';
|
281 |
echo '</table>';
|
282 |
|
283 |
echo '<p class="section-description">';
|
284 |
+
esc_html_e( 'Determines the total width and height of the chart.', 'visualizer' );
|
285 |
echo '</p>';
|
286 |
echo '</div>';
|
287 |
|
288 |
echo '<div class="section-delimiter"></div>';
|
289 |
|
290 |
+
self::_renderSectionDescription( esc_html__( 'Configure the background color for the main area of the chart and the chart border width and color.', 'visualizer' ) );
|
291 |
|
292 |
self::_renderTextItem(
|
293 |
+
esc_html__( 'Stroke Width', 'visualizer' ),
|
294 |
'backgroundColor[strokeWidth]',
|
295 |
isset( $this->backgroundColor['strokeWidth'] ) ? $this->backgroundColor['strokeWidth'] : null,
|
296 |
+
esc_html__( 'The chart border width in pixels.', 'visualizer' ),
|
297 |
'0'
|
298 |
);
|
299 |
|
300 |
self::_renderColorPickerItem(
|
301 |
+
esc_html__( 'Stroke Color', 'visualizer' ),
|
302 |
'backgroundColor[stroke]',
|
303 |
+
! empty( $this->backgroundColor['stroke'] ) ? $this->backgroundColor['stroke'] : null,
|
304 |
'#666'
|
305 |
);
|
306 |
|
307 |
+
$background_color = ! empty( $this->backgroundColor['fill'] ) ? $this->backgroundColor['fill'] : null;
|
308 |
self::_renderColorPickerItem(
|
309 |
+
esc_html__( 'Background Color', 'visualizer' ),
|
310 |
'backgroundColor[fill]',
|
311 |
$background_color,
|
312 |
'#fff'
|
315 |
echo '<div class="section-item">';
|
316 |
echo '<label>';
|
317 |
echo '<input type="checkbox" class="control-checkbox" name="backgroundColor[fill]" value="transparent"', checked( $background_color, 'transparent', false ), '> ';
|
318 |
+
esc_html_e( 'Transparent background', 'visualizer' );
|
319 |
echo '</label>';
|
320 |
echo '</div>';
|
321 |
self::_renderSectionEnd();
|
322 |
|
323 |
+
self::_renderSectionStart( esc_html__( 'Chart Area', 'visualizer' ), false );
|
324 |
+
self::_renderSectionDescription( esc_html__( 'Configure the placement and size of the chart area (where the chart itself is drawn, excluding axis and legends). Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.', 'visualizer' ) );
|
325 |
|
326 |
echo '<div class="section-item">';
|
327 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
328 |
+
echo '<b>', esc_html__( 'Left And Top Margins', 'visualizer' ), '</b>';
|
329 |
|
330 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
331 |
echo '<tr>';
|
332 |
echo '<td class="section-table-column">';
|
333 |
+
echo '<input type="text" name="chartArea[left]" class="control-text" value="', $this->chartArea['left'] || $this->chartArea['left'] === '0' ? esc_attr( $this->chartArea['left'] ) : '', '" placeholder="20%">';
|
334 |
echo '</td>';
|
335 |
echo '<td class="section-table-column">';
|
336 |
+
echo '<input type="text" name="chartArea[top]" class="control-text" value="', $this->chartArea['top'] || $this->chartArea['top'] === '0' ? esc_attr( $this->chartArea['top'] ) : '', '" placeholder="20%">';
|
337 |
echo '</td>';
|
338 |
echo '</tr>';
|
339 |
echo '</table>';
|
340 |
|
341 |
echo '<p class="section-description">';
|
342 |
+
esc_html_e( 'Determines how far to draw the chart from the left and top borders.', 'visualizer' );
|
343 |
echo '</p>';
|
344 |
echo '</div>';
|
345 |
|
346 |
echo '<div class="section-item">';
|
347 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
348 |
+
echo '<b>', esc_html__( 'Width And Height Of Chart Area', 'visualizer' ), '</b>';
|
349 |
|
350 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
351 |
echo '<tr>';
|
352 |
echo '<td class="section-table-column">';
|
353 |
+
echo '<input type="text" name="chartArea[width]" class="control-text" value="', ! empty( $this->chartArea['width'] ) ? esc_attr( $this->chartArea['width'] ) : '', '" placeholder="60%">';
|
354 |
echo '</td>';
|
355 |
echo '<td class="section-table-column">';
|
356 |
+
echo '<input type="text" name="chartArea[height]" class="control-text" value="', ! empty( $this->chartArea['height'] ) ? esc_attr( $this->chartArea['height'] ) : '', '" placeholder="60%">';
|
357 |
echo '</td>';
|
358 |
echo '</tr>';
|
359 |
echo '</table>';
|
360 |
|
361 |
echo '<p class="section-description">';
|
362 |
+
esc_html_e( 'Determines the width and hight of the chart area.', 'visualizer' );
|
363 |
echo '</p>';
|
364 |
echo '</div>';
|
365 |
self::_renderSectionEnd();
|
376 |
* @param string $title The title of the select item.
|
377 |
* @param string $name The name of the select item.
|
378 |
* @param string $value The actual value of the select item.
|
379 |
+
* @param array $options The array of select options.
|
380 |
* @param string $desc The description of the select item.
|
381 |
*/
|
382 |
protected static function _renderSelectItem( $title, $name, $value, array $options, $desc ) {
|
384 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
385 |
echo '<b>', $title, '</b>';
|
386 |
echo '<select class="control-select" name="', $name, '">';
|
387 |
+
foreach ( $options as $key => $label ) {
|
388 |
+
echo '<option value="', $key, '"', selected( $key, $value, false ), '>';
|
389 |
+
echo $label;
|
390 |
+
echo '</option>';
|
391 |
+
}
|
392 |
echo '</select>';
|
393 |
echo '<p class="section-description">', $desc, '</p>';
|
394 |
echo '</div>';
|
410 |
echo '<div class="section-item">';
|
411 |
echo '<b>', $title, '</b>';
|
412 |
echo '<div>';
|
413 |
+
echo '<input type="text" class="color-picker-hex" name="', $name, '" maxlength="7" placeholder="', esc_attr__( 'Hex Value', 'visualizer' ), '" value="', is_null( $value ) ? $default : esc_attr( $value ), '" data-default-color="', $default, '">';
|
414 |
echo '</div>';
|
415 |
echo '</div>';
|
416 |
}
|
472 |
*
|
473 |
* @static
|
474 |
* @access protected
|
475 |
+
* @param string $title The title of this section. If the title is empty, no title will be displayed.
|
476 |
* @param boolean $open Determines whether the section items block has to be expanded or collapsed.
|
477 |
*/
|
478 |
protected static function _renderSectionStart( $title = false, $open = true ) {
|
479 |
echo '<li>';
|
480 |
+
if ( ! empty( $title ) ) {
|
481 |
+
echo '<span class="section-title">', $title, '</span>';
|
482 |
+
}
|
483 |
echo '<div class="section-items', $open ? ' open' : '', '">';
|
484 |
}
|
485 |
|
520 |
* @param int $index The index of the series.
|
521 |
*/
|
522 |
protected function _renderFormatField( $index = 0 ) {
|
523 |
+
switch ( $this->__series[ $index + 1 ]['type'] ) {
|
524 |
case 'number':
|
525 |
self::_renderTextItem(
|
526 |
+
esc_html__( 'Number Format', 'visualizer' ),
|
527 |
'series[' . $index . '][format]',
|
528 |
+
isset( $this->series[ $index ]['format'] ) ? $this->series[ $index ]['format'] : '',
|
529 |
+
sprintf( esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sICU pattern set%1$s. Use something like #,### to get 1,234 as output, or $# to add dollar sign before digits. Pay attention that if you use #%3$% percentage format then your values will be multiplied by 100.', 'visualizer' ), '<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">', '</a>' ),
|
530 |
'#,###.##'
|
531 |
);
|
532 |
break;
|
534 |
case 'datetime':
|
535 |
case 'timeofday':
|
536 |
self::_renderTextItem(
|
537 |
+
esc_html__( 'Date Format', 'visualizer' ),
|
538 |
'series[' . $index . '][format]',
|
539 |
+
isset( $this->series[ $index ]['format'] ) ? $this->series[ $index ]['format'] : '',
|
540 |
+
sprintf( esc_html__( 'Enter custom format pattern to apply to this series value, similar to the %1$sICU date and time format%1$s.', 'visualizer' ), '<a href="http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax" target="_blank">', '</a>' ),
|
541 |
'eeee, dd LLLL yyyy'
|
542 |
);
|
543 |
break;
|
544 |
}
|
545 |
}
|
546 |
|
547 |
+
/**
|
548 |
+
* Render a checkbox item
|
549 |
+
*/
|
550 |
protected static function _renderCheckboxItem( $title, $name, $value, $default, $desc ) {
|
551 |
echo '<div class="section-item">';
|
552 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
553 |
echo '<b>', $title, '</b>';
|
554 |
+
echo '<input type="checkbox" class="control-check" value="', $default, '" name="', $name, '" ', ($value == $default ? 'checked' : ''), '>';
|
555 |
echo '<p class="section-description">', $desc, '</p>';
|
556 |
echo '</div>';
|
557 |
}
|
558 |
|
559 |
+
}
|
classes/Visualizer/Render/Sidebar/Columnar.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Base class for sidebar settings of columnar based charts.
|
26 |
*
|
@@ -41,37 +39,37 @@ abstract class Visualizer_Render_Sidebar_Columnar extends Visualizer_Render_Side
|
|
41 |
* @access protected
|
42 |
*/
|
43 |
protected function _renderColumnarSettings() {
|
44 |
-
self::_renderGroupStart( esc_html__( 'Bars Settings',
|
45 |
self::_renderSectionStart();
|
46 |
self::_renderSelectItem(
|
47 |
-
esc_html__( 'Focus Target',
|
48 |
'focusTarget',
|
49 |
$this->focusTarget,
|
50 |
array(
|
51 |
'' => '',
|
52 |
-
'datum' => esc_html__( 'Focus on a single data point.',
|
53 |
-
'category' => esc_html__( 'Focus on a grouping of all data points along the major axis.',
|
54 |
),
|
55 |
-
esc_html__( 'The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click.',
|
56 |
);
|
57 |
|
58 |
echo '<div class="section-delimiter"></div>';
|
59 |
|
60 |
self::_renderSelectItem(
|
61 |
-
esc_html__( 'Is Stacked',
|
62 |
'isStacked',
|
63 |
$this->isStacked,
|
64 |
$this->_yesno,
|
65 |
-
esc_html__( 'If set to yes, series elements are stacked.',
|
66 |
);
|
67 |
|
68 |
echo '<div class="section-delimiter"></div>';
|
69 |
|
70 |
self::_renderTextItem(
|
71 |
-
esc_html__( 'Bars Opacity',
|
72 |
'dataOpacity',
|
73 |
$this->dataOpacity,
|
74 |
-
esc_html__( 'Bars transparency, with 1.0 being completely opaque and 0.0 fully transparent.',
|
75 |
'1.0'
|
76 |
);
|
77 |
self::_renderSectionEnd();
|
@@ -87,14 +85,14 @@ abstract class Visualizer_Render_Sidebar_Columnar extends Visualizer_Render_Side
|
|
87 |
* @access protected
|
88 |
*/
|
89 |
protected function _renderVerticalAxisGeneralSettings() {
|
90 |
-
|
91 |
self::_renderColorPickerItem(
|
92 |
-
esc_html__( 'Axis Text Color',
|
93 |
'hAxis[textStyle]',
|
94 |
isset( $this->hAxis['textStyle'] ) ? $this->hAxis['textStyle'] : null,
|
95 |
'#000'
|
96 |
);
|
97 |
-
|
98 |
|
99 |
/**
|
100 |
* Renders general settings block for vertical axis settings.
|
@@ -104,13 +102,13 @@ abstract class Visualizer_Render_Sidebar_Columnar extends Visualizer_Render_Side
|
|
104 |
* @access protected
|
105 |
*/
|
106 |
protected function _renderHorizontalAxisGeneralSettings() {
|
107 |
-
|
108 |
self::_renderColorPickerItem(
|
109 |
-
esc_html__( 'Axis Text Color',
|
110 |
'vAxis[textStyle]',
|
111 |
isset( $this->vAxis['textStyle'] ) ? $this->vAxis['textStyle'] : null,
|
112 |
'#000'
|
113 |
);
|
114 |
-
|
115 |
|
116 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Base class for sidebar settings of columnar based charts.
|
24 |
*
|
39 |
* @access protected
|
40 |
*/
|
41 |
protected function _renderColumnarSettings() {
|
42 |
+
self::_renderGroupStart( esc_html__( 'Bars Settings', 'visualizer' ) );
|
43 |
self::_renderSectionStart();
|
44 |
self::_renderSelectItem(
|
45 |
+
esc_html__( 'Focus Target', 'visualizer' ),
|
46 |
'focusTarget',
|
47 |
$this->focusTarget,
|
48 |
array(
|
49 |
'' => '',
|
50 |
+
'datum' => esc_html__( 'Focus on a single data point.', 'visualizer' ),
|
51 |
+
'category' => esc_html__( 'Focus on a grouping of all data points along the major axis.', 'visualizer' ),
|
52 |
),
|
53 |
+
esc_html__( 'The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click.', 'visualizer' )
|
54 |
);
|
55 |
|
56 |
echo '<div class="section-delimiter"></div>';
|
57 |
|
58 |
self::_renderSelectItem(
|
59 |
+
esc_html__( 'Is Stacked', 'visualizer' ),
|
60 |
'isStacked',
|
61 |
$this->isStacked,
|
62 |
$this->_yesno,
|
63 |
+
esc_html__( 'If set to yes, series elements are stacked.', 'visualizer' )
|
64 |
);
|
65 |
|
66 |
echo '<div class="section-delimiter"></div>';
|
67 |
|
68 |
self::_renderTextItem(
|
69 |
+
esc_html__( 'Bars Opacity', 'visualizer' ),
|
70 |
'dataOpacity',
|
71 |
$this->dataOpacity,
|
72 |
+
esc_html__( 'Bars transparency, with 1.0 being completely opaque and 0.0 fully transparent.', 'visualizer' ),
|
73 |
'1.0'
|
74 |
);
|
75 |
self::_renderSectionEnd();
|
85 |
* @access protected
|
86 |
*/
|
87 |
protected function _renderVerticalAxisGeneralSettings() {
|
88 |
+
parent::_renderVerticalAxisGeneralSettings();
|
89 |
self::_renderColorPickerItem(
|
90 |
+
esc_html__( 'Axis Text Color', 'visualizer' ),
|
91 |
'hAxis[textStyle]',
|
92 |
isset( $this->hAxis['textStyle'] ) ? $this->hAxis['textStyle'] : null,
|
93 |
'#000'
|
94 |
);
|
95 |
+
}
|
96 |
|
97 |
/**
|
98 |
* Renders general settings block for vertical axis settings.
|
102 |
* @access protected
|
103 |
*/
|
104 |
protected function _renderHorizontalAxisGeneralSettings() {
|
105 |
+
parent::_renderHorizontalAxisGeneralSettings();
|
106 |
self::_renderColorPickerItem(
|
107 |
+
esc_html__( 'Axis Text Color', 'visualizer' ),
|
108 |
'vAxis[textStyle]',
|
109 |
isset( $this->vAxis['textStyle'] ) ? $this->vAxis['textStyle'] : null,
|
110 |
'#000'
|
111 |
);
|
112 |
+
}
|
113 |
|
114 |
+
}
|
classes/Visualizer/Render/Sidebar/Graph.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Base class for sidebar settigns of graph based charts.
|
26 |
*
|
@@ -79,9 +77,9 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
79 |
|
80 |
$this->_positions = array(
|
81 |
'' => '',
|
82 |
-
'in' => esc_html__( 'Inside the chart',
|
83 |
-
'out' => esc_html__( 'Outside the chart',
|
84 |
-
'none' => esc_html__( 'None',
|
85 |
);
|
86 |
}
|
87 |
|
@@ -94,22 +92,22 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
94 |
*/
|
95 |
protected function _renderChartTitleSettings() {
|
96 |
self::_renderTextItem(
|
97 |
-
esc_html__( 'Chart Title',
|
98 |
'title',
|
99 |
$this->title,
|
100 |
-
esc_html__( 'Text to display above the chart.',
|
101 |
);
|
102 |
|
103 |
self::_renderSelectItem(
|
104 |
-
esc_html__( 'Chart Title Position',
|
105 |
'titlePosition',
|
106 |
$this->titlePosition,
|
107 |
$this->_positions,
|
108 |
-
esc_html__( 'Where to place the chart title, compared to the chart area.',
|
109 |
);
|
110 |
|
111 |
self::_renderColorPickerItem(
|
112 |
-
esc_html__( 'Chart Title Color',
|
113 |
'titleTextStyle[color]',
|
114 |
isset( $this->titleTextStyle['color'] ) ? $this->titleTextStyle['color'] : null,
|
115 |
'#000'
|
@@ -118,11 +116,11 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
118 |
echo '<div class="section-delimiter"></div>';
|
119 |
|
120 |
self::_renderSelectItem(
|
121 |
-
esc_html__( 'Axes Titles Position',
|
122 |
'axisTitlesPosition',
|
123 |
$this->axisTitlesPosition,
|
124 |
$this->_positions,
|
125 |
-
esc_html__( 'Determines where to place the axis titles, compared to the chart area.',
|
126 |
);
|
127 |
}
|
128 |
|
@@ -135,34 +133,34 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
135 |
*/
|
136 |
protected function _renderHorizontalAxisGeneralSettings() {
|
137 |
self::_renderTextItem(
|
138 |
-
esc_html__( 'Axis Title',
|
139 |
'hAxis[title]',
|
140 |
isset( $this->hAxis['title'] ) ? $this->hAxis['title'] : '',
|
141 |
-
esc_html__( 'The title of the horizontal axis.',
|
142 |
);
|
143 |
|
144 |
self::_renderSelectItem(
|
145 |
-
esc_html__( 'Text Position',
|
146 |
'vAxis[textPosition]',
|
147 |
isset( $this->vAxis['textPosition'] ) ? $this->vAxis['textPosition'] : '',
|
148 |
$this->_positions,
|
149 |
-
esc_html__( 'Position of the horizontal axis text, relative to the chart area.',
|
150 |
);
|
151 |
|
152 |
self::_renderSelectItem(
|
153 |
-
esc_html__( 'Direction',
|
154 |
'hAxis[direction]',
|
155 |
isset( $this->hAxis['direction'] ) ? $this->hAxis['direction'] : '',
|
156 |
array(
|
157 |
'' => '',
|
158 |
-
'1' => esc_html__( 'Identical Direction',
|
159 |
-
'-1' => esc_html__( 'Reverse Direction',
|
160 |
),
|
161 |
-
esc_html__( 'The direction in which the values along the horizontal axis grow.',
|
162 |
);
|
163 |
|
164 |
self::_renderColorPickerItem(
|
165 |
-
esc_html__( 'Base Line Color',
|
166 |
'vAxis[baselineColor]',
|
167 |
isset( $this->vAxis['baselineColor'] ) ? $this->vAxis['baselineColor'] : null,
|
168 |
'#000'
|
@@ -177,64 +175,64 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
177 |
* @access protected
|
178 |
*/
|
179 |
protected function _renderHorizontalAxisSettings() {
|
180 |
-
self::_renderGroupStart( esc_html__( 'Horizontal Axis Settings',
|
181 |
-
self::_renderSectionStart( esc_html__( 'General Settings',
|
182 |
$this->_renderHorizontalAxisGeneralSettings();
|
183 |
self::_renderSectionEnd();
|
184 |
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
self::_renderSectionStart( esc_html__( 'Minor Grid Lines', Visualizer_Plugin::NAME ), false );
|
204 |
-
self::_renderTextItem(
|
205 |
-
esc_html__( 'Count', Visualizer_Plugin::NAME ),
|
206 |
-
'vAxis[minorGridlines][count]',
|
207 |
-
isset( $this->vAxis['minorGridlines']['count'] ) ? $this->vAxis['minorGridlines']['count'] : '',
|
208 |
-
esc_html__( 'The number of horizontal minor gridlines between two regular gridlines.', Visualizer_Plugin::NAME ),
|
209 |
-
0
|
210 |
-
);
|
211 |
-
|
212 |
-
self::_renderColorPickerItem(
|
213 |
-
esc_html__( 'Color', Visualizer_Plugin::NAME ),
|
214 |
-
'vAxis[minorGridlines][color]',
|
215 |
-
isset( $this->vAxis['minorGridlines']['color'] ) ? $this->vAxis['minorGridlines']['color'] : null,
|
216 |
-
null
|
217 |
-
);
|
218 |
-
self::_renderSectionEnd();
|
219 |
-
}
|
220 |
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
self::_renderGroupEnd();
|
239 |
}
|
240 |
|
@@ -247,34 +245,34 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
247 |
*/
|
248 |
protected function _renderVerticalAxisGeneralSettings() {
|
249 |
self::_renderTextItem(
|
250 |
-
esc_html__( 'Axis Title',
|
251 |
'vAxis[title]',
|
252 |
isset( $this->vAxis['title'] ) ? $this->vAxis['title'] : '',
|
253 |
-
esc_html__( 'The title of the vertical axis.',
|
254 |
);
|
255 |
|
256 |
self::_renderSelectItem(
|
257 |
-
esc_html__( 'Text Position',
|
258 |
'hAxis[textPosition]',
|
259 |
isset( $this->hAxis['textPosition'] ) ? $this->hAxis['textPosition'] : '',
|
260 |
$this->_positions,
|
261 |
-
esc_html__( 'Position of the vertical axis text, relative to the chart area.',
|
262 |
);
|
263 |
|
264 |
self::_renderSelectItem(
|
265 |
-
esc_html__( 'Direction',
|
266 |
'vAxis[direction]',
|
267 |
isset( $this->vAxis['direction'] ) ? $this->vAxis['direction'] : '',
|
268 |
array(
|
269 |
'' => '',
|
270 |
-
'1' => esc_html__( 'Identical Direction',
|
271 |
-
'-1' => esc_html__( 'Reverse Direction',
|
272 |
),
|
273 |
-
esc_html__( 'The direction in which the values along the vertical axis grow.',
|
274 |
);
|
275 |
|
276 |
self::_renderColorPickerItem(
|
277 |
-
esc_html__( 'Base Line Color',
|
278 |
'hAxis[baselineColor]',
|
279 |
isset( $this->hAxis['baselineColor'] ) ? $this->hAxis['baselineColor'] : null,
|
280 |
'#000'
|
@@ -289,64 +287,64 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
289 |
* @access protected
|
290 |
*/
|
291 |
protected function _renderVerticalAxisSettings() {
|
292 |
-
self::_renderGroupStart( esc_html__( 'Vertical Axis Settings',
|
293 |
-
self::_renderSectionStart( esc_html__( 'General Settings',
|
294 |
$this->_renderVerticalAxisGeneralSettings();
|
295 |
self::_renderSectionEnd();
|
296 |
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
self::_renderSectionStart( esc_html__( 'Minor Grid Lines', Visualizer_Plugin::NAME ), false );
|
316 |
-
self::_renderTextItem(
|
317 |
-
esc_html__( 'Count', Visualizer_Plugin::NAME ),
|
318 |
-
'hAxis[minorGridlines][count]',
|
319 |
-
isset( $this->hAxis['minorGridlines']['count'] ) ? $this->hAxis['minorGridlines']['count'] : '',
|
320 |
-
esc_html__( 'The number of vertical minor gridlines between two regular gridlines.', Visualizer_Plugin::NAME ),
|
321 |
-
0
|
322 |
-
);
|
323 |
-
|
324 |
-
self::_renderColorPickerItem(
|
325 |
-
esc_html__( 'Color', Visualizer_Plugin::NAME ),
|
326 |
-
'hAxis[minorGridlines][color]',
|
327 |
-
isset( $this->hAxis['minorGridlines']['color'] ) ? $this->hAxis['minorGridlines']['color'] : null,
|
328 |
-
null
|
329 |
-
);
|
330 |
-
self::_renderSectionEnd();
|
331 |
-
}
|
332 |
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
self::_renderGroupEnd();
|
351 |
}
|
352 |
|
@@ -370,14 +368,14 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
370 |
* @access protected
|
371 |
*/
|
372 |
protected function _renderSeriesSettings() {
|
373 |
-
self::_renderGroupStart( esc_html__( 'Series Settings',
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
}
|
380 |
}
|
|
|
381 |
self::_renderGroupEnd();
|
382 |
}
|
383 |
|
@@ -391,23 +389,23 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
391 |
*/
|
392 |
protected function _renderSeries( $index ) {
|
393 |
self::_renderSelectItem(
|
394 |
-
esc_html__( 'Visible In Legend',
|
395 |
'series[' . $index . '][visibleInLegend]',
|
396 |
-
isset( $this->series[$index]['visibleInLegend'] ) ? $this->series[$index]['visibleInLegend'] : '',
|
397 |
array(
|
398 |
'' => '',
|
399 |
-
'0' => esc_html__( 'No',
|
400 |
-
'1' => esc_html__( 'Yes',
|
401 |
),
|
402 |
-
esc_html__( 'Determines whether the series has to be presented in the legend or not.',
|
403 |
);
|
404 |
|
405 |
$this->_renderFormatField( $index );
|
406 |
|
407 |
self::_renderColorPickerItem(
|
408 |
-
esc_html__( 'Color',
|
409 |
'series[' . $index . '][color]',
|
410 |
-
isset( $this->series[$index]['color'] ) ? $this->series[$index]['color'] : null,
|
411 |
null
|
412 |
);
|
413 |
}
|
@@ -421,19 +419,19 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
421 |
*/
|
422 |
protected function _renderHorizontalAxisFormatField() {
|
423 |
self::_renderTextItem(
|
424 |
-
esc_html__( 'Number Format',
|
425 |
'hAxis[format]',
|
426 |
isset( $this->hAxis['format'] ) ? $this->hAxis['format'] : '',
|
427 |
sprintf(
|
428 |
'%s<br><br>%s<br><br>%s',
|
429 |
-
esc_html__( 'Enter custom format pattern to apply to horizontal axis labels.',
|
430 |
sprintf(
|
431 |
-
esc_html__( 'For number axis labels, this is a subset of the decimal formatting %sICU pattern set%s. For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use
|
432 |
'<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">',
|
433 |
'</a>'
|
434 |
),
|
435 |
sprintf(
|
436 |
-
esc_html__( 'For date axis labels, this is a subset of the date formatting %sICU date and time format%s.',
|
437 |
'<a href="http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax" target="_blank">',
|
438 |
'</a>'
|
439 |
)
|
@@ -450,19 +448,19 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
450 |
*/
|
451 |
protected function _renderVerticalAxisFormatField() {
|
452 |
self::_renderTextItem(
|
453 |
-
esc_html__( 'Number Format',
|
454 |
'vAxis[format]',
|
455 |
isset( $this->vAxis['format'] ) ? $this->vAxis['format'] : '',
|
456 |
sprintf(
|
457 |
'%s<br><br>%s<br><br>%s',
|
458 |
-
esc_html__( 'Enter custom format pattern to apply to vertical axis labels.',
|
459 |
sprintf(
|
460 |
-
esc_html__( 'For number axis labels, this is a subset of the decimal formatting %sICU pattern set%s. For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use
|
461 |
'<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">',
|
462 |
'</a>'
|
463 |
),
|
464 |
sprintf(
|
465 |
-
esc_html__( 'For date axis labels, this is a subset of the date formatting %sICU date and time format%s.',
|
466 |
'<a href="http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax" target="_blank">',
|
467 |
'</a>'
|
468 |
)
|
@@ -470,4 +468,4 @@ abstract class Visualizer_Render_Sidebar_Graph extends Visualizer_Render_Sidebar
|
|
470 |
);
|
471 |
}
|
472 |
|
473 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Base class for sidebar settigns of graph based charts.
|
24 |
*
|
77 |
|
78 |
$this->_positions = array(
|
79 |
'' => '',
|
80 |
+
'in' => esc_html__( 'Inside the chart', 'visualizer' ),
|
81 |
+
'out' => esc_html__( 'Outside the chart', 'visualizer' ),
|
82 |
+
'none' => esc_html__( 'None', 'visualizer' ),
|
83 |
);
|
84 |
}
|
85 |
|
92 |
*/
|
93 |
protected function _renderChartTitleSettings() {
|
94 |
self::_renderTextItem(
|
95 |
+
esc_html__( 'Chart Title', 'visualizer' ),
|
96 |
'title',
|
97 |
$this->title,
|
98 |
+
esc_html__( 'Text to display above the chart.', 'visualizer' )
|
99 |
);
|
100 |
|
101 |
self::_renderSelectItem(
|
102 |
+
esc_html__( 'Chart Title Position', 'visualizer' ),
|
103 |
'titlePosition',
|
104 |
$this->titlePosition,
|
105 |
$this->_positions,
|
106 |
+
esc_html__( 'Where to place the chart title, compared to the chart area.', 'visualizer' )
|
107 |
);
|
108 |
|
109 |
self::_renderColorPickerItem(
|
110 |
+
esc_html__( 'Chart Title Color', 'visualizer' ),
|
111 |
'titleTextStyle[color]',
|
112 |
isset( $this->titleTextStyle['color'] ) ? $this->titleTextStyle['color'] : null,
|
113 |
'#000'
|
116 |
echo '<div class="section-delimiter"></div>';
|
117 |
|
118 |
self::_renderSelectItem(
|
119 |
+
esc_html__( 'Axes Titles Position', 'visualizer' ),
|
120 |
'axisTitlesPosition',
|
121 |
$this->axisTitlesPosition,
|
122 |
$this->_positions,
|
123 |
+
esc_html__( 'Determines where to place the axis titles, compared to the chart area.', 'visualizer' )
|
124 |
);
|
125 |
}
|
126 |
|
133 |
*/
|
134 |
protected function _renderHorizontalAxisGeneralSettings() {
|
135 |
self::_renderTextItem(
|
136 |
+
esc_html__( 'Axis Title', 'visualizer' ),
|
137 |
'hAxis[title]',
|
138 |
isset( $this->hAxis['title'] ) ? $this->hAxis['title'] : '',
|
139 |
+
esc_html__( 'The title of the horizontal axis.', 'visualizer' )
|
140 |
);
|
141 |
|
142 |
self::_renderSelectItem(
|
143 |
+
esc_html__( 'Text Position', 'visualizer' ),
|
144 |
'vAxis[textPosition]',
|
145 |
isset( $this->vAxis['textPosition'] ) ? $this->vAxis['textPosition'] : '',
|
146 |
$this->_positions,
|
147 |
+
esc_html__( 'Position of the horizontal axis text, relative to the chart area.', 'visualizer' )
|
148 |
);
|
149 |
|
150 |
self::_renderSelectItem(
|
151 |
+
esc_html__( 'Direction', 'visualizer' ),
|
152 |
'hAxis[direction]',
|
153 |
isset( $this->hAxis['direction'] ) ? $this->hAxis['direction'] : '',
|
154 |
array(
|
155 |
'' => '',
|
156 |
+
'1' => esc_html__( 'Identical Direction', 'visualizer' ),
|
157 |
+
'-1' => esc_html__( 'Reverse Direction', 'visualizer' ),
|
158 |
),
|
159 |
+
esc_html__( 'The direction in which the values along the horizontal axis grow.', 'visualizer' )
|
160 |
);
|
161 |
|
162 |
self::_renderColorPickerItem(
|
163 |
+
esc_html__( 'Base Line Color', 'visualizer' ),
|
164 |
'vAxis[baselineColor]',
|
165 |
isset( $this->vAxis['baselineColor'] ) ? $this->vAxis['baselineColor'] : null,
|
166 |
'#000'
|
175 |
* @access protected
|
176 |
*/
|
177 |
protected function _renderHorizontalAxisSettings() {
|
178 |
+
self::_renderGroupStart( esc_html__( 'Horizontal Axis Settings', 'visualizer' ) );
|
179 |
+
self::_renderSectionStart( esc_html__( 'General Settings', 'visualizer' ), false );
|
180 |
$this->_renderHorizontalAxisGeneralSettings();
|
181 |
self::_renderSectionEnd();
|
182 |
|
183 |
+
if ( $this->_horizontalGridLines ) {
|
184 |
+
self::_renderSectionStart( esc_html__( 'Grid Lines', 'visualizer' ), false );
|
185 |
+
self::_renderTextItem(
|
186 |
+
esc_html__( 'Count', 'visualizer' ),
|
187 |
+
'vAxis[gridlines][count]',
|
188 |
+
isset( $this->vAxis['gridlines']['count'] ) ? $this->vAxis['gridlines']['count'] : '',
|
189 |
+
esc_html__( 'The number of horizontal gridlines inside the chart area. Minimum value is 2. Specify -1 to automatically compute the number of gridlines.', 'visualizer' ),
|
190 |
+
5
|
191 |
+
);
|
192 |
+
|
193 |
+
self::_renderColorPickerItem(
|
194 |
+
esc_html__( 'Color', 'visualizer' ),
|
195 |
+
'vAxis[gridlines][color]',
|
196 |
+
isset( $this->vAxis['gridlines']['color'] ) ? $this->vAxis['gridlines']['color'] : null,
|
197 |
+
'#ccc'
|
198 |
+
);
|
199 |
+
self::_renderSectionEnd();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
|
201 |
+
self::_renderSectionStart( esc_html__( 'Minor Grid Lines', 'visualizer' ), false );
|
202 |
+
self::_renderTextItem(
|
203 |
+
esc_html__( 'Count', 'visualizer' ),
|
204 |
+
'vAxis[minorGridlines][count]',
|
205 |
+
isset( $this->vAxis['minorGridlines']['count'] ) ? $this->vAxis['minorGridlines']['count'] : '',
|
206 |
+
esc_html__( 'The number of horizontal minor gridlines between two regular gridlines.', 'visualizer' ),
|
207 |
+
0
|
208 |
+
);
|
209 |
+
|
210 |
+
self::_renderColorPickerItem(
|
211 |
+
esc_html__( 'Color', 'visualizer' ),
|
212 |
+
'vAxis[minorGridlines][color]',
|
213 |
+
isset( $this->vAxis['minorGridlines']['color'] ) ? $this->vAxis['minorGridlines']['color'] : null,
|
214 |
+
null
|
215 |
+
);
|
216 |
+
self::_renderSectionEnd();
|
217 |
+
}
|
218 |
+
|
219 |
+
if ( $this->_verticalGridLines ) {
|
220 |
+
self::_renderSectionStart( esc_html__( 'View Window', 'visualizer' ), false );
|
221 |
+
self::_renderTextItem(
|
222 |
+
esc_html__( 'Maximum Value', 'visualizer' ),
|
223 |
+
'hAxis[viewWindow][max]',
|
224 |
+
isset( $this->hAxis['viewWindow']['max'] ) ? $this->hAxis['viewWindow']['max'] : '',
|
225 |
+
'The maximum vertical data value to render.'
|
226 |
+
);
|
227 |
+
|
228 |
+
self::_renderTextItem(
|
229 |
+
esc_html__( 'Minimum Value', 'visualizer' ),
|
230 |
+
'hAxis[viewWindow][min]',
|
231 |
+
isset( $this->hAxis['viewWindow']['min'] ) ? $this->hAxis['viewWindow']['min'] : '',
|
232 |
+
'The minimum vertical data value to render.'
|
233 |
+
);
|
234 |
+
self::_renderSectionEnd();
|
235 |
+
}
|
236 |
self::_renderGroupEnd();
|
237 |
}
|
238 |
|
245 |
*/
|
246 |
protected function _renderVerticalAxisGeneralSettings() {
|
247 |
self::_renderTextItem(
|
248 |
+
esc_html__( 'Axis Title', 'visualizer' ),
|
249 |
'vAxis[title]',
|
250 |
isset( $this->vAxis['title'] ) ? $this->vAxis['title'] : '',
|
251 |
+
esc_html__( 'The title of the vertical axis.', 'visualizer' )
|
252 |
);
|
253 |
|
254 |
self::_renderSelectItem(
|
255 |
+
esc_html__( 'Text Position', 'visualizer' ),
|
256 |
'hAxis[textPosition]',
|
257 |
isset( $this->hAxis['textPosition'] ) ? $this->hAxis['textPosition'] : '',
|
258 |
$this->_positions,
|
259 |
+
esc_html__( 'Position of the vertical axis text, relative to the chart area.', 'visualizer' )
|
260 |
);
|
261 |
|
262 |
self::_renderSelectItem(
|
263 |
+
esc_html__( 'Direction', 'visualizer' ),
|
264 |
'vAxis[direction]',
|
265 |
isset( $this->vAxis['direction'] ) ? $this->vAxis['direction'] : '',
|
266 |
array(
|
267 |
'' => '',
|
268 |
+
'1' => esc_html__( 'Identical Direction', 'visualizer' ),
|
269 |
+
'-1' => esc_html__( 'Reverse Direction', 'visualizer' ),
|
270 |
),
|
271 |
+
esc_html__( 'The direction in which the values along the vertical axis grow.', 'visualizer' )
|
272 |
);
|
273 |
|
274 |
self::_renderColorPickerItem(
|
275 |
+
esc_html__( 'Base Line Color', 'visualizer' ),
|
276 |
'hAxis[baselineColor]',
|
277 |
isset( $this->hAxis['baselineColor'] ) ? $this->hAxis['baselineColor'] : null,
|
278 |
'#000'
|
287 |
* @access protected
|
288 |
*/
|
289 |
protected function _renderVerticalAxisSettings() {
|
290 |
+
self::_renderGroupStart( esc_html__( 'Vertical Axis Settings', 'visualizer' ) );
|
291 |
+
self::_renderSectionStart( esc_html__( 'General Settings', 'visualizer' ), false );
|
292 |
$this->_renderVerticalAxisGeneralSettings();
|
293 |
self::_renderSectionEnd();
|
294 |
|
295 |
+
if ( $this->_verticalGridLines ) {
|
296 |
+
self::_renderSectionStart( esc_html__( 'Grid Lines', 'visualizer' ), false );
|
297 |
+
self::_renderTextItem(
|
298 |
+
esc_html__( 'Count', 'visualizer' ),
|
299 |
+
'hAxis[gridlines][count]',
|
300 |
+
isset( $this->hAxis['gridlines']['count'] ) ? $this->hAxis['gridlines']['count'] : '',
|
301 |
+
esc_html__( 'The number of vertical gridlines inside the chart area. Minimum value is 2. Specify -1 to automatically compute the number of gridlines.', 'visualizer' ),
|
302 |
+
5
|
303 |
+
);
|
304 |
+
|
305 |
+
self::_renderColorPickerItem(
|
306 |
+
esc_html__( 'Color', 'visualizer' ),
|
307 |
+
'hAxis[gridlines][color]',
|
308 |
+
isset( $this->hAxis['gridlines']['color'] ) ? $this->hAxis['gridlines']['color'] : null,
|
309 |
+
'#ccc'
|
310 |
+
);
|
311 |
+
self::_renderSectionEnd();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
|
313 |
+
self::_renderSectionStart( esc_html__( 'Minor Grid Lines', 'visualizer' ), false );
|
314 |
+
self::_renderTextItem(
|
315 |
+
esc_html__( 'Count', 'visualizer' ),
|
316 |
+
'hAxis[minorGridlines][count]',
|
317 |
+
isset( $this->hAxis['minorGridlines']['count'] ) ? $this->hAxis['minorGridlines']['count'] : '',
|
318 |
+
esc_html__( 'The number of vertical minor gridlines between two regular gridlines.', 'visualizer' ),
|
319 |
+
0
|
320 |
+
);
|
321 |
+
|
322 |
+
self::_renderColorPickerItem(
|
323 |
+
esc_html__( 'Color', 'visualizer' ),
|
324 |
+
'hAxis[minorGridlines][color]',
|
325 |
+
isset( $this->hAxis['minorGridlines']['color'] ) ? $this->hAxis['minorGridlines']['color'] : null,
|
326 |
+
null
|
327 |
+
);
|
328 |
+
self::_renderSectionEnd();
|
329 |
+
}
|
330 |
+
|
331 |
+
if ( $this->_horizontalGridLines ) {
|
332 |
+
self::_renderSectionStart( esc_html__( 'View Window', 'visualizer' ), false );
|
333 |
+
self::_renderTextItem(
|
334 |
+
esc_html__( 'Maximum Value', 'visualizer' ),
|
335 |
+
'vAxis[viewWindow][max]',
|
336 |
+
isset( $this->vAxis['viewWindow']['max'] ) ? $this->vAxis['viewWindow']['max'] : '',
|
337 |
+
'The maximum vertical data value to render.'
|
338 |
+
);
|
339 |
+
|
340 |
+
self::_renderTextItem(
|
341 |
+
esc_html__( 'Minimum Value', 'visualizer' ),
|
342 |
+
'vAxis[viewWindow][min]',
|
343 |
+
isset( $this->vAxis['viewWindow']['min'] ) ? $this->vAxis['viewWindow']['min'] : '',
|
344 |
+
'The minimum vertical data value to render.'
|
345 |
+
);
|
346 |
+
self::_renderSectionEnd();
|
347 |
+
}
|
348 |
self::_renderGroupEnd();
|
349 |
}
|
350 |
|
368 |
* @access protected
|
369 |
*/
|
370 |
protected function _renderSeriesSettings() {
|
371 |
+
self::_renderGroupStart( esc_html__( 'Series Settings', 'visualizer' ) );
|
372 |
+
for ( $i = 1, $cnt = count( $this->__series ); $i < $cnt; $i++ ) {
|
373 |
+
if ( ! empty( $this->__series[ $i ]['label'] ) ) {
|
374 |
+
self::_renderSectionStart( esc_html( $this->__series[ $i ]['label'] ), false );
|
375 |
+
$this->_renderSeries( $i - 1 );
|
376 |
+
self::_renderSectionEnd();
|
|
|
377 |
}
|
378 |
+
}
|
379 |
self::_renderGroupEnd();
|
380 |
}
|
381 |
|
389 |
*/
|
390 |
protected function _renderSeries( $index ) {
|
391 |
self::_renderSelectItem(
|
392 |
+
esc_html__( 'Visible In Legend', 'visualizer' ),
|
393 |
'series[' . $index . '][visibleInLegend]',
|
394 |
+
isset( $this->series[ $index ]['visibleInLegend'] ) ? $this->series[ $index ]['visibleInLegend'] : '',
|
395 |
array(
|
396 |
'' => '',
|
397 |
+
'0' => esc_html__( 'No', 'visualizer' ),
|
398 |
+
'1' => esc_html__( 'Yes', 'visualizer' ),
|
399 |
),
|
400 |
+
esc_html__( 'Determines whether the series has to be presented in the legend or not.', 'visualizer' )
|
401 |
);
|
402 |
|
403 |
$this->_renderFormatField( $index );
|
404 |
|
405 |
self::_renderColorPickerItem(
|
406 |
+
esc_html__( 'Color', 'visualizer' ),
|
407 |
'series[' . $index . '][color]',
|
408 |
+
isset( $this->series[ $index ]['color'] ) ? $this->series[ $index ]['color'] : null,
|
409 |
null
|
410 |
);
|
411 |
}
|
419 |
*/
|
420 |
protected function _renderHorizontalAxisFormatField() {
|
421 |
self::_renderTextItem(
|
422 |
+
esc_html__( 'Number Format', 'visualizer' ),
|
423 |
'hAxis[format]',
|
424 |
isset( $this->hAxis['format'] ) ? $this->hAxis['format'] : '',
|
425 |
sprintf(
|
426 |
'%s<br><br>%s<br><br>%s',
|
427 |
+
esc_html__( 'Enter custom format pattern to apply to horizontal axis labels.', 'visualizer' ),
|
428 |
sprintf(
|
429 |
+
esc_html__( 'For number axis labels, this is a subset of the decimal formatting %1$sICU pattern set%1$s. For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use #%3$% percentage format then your values will be multiplied by 100.', 'visualizer' ),
|
430 |
'<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">',
|
431 |
'</a>'
|
432 |
),
|
433 |
sprintf(
|
434 |
+
esc_html__( 'For date axis labels, this is a subset of the date formatting %1$sICU date and time format%1$s.', 'visualizer' ),
|
435 |
'<a href="http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax" target="_blank">',
|
436 |
'</a>'
|
437 |
)
|
448 |
*/
|
449 |
protected function _renderVerticalAxisFormatField() {
|
450 |
self::_renderTextItem(
|
451 |
+
esc_html__( 'Number Format', 'visualizer' ),
|
452 |
'vAxis[format]',
|
453 |
isset( $this->vAxis['format'] ) ? $this->vAxis['format'] : '',
|
454 |
sprintf(
|
455 |
'%s<br><br>%s<br><br>%s',
|
456 |
+
esc_html__( 'Enter custom format pattern to apply to vertical axis labels.', 'visualizer' ),
|
457 |
sprintf(
|
458 |
+
esc_html__( 'For number axis labels, this is a subset of the decimal formatting %1$sICU pattern set%1$s. For instance, $#,###.## will display values $1,234.56 for value 1234.56. Pay attention that if you use #%3$% percentage format then your values will be multiplied by 100.', 'visualizer' ),
|
459 |
'<a href="http://icu-project.org/apiref/icu4c/classDecimalFormat.html#_details" target="_blank">',
|
460 |
'</a>'
|
461 |
),
|
462 |
sprintf(
|
463 |
+
esc_html__( 'For date axis labels, this is a subset of the date formatting %1$sICU date and time format%1$s.', 'visualizer' ),
|
464 |
'<a href="http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax" target="_blank">',
|
465 |
'</a>'
|
466 |
)
|
468 |
);
|
469 |
}
|
470 |
|
471 |
+
}
|
classes/Visualizer/Render/Sidebar/Linear.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Base class for sidebar settings of linear based charts.
|
26 |
*
|
@@ -79,8 +77,8 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
79 |
|
80 |
$this->_curveTypes = array(
|
81 |
'' => '',
|
82 |
-
'none' => esc_html__( 'Straight line without curve',
|
83 |
-
'function' => esc_html__( 'The angles of the line will be smoothed',
|
84 |
);
|
85 |
}
|
86 |
|
@@ -95,7 +93,7 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
95 |
parent::_renderHorizontalAxisGeneralSettings();
|
96 |
|
97 |
self::_renderColorPickerItem(
|
98 |
-
esc_html__( 'Axis Text Color',
|
99 |
'vAxis[textStyle]',
|
100 |
isset( $this->vAxis['textStyle'] ) ? $this->vAxis['textStyle'] : null,
|
101 |
'#000'
|
@@ -115,7 +113,7 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
115 |
parent::_renderVerticalAxisGeneralSettings();
|
116 |
|
117 |
self::_renderColorPickerItem(
|
118 |
-
esc_html__( 'Axis Text Color',
|
119 |
'hAxis[textStyle]',
|
120 |
isset( $this->hAxis['textStyle'] ) ? $this->hAxis['textStyle'] : null,
|
121 |
'#000'
|
@@ -134,7 +132,7 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
134 |
protected function _renderLineSettingsItems() {
|
135 |
echo '<div class="section-item">';
|
136 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
137 |
-
echo '<b>', esc_html__( 'Line Width And Point Size',
|
138 |
|
139 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
140 |
echo '<tr>';
|
@@ -148,17 +146,17 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
148 |
echo '</table>';
|
149 |
|
150 |
echo '<p class="section-description">';
|
151 |
-
esc_html_e( 'Data line width and diameter of displayed points in pixels. Use zero to hide all lines or points.',
|
152 |
echo '</p>';
|
153 |
echo '</div>';
|
154 |
|
155 |
if ( $this->_includeCurveTypes ) {
|
156 |
self::_renderSelectItem(
|
157 |
-
esc_html__( 'Curve Type',
|
158 |
'curveType',
|
159 |
$this->curveType,
|
160 |
$this->_curveTypes,
|
161 |
-
esc_html__( 'Determines whether the series has to be presented in the legend or not.',
|
162 |
);
|
163 |
}
|
164 |
|
@@ -166,51 +164,51 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
166 |
|
167 |
if ( $this->_includeFocusTarget ) {
|
168 |
self::_renderSelectItem(
|
169 |
-
esc_html__( 'Focus Target',
|
170 |
'focusTarget',
|
171 |
$this->focusTarget,
|
172 |
array(
|
173 |
'' => '',
|
174 |
-
'datum' => esc_html__( 'Focus on a single data point.',
|
175 |
-
'category' => esc_html__( 'Focus on a grouping of all data points along the major axis.',
|
176 |
),
|
177 |
-
esc_html__( 'The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click.',
|
178 |
);
|
179 |
}
|
180 |
|
181 |
self::_renderSelectItem(
|
182 |
-
esc_html__( 'Selection Mode',
|
183 |
'selectionMode',
|
184 |
$this->selectionMode,
|
185 |
array(
|
186 |
'' => '',
|
187 |
-
'single' => esc_html__( 'Single data point',
|
188 |
-
'multiple' => esc_html__( 'Multiple data points',
|
189 |
),
|
190 |
-
esc_html__( 'Determines how many data points an user can select on a chart.',
|
191 |
);
|
192 |
|
193 |
self::_renderSelectItem(
|
194 |
-
esc_html__( 'Aggregation Target',
|
195 |
'aggregationTarget',
|
196 |
$this->aggregationTarget,
|
197 |
array(
|
198 |
'' => '',
|
199 |
-
'category' => esc_html__( 'Group selected data by x-value',
|
200 |
-
'series' => esc_html__( 'Group selected data by series',
|
201 |
-
'auto' => esc_html__( 'Group selected data by x-value if all selections have the same x-value, and by series otherwise',
|
202 |
-
'none' => esc_html__( 'Show only one tooltip per selection',
|
203 |
),
|
204 |
-
esc_html__( 'Determines how multiple data selections are rolled up into tooltips. To make it working you need to set multiple selection mode and tooltip trigger to display it when an user selects an element.',
|
205 |
);
|
206 |
|
207 |
echo '<div class="section-delimiter"></div>';
|
208 |
|
209 |
self::_renderTextItem(
|
210 |
-
esc_html__( 'Point Opacity',
|
211 |
'dataOpacity',
|
212 |
$this->dataOpacity,
|
213 |
-
esc_html__( 'The transparency of data points, with 1.0 being completely opaque and 0.0 fully transparent.',
|
214 |
'1.0'
|
215 |
);
|
216 |
}
|
@@ -223,7 +221,7 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
223 |
* @access protected
|
224 |
*/
|
225 |
protected function _renderLineSettings() {
|
226 |
-
self::_renderGroupStart( esc_html__( 'Lines Settings',
|
227 |
self::_renderSectionStart();
|
228 |
$this->_renderLineSettingsItems();
|
229 |
self::_renderSectionEnd();
|
@@ -240,36 +238,36 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
240 |
*/
|
241 |
protected function _renderSeries( $index ) {
|
242 |
self::_renderSelectItem(
|
243 |
-
esc_html__( 'Visible In Legend',
|
244 |
'series[' . $index . '][visibleInLegend]',
|
245 |
-
isset( $this->series[$index]['visibleInLegend'] ) ? $this->series[$index]['visibleInLegend'] : '',
|
246 |
array(
|
247 |
'' => '',
|
248 |
-
'0' => esc_html__( 'No',
|
249 |
-
'1' => esc_html__( 'Yes',
|
250 |
),
|
251 |
-
esc_html__( 'Determines whether the series has to be presented in the legend or not.',
|
252 |
);
|
253 |
|
254 |
echo '<div class="section-item">';
|
255 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
256 |
-
echo '<b>', esc_html__( 'Line Width And Point Size',
|
257 |
|
258 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
259 |
echo '<tr>';
|
260 |
echo '<td class="section-table-column">';
|
261 |
-
$line_width = isset( $this->series[$index]['lineWidth'] ) ? $this->series[$index]['lineWidth'] : '';
|
262 |
echo '<input type="text" name="series[', $index, '][lineWidth]" class="control-text" value="', esc_attr( $line_width ), '" placeholder="2">';
|
263 |
echo '</td>';
|
264 |
echo '<td class="section-table-column">';
|
265 |
-
$point_size = isset( $this->series[$index]['pointSize'] ) ? $this->series[$index]['pointSize'] : '';
|
266 |
echo '<input type="text" name="series[', $index, '][pointSize]" class="control-text" value="', esc_attr( $point_size ), '" placeholder="0">';
|
267 |
echo '</td>';
|
268 |
echo '</tr>';
|
269 |
echo '</table>';
|
270 |
|
271 |
echo '<p class="section-description">';
|
272 |
-
esc_html_e( 'Overrides the global line width and point size values for this series.',
|
273 |
echo '</p>';
|
274 |
echo '</div>';
|
275 |
|
@@ -277,20 +275,20 @@ abstract class Visualizer_Render_Sidebar_Linear extends Visualizer_Render_Sideba
|
|
277 |
|
278 |
if ( $this->_includeCurveTypes ) {
|
279 |
self::_renderSelectItem(
|
280 |
-
esc_html__( 'Curve Type',
|
281 |
'series[' . $index . '][curveType]',
|
282 |
-
isset( $this->series[$index]['curveType'] ) ? $this->series[$index]['curveType'] : '',
|
283 |
$this->_curveTypes,
|
284 |
-
esc_html__( 'Determines whether the series has to be presented in the legend or not.',
|
285 |
);
|
286 |
}
|
287 |
|
288 |
self::_renderColorPickerItem(
|
289 |
-
esc_html__( 'Color',
|
290 |
'series[' . $index . '][color]',
|
291 |
-
isset( $this->series[$index]['color'] ) ? $this->series[$index]['color'] : null,
|
292 |
null
|
293 |
);
|
294 |
}
|
295 |
|
296 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Base class for sidebar settings of linear based charts.
|
24 |
*
|
77 |
|
78 |
$this->_curveTypes = array(
|
79 |
'' => '',
|
80 |
+
'none' => esc_html__( 'Straight line without curve', 'visualizer' ),
|
81 |
+
'function' => esc_html__( 'The angles of the line will be smoothed', 'visualizer' ),
|
82 |
);
|
83 |
}
|
84 |
|
93 |
parent::_renderHorizontalAxisGeneralSettings();
|
94 |
|
95 |
self::_renderColorPickerItem(
|
96 |
+
esc_html__( 'Axis Text Color', 'visualizer' ),
|
97 |
'vAxis[textStyle]',
|
98 |
isset( $this->vAxis['textStyle'] ) ? $this->vAxis['textStyle'] : null,
|
99 |
'#000'
|
113 |
parent::_renderVerticalAxisGeneralSettings();
|
114 |
|
115 |
self::_renderColorPickerItem(
|
116 |
+
esc_html__( 'Axis Text Color', 'visualizer' ),
|
117 |
'hAxis[textStyle]',
|
118 |
isset( $this->hAxis['textStyle'] ) ? $this->hAxis['textStyle'] : null,
|
119 |
'#000'
|
132 |
protected function _renderLineSettingsItems() {
|
133 |
echo '<div class="section-item">';
|
134 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
135 |
+
echo '<b>', esc_html__( 'Line Width And Point Size', 'visualizer' ), '</b>';
|
136 |
|
137 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
138 |
echo '<tr>';
|
146 |
echo '</table>';
|
147 |
|
148 |
echo '<p class="section-description">';
|
149 |
+
esc_html_e( 'Data line width and diameter of displayed points in pixels. Use zero to hide all lines or points.', 'visualizer' );
|
150 |
echo '</p>';
|
151 |
echo '</div>';
|
152 |
|
153 |
if ( $this->_includeCurveTypes ) {
|
154 |
self::_renderSelectItem(
|
155 |
+
esc_html__( 'Curve Type', 'visualizer' ),
|
156 |
'curveType',
|
157 |
$this->curveType,
|
158 |
$this->_curveTypes,
|
159 |
+
esc_html__( 'Determines whether the series has to be presented in the legend or not.', 'visualizer' )
|
160 |
);
|
161 |
}
|
162 |
|
164 |
|
165 |
if ( $this->_includeFocusTarget ) {
|
166 |
self::_renderSelectItem(
|
167 |
+
esc_html__( 'Focus Target', 'visualizer' ),
|
168 |
'focusTarget',
|
169 |
$this->focusTarget,
|
170 |
array(
|
171 |
'' => '',
|
172 |
+
'datum' => esc_html__( 'Focus on a single data point.', 'visualizer' ),
|
173 |
+
'category' => esc_html__( 'Focus on a grouping of all data points along the major axis.', 'visualizer' ),
|
174 |
),
|
175 |
+
esc_html__( 'The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click.', 'visualizer' )
|
176 |
);
|
177 |
}
|
178 |
|
179 |
self::_renderSelectItem(
|
180 |
+
esc_html__( 'Selection Mode', 'visualizer' ),
|
181 |
'selectionMode',
|
182 |
$this->selectionMode,
|
183 |
array(
|
184 |
'' => '',
|
185 |
+
'single' => esc_html__( 'Single data point', 'visualizer' ),
|
186 |
+
'multiple' => esc_html__( 'Multiple data points', 'visualizer' ),
|
187 |
),
|
188 |
+
esc_html__( 'Determines how many data points an user can select on a chart.', 'visualizer' )
|
189 |
);
|
190 |
|
191 |
self::_renderSelectItem(
|
192 |
+
esc_html__( 'Aggregation Target', 'visualizer' ),
|
193 |
'aggregationTarget',
|
194 |
$this->aggregationTarget,
|
195 |
array(
|
196 |
'' => '',
|
197 |
+
'category' => esc_html__( 'Group selected data by x-value', 'visualizer' ),
|
198 |
+
'series' => esc_html__( 'Group selected data by series', 'visualizer' ),
|
199 |
+
'auto' => esc_html__( 'Group selected data by x-value if all selections have the same x-value, and by series otherwise', 'visualizer' ),
|
200 |
+
'none' => esc_html__( 'Show only one tooltip per selection', 'visualizer' ),
|
201 |
),
|
202 |
+
esc_html__( 'Determines how multiple data selections are rolled up into tooltips. To make it working you need to set multiple selection mode and tooltip trigger to display it when an user selects an element.', 'visualizer' )
|
203 |
);
|
204 |
|
205 |
echo '<div class="section-delimiter"></div>';
|
206 |
|
207 |
self::_renderTextItem(
|
208 |
+
esc_html__( 'Point Opacity', 'visualizer' ),
|
209 |
'dataOpacity',
|
210 |
$this->dataOpacity,
|
211 |
+
esc_html__( 'The transparency of data points, with 1.0 being completely opaque and 0.0 fully transparent.', 'visualizer' ),
|
212 |
'1.0'
|
213 |
);
|
214 |
}
|
221 |
* @access protected
|
222 |
*/
|
223 |
protected function _renderLineSettings() {
|
224 |
+
self::_renderGroupStart( esc_html__( 'Lines Settings', 'visualizer' ) );
|
225 |
self::_renderSectionStart();
|
226 |
$this->_renderLineSettingsItems();
|
227 |
self::_renderSectionEnd();
|
238 |
*/
|
239 |
protected function _renderSeries( $index ) {
|
240 |
self::_renderSelectItem(
|
241 |
+
esc_html__( 'Visible In Legend', 'visualizer' ),
|
242 |
'series[' . $index . '][visibleInLegend]',
|
243 |
+
isset( $this->series[ $index ]['visibleInLegend'] ) ? $this->series[ $index ]['visibleInLegend'] : '',
|
244 |
array(
|
245 |
'' => '',
|
246 |
+
'0' => esc_html__( 'No', 'visualizer' ),
|
247 |
+
'1' => esc_html__( 'Yes', 'visualizer' ),
|
248 |
),
|
249 |
+
esc_html__( 'Determines whether the series has to be presented in the legend or not.', 'visualizer' )
|
250 |
);
|
251 |
|
252 |
echo '<div class="section-item">';
|
253 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
254 |
+
echo '<b>', esc_html__( 'Line Width And Point Size', 'visualizer' ), '</b>';
|
255 |
|
256 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
257 |
echo '<tr>';
|
258 |
echo '<td class="section-table-column">';
|
259 |
+
$line_width = isset( $this->series[ $index ]['lineWidth'] ) ? $this->series[ $index ]['lineWidth'] : '';
|
260 |
echo '<input type="text" name="series[', $index, '][lineWidth]" class="control-text" value="', esc_attr( $line_width ), '" placeholder="2">';
|
261 |
echo '</td>';
|
262 |
echo '<td class="section-table-column">';
|
263 |
+
$point_size = isset( $this->series[ $index ]['pointSize'] ) ? $this->series[ $index ]['pointSize'] : '';
|
264 |
echo '<input type="text" name="series[', $index, '][pointSize]" class="control-text" value="', esc_attr( $point_size ), '" placeholder="0">';
|
265 |
echo '</td>';
|
266 |
echo '</tr>';
|
267 |
echo '</table>';
|
268 |
|
269 |
echo '<p class="section-description">';
|
270 |
+
esc_html_e( 'Overrides the global line width and point size values for this series.', 'visualizer' );
|
271 |
echo '</p>';
|
272 |
echo '</div>';
|
273 |
|
275 |
|
276 |
if ( $this->_includeCurveTypes ) {
|
277 |
self::_renderSelectItem(
|
278 |
+
esc_html__( 'Curve Type', 'visualizer' ),
|
279 |
'series[' . $index . '][curveType]',
|
280 |
+
isset( $this->series[ $index ]['curveType'] ) ? $this->series[ $index ]['curveType'] : '',
|
281 |
$this->_curveTypes,
|
282 |
+
esc_html__( 'Determines whether the series has to be presented in the legend or not.', 'visualizer' )
|
283 |
);
|
284 |
}
|
285 |
|
286 |
self::_renderColorPickerItem(
|
287 |
+
esc_html__( 'Color', 'visualizer' ),
|
288 |
'series[' . $index . '][color]',
|
289 |
+
isset( $this->series[ $index ]['color'] ) ? $this->series[ $index ]['color'] : null,
|
290 |
null
|
291 |
);
|
292 |
}
|
293 |
|
294 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Area.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for area chart sidebar settings.
|
26 |
*
|
@@ -40,7 +38,7 @@ class Visualizer_Render_Sidebar_Type_Area extends Visualizer_Render_Sidebar_Line
|
|
40 |
* @access public
|
41 |
* @param array $data The data what has to be associated with this render.
|
42 |
*/
|
43 |
-
public function __construct( $data = array(
|
44 |
parent::__construct( $data );
|
45 |
$this->_includeCurveTypes = false;
|
46 |
}
|
@@ -71,21 +69,21 @@ class Visualizer_Render_Sidebar_Type_Area extends Visualizer_Render_Sidebar_Line
|
|
71 |
parent::_renderLineSettingsItems();
|
72 |
|
73 |
self::_renderTextItem(
|
74 |
-
esc_html__( 'Area Opacity',
|
75 |
'areaOpacity',
|
76 |
$this->areaOpacity,
|
77 |
-
esc_html__( 'The default opacity of the colored area under an area chart series, where 0.0 is fully transparent and 1.0 is fully opaque. To specify opacity for an individual series, set the area opacity value in the series property.',
|
78 |
'0.3'
|
79 |
);
|
80 |
|
81 |
echo '<div class="section-delimiter"></div>';
|
82 |
|
83 |
self::_renderSelectItem(
|
84 |
-
esc_html__( 'Is Stacked',
|
85 |
'isStacked',
|
86 |
$this->isStacked,
|
87 |
$this->_yesno,
|
88 |
-
esc_html__( 'If set to yes, series elements are stacked.',
|
89 |
);
|
90 |
}
|
91 |
|
@@ -99,55 +97,55 @@ class Visualizer_Render_Sidebar_Type_Area extends Visualizer_Render_Sidebar_Line
|
|
99 |
*/
|
100 |
protected function _renderSeries( $index ) {
|
101 |
self::_renderSelectItem(
|
102 |
-
esc_html__( 'Visible In Legend',
|
103 |
'series[' . $index . '][visibleInLegend]',
|
104 |
-
isset( $this->series[$index]['visibleInLegend'] ) ? $this->series[$index]['visibleInLegend'] : '',
|
105 |
array(
|
106 |
'' => '',
|
107 |
-
'0' => esc_html__( 'No',
|
108 |
-
'1' => esc_html__( 'Yes',
|
109 |
),
|
110 |
-
esc_html__( 'Determines whether the series has to be presented in the legend or not.',
|
111 |
);
|
112 |
|
113 |
echo '<div class="section-item">';
|
114 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
115 |
-
echo '<b>', esc_html__( 'Line Width And Point Size',
|
116 |
|
117 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
118 |
echo '<tr>';
|
119 |
echo '<td class="section-table-column">';
|
120 |
-
$line_width = isset( $this->series[$index]['lineWidth'] ) ? $this->series[$index]['lineWidth'] : '';
|
121 |
echo '<input type="text" name="series[', $index, '][lineWidth]" class="control-text" value="', esc_attr( $line_width ), '" placeholder="2">';
|
122 |
echo '</td>';
|
123 |
echo '<td class="section-table-column">';
|
124 |
-
$point_size = isset( $this->series[$index]['pointSize'] ) ? $this->series[$index]['pointSize'] : '';
|
125 |
echo '<input type="text" name="series[', $index, '][pointSize]" class="control-text" value="', esc_attr( $point_size ), '" placeholder="0">';
|
126 |
echo '</td>';
|
127 |
echo '</tr>';
|
128 |
echo '</table>';
|
129 |
|
130 |
echo '<p class="section-description">';
|
131 |
-
esc_html_e( 'Overrides the global line width and point size values for this series.',
|
132 |
echo '</p>';
|
133 |
echo '</div>';
|
134 |
|
135 |
$this->_renderFormatField( $index );
|
136 |
|
137 |
self::_renderTextItem(
|
138 |
-
esc_html__( 'Area Opacity',
|
139 |
'series[' . $index . '][areaOpacity]',
|
140 |
-
isset( $this->series[$index]['areaOpacity'] ) ? $this->series[$index]['areaOpacity'] : null,
|
141 |
-
esc_html__( 'The opacity of the colored area, where 0.0 is fully transparent and 1.0 is fully opaque.',
|
142 |
'0.3'
|
143 |
);
|
144 |
|
145 |
self::_renderColorPickerItem(
|
146 |
-
esc_html__( 'Color',
|
147 |
'series[' . $index . '][color]',
|
148 |
-
isset( $this->series[$index]['color'] ) ? $this->series[$index]['color'] : null,
|
149 |
null
|
150 |
);
|
151 |
}
|
152 |
|
153 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for area chart sidebar settings.
|
24 |
*
|
38 |
* @access public
|
39 |
* @param array $data The data what has to be associated with this render.
|
40 |
*/
|
41 |
+
public function __construct( $data = array() ) {
|
42 |
parent::__construct( $data );
|
43 |
$this->_includeCurveTypes = false;
|
44 |
}
|
69 |
parent::_renderLineSettingsItems();
|
70 |
|
71 |
self::_renderTextItem(
|
72 |
+
esc_html__( 'Area Opacity', 'visualizer' ),
|
73 |
'areaOpacity',
|
74 |
$this->areaOpacity,
|
75 |
+
esc_html__( 'The default opacity of the colored area under an area chart series, where 0.0 is fully transparent and 1.0 is fully opaque. To specify opacity for an individual series, set the area opacity value in the series property.', 'visualizer' ),
|
76 |
'0.3'
|
77 |
);
|
78 |
|
79 |
echo '<div class="section-delimiter"></div>';
|
80 |
|
81 |
self::_renderSelectItem(
|
82 |
+
esc_html__( 'Is Stacked', 'visualizer' ),
|
83 |
'isStacked',
|
84 |
$this->isStacked,
|
85 |
$this->_yesno,
|
86 |
+
esc_html__( 'If set to yes, series elements are stacked.', 'visualizer' )
|
87 |
);
|
88 |
}
|
89 |
|
97 |
*/
|
98 |
protected function _renderSeries( $index ) {
|
99 |
self::_renderSelectItem(
|
100 |
+
esc_html__( 'Visible In Legend', 'visualizer' ),
|
101 |
'series[' . $index . '][visibleInLegend]',
|
102 |
+
isset( $this->series[ $index ]['visibleInLegend'] ) ? $this->series[ $index ]['visibleInLegend'] : '',
|
103 |
array(
|
104 |
'' => '',
|
105 |
+
'0' => esc_html__( 'No', 'visualizer' ),
|
106 |
+
'1' => esc_html__( 'Yes', 'visualizer' ),
|
107 |
),
|
108 |
+
esc_html__( 'Determines whether the series has to be presented in the legend or not.', 'visualizer' )
|
109 |
);
|
110 |
|
111 |
echo '<div class="section-item">';
|
112 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
113 |
+
echo '<b>', esc_html__( 'Line Width And Point Size', 'visualizer' ), '</b>';
|
114 |
|
115 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
116 |
echo '<tr>';
|
117 |
echo '<td class="section-table-column">';
|
118 |
+
$line_width = isset( $this->series[ $index ]['lineWidth'] ) ? $this->series[ $index ]['lineWidth'] : '';
|
119 |
echo '<input type="text" name="series[', $index, '][lineWidth]" class="control-text" value="', esc_attr( $line_width ), '" placeholder="2">';
|
120 |
echo '</td>';
|
121 |
echo '<td class="section-table-column">';
|
122 |
+
$point_size = isset( $this->series[ $index ]['pointSize'] ) ? $this->series[ $index ]['pointSize'] : '';
|
123 |
echo '<input type="text" name="series[', $index, '][pointSize]" class="control-text" value="', esc_attr( $point_size ), '" placeholder="0">';
|
124 |
echo '</td>';
|
125 |
echo '</tr>';
|
126 |
echo '</table>';
|
127 |
|
128 |
echo '<p class="section-description">';
|
129 |
+
esc_html_e( 'Overrides the global line width and point size values for this series.', 'visualizer' );
|
130 |
echo '</p>';
|
131 |
echo '</div>';
|
132 |
|
133 |
$this->_renderFormatField( $index );
|
134 |
|
135 |
self::_renderTextItem(
|
136 |
+
esc_html__( 'Area Opacity', 'visualizer' ),
|
137 |
'series[' . $index . '][areaOpacity]',
|
138 |
+
isset( $this->series[ $index ]['areaOpacity'] ) ? $this->series[ $index ]['areaOpacity'] : null,
|
139 |
+
esc_html__( 'The opacity of the colored area, where 0.0 is fully transparent and 1.0 is fully opaque.', 'visualizer' ),
|
140 |
'0.3'
|
141 |
);
|
142 |
|
143 |
self::_renderColorPickerItem(
|
144 |
+
esc_html__( 'Color', 'visualizer' ),
|
145 |
'series[' . $index . '][color]',
|
146 |
+
isset( $this->series[ $index ]['color'] ) ? $this->series[ $index ]['color'] : null,
|
147 |
null
|
148 |
);
|
149 |
}
|
150 |
|
151 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Bar.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for bar chart sidebar settings.
|
26 |
*
|
@@ -40,7 +38,7 @@ class Visualizer_Render_Sidebar_Type_Bar extends Visualizer_Render_Sidebar_Colum
|
|
40 |
* @access public
|
41 |
* @param array $data The data what has to be associated with this render.
|
42 |
*/
|
43 |
-
public function __construct( $data = array(
|
44 |
parent::__construct( $data );
|
45 |
|
46 |
// disable horizontal gridlines settings
|
@@ -74,4 +72,4 @@ class Visualizer_Render_Sidebar_Type_Bar extends Visualizer_Render_Sidebar_Colum
|
|
74 |
$this->_renderViewSettings();
|
75 |
}
|
76 |
|
77 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for bar chart sidebar settings.
|
24 |
*
|
38 |
* @access public
|
39 |
* @param array $data The data what has to be associated with this render.
|
40 |
*/
|
41 |
+
public function __construct( $data = array() ) {
|
42 |
parent::__construct( $data );
|
43 |
|
44 |
// disable horizontal gridlines settings
|
72 |
$this->_renderViewSettings();
|
73 |
}
|
74 |
|
75 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Candlestick.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for candlestick chart sidebar settings.
|
26 |
*
|
@@ -55,93 +53,93 @@ class Visualizer_Render_Sidebar_Type_Candlestick extends Visualizer_Render_Sideb
|
|
55 |
* @access protected
|
56 |
*/
|
57 |
protected function _renderLineSettings() {
|
58 |
-
self::_renderGroupStart( esc_html__( 'Candles Settings',
|
59 |
self::_renderSectionStart();
|
60 |
self::_renderSelectItem(
|
61 |
-
esc_html__( 'Focus Target',
|
62 |
'focusTarget',
|
63 |
$this->focusTarget,
|
64 |
array(
|
65 |
'' => '',
|
66 |
-
'datum' => esc_html__( 'Focus on a single data point.',
|
67 |
-
'category' => esc_html__( 'Focus on a grouping of all data points along the major axis.',
|
68 |
),
|
69 |
-
esc_html__( 'The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click.',
|
70 |
);
|
71 |
|
72 |
echo '<div class="section-delimiter"></div>';
|
73 |
|
74 |
self::_renderSelectItem(
|
75 |
-
esc_html__( 'Selection Mode',
|
76 |
'selectionMode',
|
77 |
$this->selectionMode,
|
78 |
array(
|
79 |
'' => '',
|
80 |
-
'single' => esc_html__( 'Single data point',
|
81 |
-
'multiple' => esc_html__( 'Multiple data points',
|
82 |
),
|
83 |
-
esc_html__( 'Determines how many data points an user can select on a chart.',
|
84 |
);
|
85 |
|
86 |
self::_renderSelectItem(
|
87 |
-
esc_html__( 'Aggregation Target',
|
88 |
'aggregationTarget',
|
89 |
$this->aggregationTarget,
|
90 |
array(
|
91 |
'' => '',
|
92 |
-
'category' => esc_html__( 'Group selected data by x-value',
|
93 |
-
'series' => esc_html__( 'Group selected data by series',
|
94 |
-
'auto' => esc_html__( 'Group selected data by x-value if all selections have the same x-value, and by series otherwise',
|
95 |
-
'none' => esc_html__( 'Show only one tooltip per selection',
|
96 |
),
|
97 |
-
esc_html__( 'Determines how multiple data selections are rolled up into tooltips. To make it working you need to set multiple selection mode and tooltip trigger to display it when an user selects an element.',
|
98 |
);
|
99 |
self::_renderSectionEnd();
|
100 |
|
101 |
-
self::_renderSectionStart( esc_html__( 'Failing Candles',
|
102 |
self::_renderTextItem(
|
103 |
-
esc_html__( 'Stroke Width',
|
104 |
'candlestick[fallingColor][strokeWidth]',
|
105 |
isset( $this->candlestick['fallingColor']['strokeWidth'] ) ? $this->candlestick['fallingColor']['strokeWidth'] : null,
|
106 |
-
esc_html__( 'The stroke width of falling candles.',
|
107 |
'2'
|
108 |
);
|
109 |
|
110 |
self::_renderColorPickerItem(
|
111 |
-
esc_html__( 'Stroke Color',
|
112 |
'candlestick[fallingColor][stroke]',
|
113 |
-
!empty( $this->candlestick['fallingColor']['stroke'] ) ? $this->candlestick['fallingColor']['stroke'] : null,
|
114 |
null
|
115 |
);
|
116 |
|
117 |
self::_renderColorPickerItem(
|
118 |
-
esc_html__( 'Fill Color',
|
119 |
'candlestick[fallingColor][fill]',
|
120 |
-
!empty( $this->candlestick['fallingColor']['fill'] ) ? $this->candlestick['fallingColor']['fill'] : null,
|
121 |
null
|
122 |
);
|
123 |
self::_renderSectionEnd();
|
124 |
|
125 |
-
self::_renderSectionStart( esc_html__( 'Rising Candles',
|
126 |
self::_renderTextItem(
|
127 |
-
esc_html__( 'Stroke Width',
|
128 |
'candlestick[risingColor][strokeWidth]',
|
129 |
isset( $this->candlestick['risingColor']['strokeWidth'] ) ? $this->candlestick['risingColor']['strokeWidth'] : null,
|
130 |
-
esc_html__( 'The stroke width of rising candles.',
|
131 |
'2'
|
132 |
);
|
133 |
|
134 |
self::_renderColorPickerItem(
|
135 |
-
esc_html__( 'Stroke Color',
|
136 |
'candlestick[risingColor][stroke]',
|
137 |
-
!empty( $this->candlestick['risingColor']['stroke'] ) ? $this->candlestick['risingColor']['stroke'] : null,
|
138 |
null
|
139 |
);
|
140 |
|
141 |
self::_renderColorPickerItem(
|
142 |
-
esc_html__( 'Fill Color',
|
143 |
'candlestick[risingColor][fill]',
|
144 |
-
!empty( $this->candlestick['risingColor']['fill'] ) ? $this->candlestick['risingColor']['fill'] : null,
|
145 |
null
|
146 |
);
|
147 |
self::_renderSectionEnd();
|
@@ -158,23 +156,23 @@ class Visualizer_Render_Sidebar_Type_Candlestick extends Visualizer_Render_Sideb
|
|
158 |
*/
|
159 |
protected function _renderSeries( $index ) {
|
160 |
self::_renderSelectItem(
|
161 |
-
esc_html__( 'Visible In Legend',
|
162 |
'series[' . $index . '][visibleInLegend]',
|
163 |
-
isset( $this->series[$index]['visibleInLegend'] ) ? $this->series[$index]['visibleInLegend'] : '',
|
164 |
array(
|
165 |
'' => '',
|
166 |
-
'0' => esc_html__( 'No',
|
167 |
-
'1' => esc_html__( 'Yes',
|
168 |
),
|
169 |
-
esc_html__( 'Determines whether the series has to be presented in the legend or not.',
|
170 |
);
|
171 |
|
172 |
self::_renderColorPickerItem(
|
173 |
-
esc_html__( 'Color',
|
174 |
'series[' . $index . '][color]',
|
175 |
-
isset( $this->series[$index]['color'] ) ? $this->series[$index]['color'] : null,
|
176 |
null
|
177 |
);
|
178 |
}
|
179 |
|
180 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for candlestick chart sidebar settings.
|
24 |
*
|
53 |
* @access protected
|
54 |
*/
|
55 |
protected function _renderLineSettings() {
|
56 |
+
self::_renderGroupStart( esc_html__( 'Candles Settings', 'visualizer' ) );
|
57 |
self::_renderSectionStart();
|
58 |
self::_renderSelectItem(
|
59 |
+
esc_html__( 'Focus Target', 'visualizer' ),
|
60 |
'focusTarget',
|
61 |
$this->focusTarget,
|
62 |
array(
|
63 |
'' => '',
|
64 |
+
'datum' => esc_html__( 'Focus on a single data point.', 'visualizer' ),
|
65 |
+
'category' => esc_html__( 'Focus on a grouping of all data points along the major axis.', 'visualizer' ),
|
66 |
),
|
67 |
+
esc_html__( 'The type of the entity that receives focus on mouse hover. Also affects which entity is selected by mouse click.', 'visualizer' )
|
68 |
);
|
69 |
|
70 |
echo '<div class="section-delimiter"></div>';
|
71 |
|
72 |
self::_renderSelectItem(
|
73 |
+
esc_html__( 'Selection Mode', 'visualizer' ),
|
74 |
'selectionMode',
|
75 |
$this->selectionMode,
|
76 |
array(
|
77 |
'' => '',
|
78 |
+
'single' => esc_html__( 'Single data point', 'visualizer' ),
|
79 |
+
'multiple' => esc_html__( 'Multiple data points', 'visualizer' ),
|
80 |
),
|
81 |
+
esc_html__( 'Determines how many data points an user can select on a chart.', 'visualizer' )
|
82 |
);
|
83 |
|
84 |
self::_renderSelectItem(
|
85 |
+
esc_html__( 'Aggregation Target', 'visualizer' ),
|
86 |
'aggregationTarget',
|
87 |
$this->aggregationTarget,
|
88 |
array(
|
89 |
'' => '',
|
90 |
+
'category' => esc_html__( 'Group selected data by x-value', 'visualizer' ),
|
91 |
+
'series' => esc_html__( 'Group selected data by series', 'visualizer' ),
|
92 |
+
'auto' => esc_html__( 'Group selected data by x-value if all selections have the same x-value, and by series otherwise', 'visualizer' ),
|
93 |
+
'none' => esc_html__( 'Show only one tooltip per selection', 'visualizer' ),
|
94 |
),
|
95 |
+
esc_html__( 'Determines how multiple data selections are rolled up into tooltips. To make it working you need to set multiple selection mode and tooltip trigger to display it when an user selects an element.', 'visualizer' )
|
96 |
);
|
97 |
self::_renderSectionEnd();
|
98 |
|
99 |
+
self::_renderSectionStart( esc_html__( 'Failing Candles', 'visualizer' ), false );
|
100 |
self::_renderTextItem(
|
101 |
+
esc_html__( 'Stroke Width', 'visualizer' ),
|
102 |
'candlestick[fallingColor][strokeWidth]',
|
103 |
isset( $this->candlestick['fallingColor']['strokeWidth'] ) ? $this->candlestick['fallingColor']['strokeWidth'] : null,
|
104 |
+
esc_html__( 'The stroke width of falling candles.', 'visualizer' ),
|
105 |
'2'
|
106 |
);
|
107 |
|
108 |
self::_renderColorPickerItem(
|
109 |
+
esc_html__( 'Stroke Color', 'visualizer' ),
|
110 |
'candlestick[fallingColor][stroke]',
|
111 |
+
! empty( $this->candlestick['fallingColor']['stroke'] ) ? $this->candlestick['fallingColor']['stroke'] : null,
|
112 |
null
|
113 |
);
|
114 |
|
115 |
self::_renderColorPickerItem(
|
116 |
+
esc_html__( 'Fill Color', 'visualizer' ),
|
117 |
'candlestick[fallingColor][fill]',
|
118 |
+
! empty( $this->candlestick['fallingColor']['fill'] ) ? $this->candlestick['fallingColor']['fill'] : null,
|
119 |
null
|
120 |
);
|
121 |
self::_renderSectionEnd();
|
122 |
|
123 |
+
self::_renderSectionStart( esc_html__( 'Rising Candles', 'visualizer' ), false );
|
124 |
self::_renderTextItem(
|
125 |
+
esc_html__( 'Stroke Width', 'visualizer' ),
|
126 |
'candlestick[risingColor][strokeWidth]',
|
127 |
isset( $this->candlestick['risingColor']['strokeWidth'] ) ? $this->candlestick['risingColor']['strokeWidth'] : null,
|
128 |
+
esc_html__( 'The stroke width of rising candles.', 'visualizer' ),
|
129 |
'2'
|
130 |
);
|
131 |
|
132 |
self::_renderColorPickerItem(
|
133 |
+
esc_html__( 'Stroke Color', 'visualizer' ),
|
134 |
'candlestick[risingColor][stroke]',
|
135 |
+
! empty( $this->candlestick['risingColor']['stroke'] ) ? $this->candlestick['risingColor']['stroke'] : null,
|
136 |
null
|
137 |
);
|
138 |
|
139 |
self::_renderColorPickerItem(
|
140 |
+
esc_html__( 'Fill Color', 'visualizer' ),
|
141 |
'candlestick[risingColor][fill]',
|
142 |
+
! empty( $this->candlestick['risingColor']['fill'] ) ? $this->candlestick['risingColor']['fill'] : null,
|
143 |
null
|
144 |
);
|
145 |
self::_renderSectionEnd();
|
156 |
*/
|
157 |
protected function _renderSeries( $index ) {
|
158 |
self::_renderSelectItem(
|
159 |
+
esc_html__( 'Visible In Legend', 'visualizer' ),
|
160 |
'series[' . $index . '][visibleInLegend]',
|
161 |
+
isset( $this->series[ $index ]['visibleInLegend'] ) ? $this->series[ $index ]['visibleInLegend'] : '',
|
162 |
array(
|
163 |
'' => '',
|
164 |
+
'0' => esc_html__( 'No', 'visualizer' ),
|
165 |
+
'1' => esc_html__( 'Yes', 'visualizer' ),
|
166 |
),
|
167 |
+
esc_html__( 'Determines whether the series has to be presented in the legend or not.', 'visualizer' )
|
168 |
);
|
169 |
|
170 |
self::_renderColorPickerItem(
|
171 |
+
esc_html__( 'Color', 'visualizer' ),
|
172 |
'series[' . $index . '][color]',
|
173 |
+
isset( $this->series[ $index ]['color'] ) ? $this->series[ $index ]['color'] : null,
|
174 |
null
|
175 |
);
|
176 |
}
|
177 |
|
178 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Column.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for column chart sidebar settings.
|
26 |
*
|
@@ -40,7 +38,7 @@ class Visualizer_Render_Sidebar_Type_Column extends Visualizer_Render_Sidebar_Co
|
|
40 |
* @access public
|
41 |
* @param array $data The data what has to be associated with this render.
|
42 |
*/
|
43 |
-
public function __construct( $data = array(
|
44 |
parent::__construct( $data );
|
45 |
|
46 |
// disable vertical gridlines settings
|
@@ -74,4 +72,4 @@ class Visualizer_Render_Sidebar_Type_Column extends Visualizer_Render_Sidebar_Co
|
|
74 |
$this->_renderViewSettings();
|
75 |
}
|
76 |
|
77 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for column chart sidebar settings.
|
24 |
*
|
38 |
* @access public
|
39 |
* @param array $data The data what has to be associated with this render.
|
40 |
*/
|
41 |
+
public function __construct( $data = array() ) {
|
42 |
parent::__construct( $data );
|
43 |
|
44 |
// disable vertical gridlines settings
|
72 |
$this->_renderViewSettings();
|
73 |
}
|
74 |
|
75 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Gauge.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for gauge chart sidebar settings.
|
26 |
*
|
@@ -55,12 +53,12 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
55 |
* @access protected
|
56 |
*/
|
57 |
protected function _renderGeneralSettings() {
|
58 |
-
self::_renderGroupStart( esc_html__( 'General Settings',
|
59 |
self::_renderSectionStart();
|
60 |
|
61 |
echo '<div class="section-item">';
|
62 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
63 |
-
echo '<b>', esc_html__( 'Min And Max Values',
|
64 |
|
65 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
66 |
echo '<tr>';
|
@@ -74,15 +72,15 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
74 |
echo '</table>';
|
75 |
|
76 |
echo '<p class="section-description">';
|
77 |
-
esc_html_e( 'The maximal and minimal values of the gauge.',
|
78 |
echo '</p>';
|
79 |
echo '</div>';
|
80 |
|
81 |
self::_renderTextItem(
|
82 |
-
esc_html__( 'Minor Ticks',
|
83 |
'minorTicks',
|
84 |
$this->minorTicks,
|
85 |
-
esc_html__( 'The number of minor tick section in each major tick section.',
|
86 |
2
|
87 |
);
|
88 |
|
@@ -100,13 +98,13 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
100 |
* @access protected
|
101 |
*/
|
102 |
protected function _renderGreenColorSettings() {
|
103 |
-
self::_renderGroupStart( esc_html__( 'Green Color',
|
104 |
self::_renderSectionStart();
|
105 |
-
self::_renderSectionDescription( esc_html__( 'Configure the green section of the gauge chart.',
|
106 |
|
107 |
echo '<div class="section-item">';
|
108 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
109 |
-
echo '<b>', esc_html__( 'From And To Range',
|
110 |
|
111 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
112 |
echo '<tr>';
|
@@ -120,12 +118,12 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
120 |
echo '</table>';
|
121 |
|
122 |
echo '<p class="section-description">';
|
123 |
-
esc_html_e( 'The lowest and highest values for a range marked by a green color.',
|
124 |
echo '</p>';
|
125 |
echo '</div>';
|
126 |
|
127 |
self::_renderColorPickerItem(
|
128 |
-
esc_html__( 'Green Color',
|
129 |
'greenColor',
|
130 |
$this->greenColor,
|
131 |
'#109618'
|
@@ -142,13 +140,13 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
142 |
* @access protected
|
143 |
*/
|
144 |
protected function _renderYellowColorSettings() {
|
145 |
-
self::_renderGroupStart( esc_html__( 'Yellow Color',
|
146 |
self::_renderSectionStart();
|
147 |
-
self::_renderSectionDescription( esc_html__( 'Configure the yellow section of the gauge chart.',
|
148 |
|
149 |
echo '<div class="section-item">';
|
150 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
151 |
-
echo '<b>', esc_html__( 'From And To Range',
|
152 |
|
153 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
154 |
echo '<tr>';
|
@@ -162,12 +160,12 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
162 |
echo '</table>';
|
163 |
|
164 |
echo '<p class="section-description">';
|
165 |
-
esc_html_e( 'The lowest and highest values for a range marked by a yellow color.',
|
166 |
echo '</p>';
|
167 |
echo '</div>';
|
168 |
|
169 |
self::_renderColorPickerItem(
|
170 |
-
esc_html__( 'Yellow Color',
|
171 |
'yellowColor',
|
172 |
$this->yellowColor,
|
173 |
'#FF9900'
|
@@ -184,13 +182,13 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
184 |
* @access protected
|
185 |
*/
|
186 |
protected function _renderRedColorSettings() {
|
187 |
-
self::_renderGroupStart( esc_html__( 'Red Color',
|
188 |
self::_renderSectionStart();
|
189 |
-
self::_renderSectionDescription( esc_html__( 'Configure the red section of the gauge chart.',
|
190 |
|
191 |
echo '<div class="section-item">';
|
192 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
193 |
-
echo '<b>', esc_html__( 'From And To Range',
|
194 |
|
195 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
196 |
echo '<tr>';
|
@@ -204,12 +202,12 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
204 |
echo '</table>';
|
205 |
|
206 |
echo '<p class="section-description">';
|
207 |
-
esc_html_e( 'The lowest and highest values for a range marked by a red color.',
|
208 |
echo '</p>';
|
209 |
echo '</div>';
|
210 |
|
211 |
self::_renderColorPickerItem(
|
212 |
-
esc_html__( 'Red Color',
|
213 |
'redColor',
|
214 |
$this->redColor,
|
215 |
'#DC3912'
|
@@ -226,13 +224,13 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
226 |
* @access protected
|
227 |
*/
|
228 |
protected function _renderViewSettings() {
|
229 |
-
self::_renderGroupStart( esc_html__( 'Layout & Chart Area',
|
230 |
self::_renderSectionStart();
|
231 |
-
self::_renderSectionDescription( esc_html__( 'Configure the total size of the chart. Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.',
|
232 |
|
233 |
echo '<div class="section-item">';
|
234 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
235 |
-
echo '<b>', esc_html__( 'Width And Height Of Chart',
|
236 |
|
237 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
238 |
echo '<tr>';
|
@@ -246,11 +244,11 @@ class Visualizer_Render_Sidebar_Type_Gauge extends Visualizer_Render_Sidebar {
|
|
246 |
echo '</table>';
|
247 |
|
248 |
echo '<p class="section-description">';
|
249 |
-
esc_html_e( 'Determines the total width and height of the chart.',
|
250 |
echo '</p>';
|
251 |
echo '</div>';
|
252 |
self::_renderSectionEnd();
|
253 |
self::_renderGroupEnd();
|
254 |
}
|
255 |
|
256 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for gauge chart sidebar settings.
|
24 |
*
|
53 |
* @access protected
|
54 |
*/
|
55 |
protected function _renderGeneralSettings() {
|
56 |
+
self::_renderGroupStart( esc_html__( 'General Settings', 'visualizer' ) );
|
57 |
self::_renderSectionStart();
|
58 |
|
59 |
echo '<div class="section-item">';
|
60 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
61 |
+
echo '<b>', esc_html__( 'Min And Max Values', 'visualizer' ), '</b>';
|
62 |
|
63 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
64 |
echo '<tr>';
|
72 |
echo '</table>';
|
73 |
|
74 |
echo '<p class="section-description">';
|
75 |
+
esc_html_e( 'The maximal and minimal values of the gauge.', 'visualizer' );
|
76 |
echo '</p>';
|
77 |
echo '</div>';
|
78 |
|
79 |
self::_renderTextItem(
|
80 |
+
esc_html__( 'Minor Ticks', 'visualizer' ),
|
81 |
'minorTicks',
|
82 |
$this->minorTicks,
|
83 |
+
esc_html__( 'The number of minor tick section in each major tick section.', 'visualizer' ),
|
84 |
2
|
85 |
);
|
86 |
|
98 |
* @access protected
|
99 |
*/
|
100 |
protected function _renderGreenColorSettings() {
|
101 |
+
self::_renderGroupStart( esc_html__( 'Green Color', 'visualizer' ) );
|
102 |
self::_renderSectionStart();
|
103 |
+
self::_renderSectionDescription( esc_html__( 'Configure the green section of the gauge chart.', 'visualizer' ) );
|
104 |
|
105 |
echo '<div class="section-item">';
|
106 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
107 |
+
echo '<b>', esc_html__( 'From And To Range', 'visualizer' ), '</b>';
|
108 |
|
109 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
110 |
echo '<tr>';
|
118 |
echo '</table>';
|
119 |
|
120 |
echo '<p class="section-description">';
|
121 |
+
esc_html_e( 'The lowest and highest values for a range marked by a green color.', 'visualizer' );
|
122 |
echo '</p>';
|
123 |
echo '</div>';
|
124 |
|
125 |
self::_renderColorPickerItem(
|
126 |
+
esc_html__( 'Green Color', 'visualizer' ),
|
127 |
'greenColor',
|
128 |
$this->greenColor,
|
129 |
'#109618'
|
140 |
* @access protected
|
141 |
*/
|
142 |
protected function _renderYellowColorSettings() {
|
143 |
+
self::_renderGroupStart( esc_html__( 'Yellow Color', 'visualizer' ) );
|
144 |
self::_renderSectionStart();
|
145 |
+
self::_renderSectionDescription( esc_html__( 'Configure the yellow section of the gauge chart.', 'visualizer' ) );
|
146 |
|
147 |
echo '<div class="section-item">';
|
148 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
149 |
+
echo '<b>', esc_html__( 'From And To Range', 'visualizer' ), '</b>';
|
150 |
|
151 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
152 |
echo '<tr>';
|
160 |
echo '</table>';
|
161 |
|
162 |
echo '<p class="section-description">';
|
163 |
+
esc_html_e( 'The lowest and highest values for a range marked by a yellow color.', 'visualizer' );
|
164 |
echo '</p>';
|
165 |
echo '</div>';
|
166 |
|
167 |
self::_renderColorPickerItem(
|
168 |
+
esc_html__( 'Yellow Color', 'visualizer' ),
|
169 |
'yellowColor',
|
170 |
$this->yellowColor,
|
171 |
'#FF9900'
|
182 |
* @access protected
|
183 |
*/
|
184 |
protected function _renderRedColorSettings() {
|
185 |
+
self::_renderGroupStart( esc_html__( 'Red Color', 'visualizer' ) );
|
186 |
self::_renderSectionStart();
|
187 |
+
self::_renderSectionDescription( esc_html__( 'Configure the red section of the gauge chart.', 'visualizer' ) );
|
188 |
|
189 |
echo '<div class="section-item">';
|
190 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
191 |
+
echo '<b>', esc_html__( 'From And To Range', 'visualizer' ), '</b>';
|
192 |
|
193 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
194 |
echo '<tr>';
|
202 |
echo '</table>';
|
203 |
|
204 |
echo '<p class="section-description">';
|
205 |
+
esc_html_e( 'The lowest and highest values for a range marked by a red color.', 'visualizer' );
|
206 |
echo '</p>';
|
207 |
echo '</div>';
|
208 |
|
209 |
self::_renderColorPickerItem(
|
210 |
+
esc_html__( 'Red Color', 'visualizer' ),
|
211 |
'redColor',
|
212 |
$this->redColor,
|
213 |
'#DC3912'
|
224 |
* @access protected
|
225 |
*/
|
226 |
protected function _renderViewSettings() {
|
227 |
+
self::_renderGroupStart( esc_html__( 'Layout & Chart Area', 'visualizer' ) );
|
228 |
self::_renderSectionStart();
|
229 |
+
self::_renderSectionDescription( esc_html__( 'Configure the total size of the chart. Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.', 'visualizer' ) );
|
230 |
|
231 |
echo '<div class="section-item">';
|
232 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
233 |
+
echo '<b>', esc_html__( 'Width And Height Of Chart', 'visualizer' ), '</b>';
|
234 |
|
235 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
236 |
echo '<tr>';
|
244 |
echo '</table>';
|
245 |
|
246 |
echo '<p class="section-description">';
|
247 |
+
esc_html_e( 'Determines the total width and height of the chart.', 'visualizer' );
|
248 |
echo '</p>';
|
249 |
echo '</div>';
|
250 |
self::_renderSectionEnd();
|
251 |
self::_renderGroupEnd();
|
252 |
}
|
253 |
|
254 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Geo.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for geo chart sidebar settings.
|
26 |
*
|
@@ -55,20 +53,20 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
55 |
* @access protected
|
56 |
*/
|
57 |
protected function _renderMapSettings() {
|
58 |
-
self::_renderGroupStart( esc_html__( 'Map Settings',
|
59 |
-
self::_renderSectionStart( esc_html__( 'Region',
|
60 |
self::_renderSectionDescription(
|
61 |
-
esc_html__( 'Configure the region area to display on the map. (Surrounding areas will be displayed as well.) Can be one of the following:' ) .
|
62 |
'<ul>' .
|
63 |
-
'<li>' . esc_html__( "'world' - A map of the entire world.",
|
64 |
-
'<li>' . sprintf( esc_html__( "A continent or a sub-continent, specified by its %s code, e.g., '011' for Western Africa.",
|
65 |
-
'<li>' . sprintf( esc_html__( "A country, specified by its %s code, e.g., 'AU' for Australia.",
|
66 |
-
'<li>' . sprintf( esc_html__( "A state in the United States, specified by its %s code, e.g., 'US-AL' for Alabama. Note that the resolution option must be set to either 'provinces' or 'metros'.",
|
67 |
'</ul>'
|
68 |
);
|
69 |
|
70 |
self::_renderTextItem(
|
71 |
-
esc_html__( 'Region',
|
72 |
'region',
|
73 |
$this->region,
|
74 |
'',
|
@@ -76,56 +74,56 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
76 |
);
|
77 |
|
78 |
self::_renderSectionEnd();
|
79 |
-
self::_renderSectionStart( esc_html__( 'Resolution',
|
80 |
|
81 |
self::_renderSectionDescription(
|
82 |
-
esc_html__( 'The resolution of the map borders. Choose one of the following values:' ) .
|
83 |
'<ul>' .
|
84 |
-
'<li>' . esc_html__( "'countries' - Supported for all regions, except for US state regions.",
|
85 |
-
'<li>' . esc_html__( "'provinces' - Supported only for country regions and US state regions. Not supported for all countries; please test a country to see whether this option is supported.",
|
86 |
-
'<li>' . esc_html__( "'metros' - Supported for the US country region and US state regions only.",
|
87 |
'</ul>'
|
88 |
);
|
89 |
|
90 |
self::_renderSelectItem(
|
91 |
-
esc_html__( 'Resolution',
|
92 |
'resolution',
|
93 |
$this->resolution,
|
94 |
array(
|
95 |
'' => '',
|
96 |
-
'countries' => esc_html__( 'Countries',
|
97 |
-
'provinces' => esc_html__( 'Provinces',
|
98 |
-
'metros' => esc_html__( 'Metros',
|
99 |
),
|
100 |
''
|
101 |
);
|
102 |
|
103 |
self::_renderSectionEnd();
|
104 |
-
self::_renderSectionStart( esc_html__( 'Display Mode',
|
105 |
|
106 |
self::_renderSectionDescription(
|
107 |
-
esc_html__( 'Determines which type of map this is. The following values are supported:' ) .
|
108 |
'<ul>' .
|
109 |
-
'<li>' . esc_html__( "'auto' - Choose based on the format of the data.",
|
110 |
-
'<li>' . esc_html__( "'regions' - This is a region map.",
|
111 |
-
'<li>' . esc_html__( "'markers' - This is a marker map.",
|
112 |
'</ul>'
|
113 |
);
|
114 |
|
115 |
self::_renderSelectItem(
|
116 |
-
esc_html__( 'Display Mode',
|
117 |
'displayMode',
|
118 |
$this->displayMode,
|
119 |
array(
|
120 |
'' => '',
|
121 |
-
'auto' => esc_html__( 'Auto',
|
122 |
-
'regions' => esc_html__( 'Regions',
|
123 |
-
'markers' => esc_html__( 'Markers',
|
124 |
),
|
125 |
''
|
126 |
);
|
127 |
self::_renderSectionEnd();
|
128 |
-
self::_renderSectionStart( esc_html__( 'Tooltip',
|
129 |
$this->_renderTooltipSettigns();
|
130 |
self::_renderSectionEnd();
|
131 |
self::_renderGroupEnd();
|
@@ -140,15 +138,15 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
140 |
*/
|
141 |
protected function _renderTooltipSettigns() {
|
142 |
self::_renderSelectItem(
|
143 |
-
esc_html__( 'Trigger',
|
144 |
'tooltip[trigger]',
|
145 |
isset( $this->tooltip['trigger'] ) ? $this->tooltip['trigger'] : null,
|
146 |
array(
|
147 |
'' => '',
|
148 |
-
'focus' => esc_html__( 'The tooltip will be displayed when the user hovers over an element',
|
149 |
-
'none' => esc_html__( 'The tooltip will not be displayed',
|
150 |
),
|
151 |
-
esc_html__( 'Determines the user interaction that causes the tooltip to be displayed.',
|
152 |
);
|
153 |
}
|
154 |
|
@@ -160,13 +158,13 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
160 |
* @access protected
|
161 |
*/
|
162 |
protected function _renderColorAxisSettings() {
|
163 |
-
self::_renderGroupStart( esc_html__( 'Color Axis',
|
164 |
self::_renderSectionStart();
|
165 |
-
self::_renderSectionDescription( esc_html__( 'Configure color axis gradient scale, minimum and maximun values and a color of the dateless regions.',
|
166 |
|
167 |
echo '<div class="section-item">';
|
168 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
169 |
-
echo '<b>', esc_html__( 'Minimum And Maximum Values',
|
170 |
|
171 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
172 |
echo '<tr>';
|
@@ -180,35 +178,35 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
180 |
echo '</table>';
|
181 |
|
182 |
echo '<p class="section-description">';
|
183 |
-
esc_html_e( 'Determines the minimum and maximum values of color axis.',
|
184 |
echo '</p>';
|
185 |
echo '</div>';
|
186 |
|
187 |
self::_renderColorPickerItem(
|
188 |
-
esc_html__( 'Minimum Value',
|
189 |
'colorAxis[colors][]',
|
190 |
-
!empty( $this->colorAxis['color'][0] ) ? $this->colorAxis['color'][0] : null,
|
191 |
'#efe6dc'
|
192 |
);
|
193 |
|
194 |
self::_renderColorPickerItem(
|
195 |
-
esc_html__( 'Intermediate Value',
|
196 |
'colorAxis[colors][]',
|
197 |
-
!empty( $this->colorAxis['color'][1] ) ? $this->colorAxis['color'][1] : null,
|
198 |
'#82bf7c'
|
199 |
);
|
200 |
|
201 |
self::_renderColorPickerItem(
|
202 |
-
esc_html__( 'Maximum Value',
|
203 |
'colorAxis[colors][]',
|
204 |
-
!empty( $this->colorAxis['color'][2] ) ? $this->colorAxis['color'][2] : null,
|
205 |
'#109618'
|
206 |
);
|
207 |
|
208 |
self::_renderColorPickerItem(
|
209 |
-
esc_html__( 'Dateless Region',
|
210 |
'datalessRegionColor',
|
211 |
-
!empty( $this->datalessRegionColor ) ? $this->datalessRegionColor : null,
|
212 |
null
|
213 |
);
|
214 |
|
@@ -224,13 +222,13 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
224 |
* @access protected
|
225 |
*/
|
226 |
protected function _renderSizeAxisSettings() {
|
227 |
-
self::_renderGroupStart( esc_html__( 'Size Axis',
|
228 |
self::_renderSectionStart();
|
229 |
-
self::_renderSectionDescription( esc_html__( 'Configure how values are associated with bubble size, minimum and maximun values and marker opacity setting.',
|
230 |
|
231 |
echo '<div class="section-item">';
|
232 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
233 |
-
echo '<b>', esc_html__( 'Minimum And Maximum Values',
|
234 |
|
235 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
236 |
echo '<tr>';
|
@@ -244,13 +242,13 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
244 |
echo '</table>';
|
245 |
|
246 |
echo '<p class="section-description">';
|
247 |
-
esc_html_e( 'Determines the minimum and maximum values of size axis.',
|
248 |
echo '</p>';
|
249 |
echo '</div>';
|
250 |
|
251 |
echo '<div class="section-item">';
|
252 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
253 |
-
echo '<b>', esc_html__( 'Minimum And Maximum Marker Radius',
|
254 |
|
255 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
256 |
echo '<tr>';
|
@@ -264,15 +262,15 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
264 |
echo '</table>';
|
265 |
|
266 |
echo '<p class="section-description">';
|
267 |
-
esc_html_e( 'Determines the radius of the smallest and largest possible bubbles, in pixels.',
|
268 |
echo '</p>';
|
269 |
echo '</div>';
|
270 |
|
271 |
self::_renderTextItem(
|
272 |
-
esc_html__( 'Marker Opacity',
|
273 |
'markerOpacity',
|
274 |
$this->markerOpacity,
|
275 |
-
esc_html__( 'The opacity of the markers, where 0.0 is fully transparent and 1.0 is fully opaque.',
|
276 |
'1.0'
|
277 |
);
|
278 |
|
@@ -290,23 +288,23 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
290 |
* @access protected
|
291 |
*/
|
292 |
protected function _renderMagnifyingGlassSettings() {
|
293 |
-
self::_renderGroupStart( esc_html__( 'Magnifying Glass',
|
294 |
self::_renderSectionStart();
|
295 |
-
self::_renderSectionDescription( esc_html__( 'Configure magnifying glass settings, which appears, when the user lingers over a cluttered marker. Note: this feature is not supported in browsers that do not support SVG, i.e. Internet Explorer version 8 or earlier.',
|
296 |
|
297 |
self::_renderSelectItem(
|
298 |
-
esc_html__( 'Enabled',
|
299 |
'magnifyingGlass[enable]',
|
300 |
isset( $this->magnifyingGlass['enable'] ) ? $this->magnifyingGlass['enable'] : '',
|
301 |
$this->_yesno,
|
302 |
-
esc_html__( 'If yes, when the user lingers over a cluttered marker, a magnifiying glass will be opened.',
|
303 |
);
|
304 |
|
305 |
self::_renderTextItem(
|
306 |
-
esc_html__( 'Zoom Factor',
|
307 |
'magnifyingGlass[zoomFactor]',
|
308 |
isset( $this->magnifyingGlass['zoomFactor'] ) ? $this->magnifyingGlass['zoomFactor'] : '',
|
309 |
-
esc_html__( 'The zoom factor of the magnifying glass. Can be any number greater than 0.',
|
310 |
'5.0'
|
311 |
);
|
312 |
self::_renderSectionEnd();
|
@@ -321,13 +319,13 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
321 |
* @access protected
|
322 |
*/
|
323 |
protected function _renderViewSettings() {
|
324 |
-
self::_renderGroupStart( esc_html__( 'Layout Settings',
|
325 |
self::_renderSectionStart();
|
326 |
-
self::_renderSectionDescription( esc_html__( 'Configure the total size of the chart. Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.',
|
327 |
|
328 |
echo '<div class="section-item">';
|
329 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
330 |
-
echo '<b>', esc_html__( 'Width And Height Of Chart',
|
331 |
|
332 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
333 |
echo '<tr>';
|
@@ -341,46 +339,46 @@ class Visualizer_Render_Sidebar_Type_Geo extends Visualizer_Render_Sidebar {
|
|
341 |
echo '</table>';
|
342 |
|
343 |
echo '<p class="section-description">';
|
344 |
-
esc_html_e( 'Determines the total width and height of the chart.',
|
345 |
echo '</p>';
|
346 |
echo '</div>';
|
347 |
|
348 |
self::_renderSelectItem(
|
349 |
-
esc_html__( 'Keep Aspect Ratio',
|
350 |
'keepAspectRatio',
|
351 |
$this->keepAspectRatio,
|
352 |
$this->_yesno,
|
353 |
-
esc_html__( 'If yes, the map will be drawn at the largest size that can fit inside the chart area at its natural aspect ratio. If only one of the width and height options is specified, the other one will be calculated according to the aspect ratio.',
|
354 |
-
esc_html__( 'If no, the map will be stretched to the exact size of the chart as specified by the width and height options.',
|
355 |
);
|
356 |
|
357 |
echo '<div class="section-delimiter"></div>';
|
358 |
|
359 |
-
self::_renderSectionDescription( esc_html__( 'Configure the background color for the main area of the chart and the chart border width and color.',
|
360 |
|
361 |
self::_renderTextItem(
|
362 |
-
esc_html__( 'Stroke Width',
|
363 |
'backgroundColor[strokeWidth]',
|
364 |
isset( $this->backgroundColor['strokeWidth'] ) ? $this->backgroundColor['strokeWidth'] : null,
|
365 |
-
esc_html__( 'The chart border width in pixels.',
|
366 |
'0'
|
367 |
);
|
368 |
|
369 |
self::_renderColorPickerItem(
|
370 |
-
esc_html__( 'Stroke Color',
|
371 |
'backgroundColor[stroke]',
|
372 |
-
!empty( $this->backgroundColor['stroke'] ) ? $this->backgroundColor['stroke'] : null,
|
373 |
'#666'
|
374 |
);
|
375 |
|
376 |
self::_renderColorPickerItem(
|
377 |
-
esc_html__( 'Background Color',
|
378 |
'backgroundColor[fill]',
|
379 |
-
!empty( $this->backgroundColor['fill'] ) ? $this->backgroundColor['fill'] : null,
|
380 |
'#fff'
|
381 |
);
|
382 |
self::_renderSectionEnd();
|
383 |
self::_renderGroupEnd();
|
384 |
}
|
385 |
|
386 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for geo chart sidebar settings.
|
24 |
*
|
53 |
* @access protected
|
54 |
*/
|
55 |
protected function _renderMapSettings() {
|
56 |
+
self::_renderGroupStart( esc_html__( 'Map Settings', 'visualizer' ) );
|
57 |
+
self::_renderSectionStart( esc_html__( 'Region', 'visualizer' ), false );
|
58 |
self::_renderSectionDescription(
|
59 |
+
esc_html__( 'Configure the region area to display on the map. (Surrounding areas will be displayed as well.) Can be one of the following:' , 'visualizer' ) .
|
60 |
'<ul>' .
|
61 |
+
'<li>' . esc_html__( "'world' - A map of the entire world.", 'visualizer' ) . '</li>' .
|
62 |
+
'<li>' . sprintf( esc_html__( "A continent or a sub-continent, specified by its %s code, e.g., '011' for Western Africa.", 'visualizer' ), '<a href="https://google-developers.appspot.com/chart/interactive/docs/gallery/geochart#Continent_Hierarchy" target="_blank">3-digit</a>' ) . '</li>' .
|
63 |
+
'<li>' . sprintf( esc_html__( "A country, specified by its %s code, e.g., 'AU' for Australia.", 'visualizer' ), '<a href="http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2" target="_blank">ISO 3166-1 alpha-2</a>' ) . '</li>' .
|
64 |
+
'<li>' . sprintf( esc_html__( "A state in the United States, specified by its %s code, e.g., 'US-AL' for Alabama. Note that the resolution option must be set to either 'provinces' or 'metros'.", 'visualizer' ), '<a href="http://en.wikipedia.org/wiki/ISO_3166-2:US" target="_blank">ISO 3166-2:US</a>' ) . '</li>' .
|
65 |
'</ul>'
|
66 |
);
|
67 |
|
68 |
self::_renderTextItem(
|
69 |
+
esc_html__( 'Region', 'visualizer' ),
|
70 |
'region',
|
71 |
$this->region,
|
72 |
'',
|
74 |
);
|
75 |
|
76 |
self::_renderSectionEnd();
|
77 |
+
self::_renderSectionStart( esc_html__( 'Resolution', 'visualizer' ), false );
|
78 |
|
79 |
self::_renderSectionDescription(
|
80 |
+
esc_html__( 'The resolution of the map borders. Choose one of the following values:', 'visualizer' ) .
|
81 |
'<ul>' .
|
82 |
+
'<li>' . esc_html__( "'countries' - Supported for all regions, except for US state regions.", 'visualizer' ) . '</li>' .
|
83 |
+
'<li>' . esc_html__( "'provinces' - Supported only for country regions and US state regions. Not supported for all countries; please test a country to see whether this option is supported.", 'visualizer' ) . '</li>' .
|
84 |
+
'<li>' . esc_html__( "'metros' - Supported for the US country region and US state regions only.", 'visualizer' ) . '</li>' .
|
85 |
'</ul>'
|
86 |
);
|
87 |
|
88 |
self::_renderSelectItem(
|
89 |
+
esc_html__( 'Resolution', 'visualizer' ),
|
90 |
'resolution',
|
91 |
$this->resolution,
|
92 |
array(
|
93 |
'' => '',
|
94 |
+
'countries' => esc_html__( 'Countries', 'visualizer' ),
|
95 |
+
'provinces' => esc_html__( 'Provinces', 'visualizer' ),
|
96 |
+
'metros' => esc_html__( 'Metros', 'visualizer' ),
|
97 |
),
|
98 |
''
|
99 |
);
|
100 |
|
101 |
self::_renderSectionEnd();
|
102 |
+
self::_renderSectionStart( esc_html__( 'Display Mode', 'visualizer' ), false );
|
103 |
|
104 |
self::_renderSectionDescription(
|
105 |
+
esc_html__( 'Determines which type of map this is. The following values are supported:', 'visualizer' ) .
|
106 |
'<ul>' .
|
107 |
+
'<li>' . esc_html__( "'auto' - Choose based on the format of the data.", 'visualizer' ) . '</li>' .
|
108 |
+
'<li>' . esc_html__( "'regions' - This is a region map.", 'visualizer' ) . '</li>' .
|
109 |
+
'<li>' . esc_html__( "'markers' - This is a marker map.", 'visualizer' ) . '</li>' .
|
110 |
'</ul>'
|
111 |
);
|
112 |
|
113 |
self::_renderSelectItem(
|
114 |
+
esc_html__( 'Display Mode', 'visualizer' ),
|
115 |
'displayMode',
|
116 |
$this->displayMode,
|
117 |
array(
|
118 |
'' => '',
|
119 |
+
'auto' => esc_html__( 'Auto', 'visualizer' ),
|
120 |
+
'regions' => esc_html__( 'Regions', 'visualizer' ),
|
121 |
+
'markers' => esc_html__( 'Markers', 'visualizer' ),
|
122 |
),
|
123 |
''
|
124 |
);
|
125 |
self::_renderSectionEnd();
|
126 |
+
self::_renderSectionStart( esc_html__( 'Tooltip', 'visualizer' ), false );
|
127 |
$this->_renderTooltipSettigns();
|
128 |
self::_renderSectionEnd();
|
129 |
self::_renderGroupEnd();
|
138 |
*/
|
139 |
protected function _renderTooltipSettigns() {
|
140 |
self::_renderSelectItem(
|
141 |
+
esc_html__( 'Trigger', 'visualizer' ),
|
142 |
'tooltip[trigger]',
|
143 |
isset( $this->tooltip['trigger'] ) ? $this->tooltip['trigger'] : null,
|
144 |
array(
|
145 |
'' => '',
|
146 |
+
'focus' => esc_html__( 'The tooltip will be displayed when the user hovers over an element', 'visualizer' ),
|
147 |
+
'none' => esc_html__( 'The tooltip will not be displayed', 'visualizer' ),
|
148 |
),
|
149 |
+
esc_html__( 'Determines the user interaction that causes the tooltip to be displayed.', 'visualizer' )
|
150 |
);
|
151 |
}
|
152 |
|
158 |
* @access protected
|
159 |
*/
|
160 |
protected function _renderColorAxisSettings() {
|
161 |
+
self::_renderGroupStart( esc_html__( 'Color Axis', 'visualizer' ) );
|
162 |
self::_renderSectionStart();
|
163 |
+
self::_renderSectionDescription( esc_html__( 'Configure color axis gradient scale, minimum and maximun values and a color of the dateless regions.', 'visualizer' ) );
|
164 |
|
165 |
echo '<div class="section-item">';
|
166 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
167 |
+
echo '<b>', esc_html__( 'Minimum And Maximum Values', 'visualizer' ), '</b>';
|
168 |
|
169 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
170 |
echo '<tr>';
|
178 |
echo '</table>';
|
179 |
|
180 |
echo '<p class="section-description">';
|
181 |
+
esc_html_e( 'Determines the minimum and maximum values of color axis.', 'visualizer' );
|
182 |
echo '</p>';
|
183 |
echo '</div>';
|
184 |
|
185 |
self::_renderColorPickerItem(
|
186 |
+
esc_html__( 'Minimum Value', 'visualizer' ),
|
187 |
'colorAxis[colors][]',
|
188 |
+
! empty( $this->colorAxis['color'][0] ) ? $this->colorAxis['color'][0] : null,
|
189 |
'#efe6dc'
|
190 |
);
|
191 |
|
192 |
self::_renderColorPickerItem(
|
193 |
+
esc_html__( 'Intermediate Value', 'visualizer' ),
|
194 |
'colorAxis[colors][]',
|
195 |
+
! empty( $this->colorAxis['color'][1] ) ? $this->colorAxis['color'][1] : null,
|
196 |
'#82bf7c'
|
197 |
);
|
198 |
|
199 |
self::_renderColorPickerItem(
|
200 |
+
esc_html__( 'Maximum Value', 'visualizer' ),
|
201 |
'colorAxis[colors][]',
|
202 |
+
! empty( $this->colorAxis['color'][2] ) ? $this->colorAxis['color'][2] : null,
|
203 |
'#109618'
|
204 |
);
|
205 |
|
206 |
self::_renderColorPickerItem(
|
207 |
+
esc_html__( 'Dateless Region', 'visualizer' ),
|
208 |
'datalessRegionColor',
|
209 |
+
! empty( $this->datalessRegionColor ) ? $this->datalessRegionColor : null,
|
210 |
null
|
211 |
);
|
212 |
|
222 |
* @access protected
|
223 |
*/
|
224 |
protected function _renderSizeAxisSettings() {
|
225 |
+
self::_renderGroupStart( esc_html__( 'Size Axis', 'visualizer' ) );
|
226 |
self::_renderSectionStart();
|
227 |
+
self::_renderSectionDescription( esc_html__( 'Configure how values are associated with bubble size, minimum and maximun values and marker opacity setting.', 'visualizer' ) );
|
228 |
|
229 |
echo '<div class="section-item">';
|
230 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
231 |
+
echo '<b>', esc_html__( 'Minimum And Maximum Values', 'visualizer' ), '</b>';
|
232 |
|
233 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
234 |
echo '<tr>';
|
242 |
echo '</table>';
|
243 |
|
244 |
echo '<p class="section-description">';
|
245 |
+
esc_html_e( 'Determines the minimum and maximum values of size axis.', 'visualizer' );
|
246 |
echo '</p>';
|
247 |
echo '</div>';
|
248 |
|
249 |
echo '<div class="section-item">';
|
250 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
251 |
+
echo '<b>', esc_html__( 'Minimum And Maximum Marker Radius', 'visualizer' ), '</b>';
|
252 |
|
253 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
254 |
echo '<tr>';
|
262 |
echo '</table>';
|
263 |
|
264 |
echo '<p class="section-description">';
|
265 |
+
esc_html_e( 'Determines the radius of the smallest and largest possible bubbles, in pixels.', 'visualizer' );
|
266 |
echo '</p>';
|
267 |
echo '</div>';
|
268 |
|
269 |
self::_renderTextItem(
|
270 |
+
esc_html__( 'Marker Opacity', 'visualizer' ),
|
271 |
'markerOpacity',
|
272 |
$this->markerOpacity,
|
273 |
+
esc_html__( 'The opacity of the markers, where 0.0 is fully transparent and 1.0 is fully opaque.', 'visualizer' ),
|
274 |
'1.0'
|
275 |
);
|
276 |
|
288 |
* @access protected
|
289 |
*/
|
290 |
protected function _renderMagnifyingGlassSettings() {
|
291 |
+
self::_renderGroupStart( esc_html__( 'Magnifying Glass', 'visualizer' ) );
|
292 |
self::_renderSectionStart();
|
293 |
+
self::_renderSectionDescription( esc_html__( 'Configure magnifying glass settings, which appears, when the user lingers over a cluttered marker. Note: this feature is not supported in browsers that do not support SVG, i.e. Internet Explorer version 8 or earlier.', 'visualizer' ) );
|
294 |
|
295 |
self::_renderSelectItem(
|
296 |
+
esc_html__( 'Enabled', 'visualizer' ),
|
297 |
'magnifyingGlass[enable]',
|
298 |
isset( $this->magnifyingGlass['enable'] ) ? $this->magnifyingGlass['enable'] : '',
|
299 |
$this->_yesno,
|
300 |
+
esc_html__( 'If yes, when the user lingers over a cluttered marker, a magnifiying glass will be opened.', 'visualizer' )
|
301 |
);
|
302 |
|
303 |
self::_renderTextItem(
|
304 |
+
esc_html__( 'Zoom Factor', 'visualizer' ),
|
305 |
'magnifyingGlass[zoomFactor]',
|
306 |
isset( $this->magnifyingGlass['zoomFactor'] ) ? $this->magnifyingGlass['zoomFactor'] : '',
|
307 |
+
esc_html__( 'The zoom factor of the magnifying glass. Can be any number greater than 0.', 'visualizer' ),
|
308 |
'5.0'
|
309 |
);
|
310 |
self::_renderSectionEnd();
|
319 |
* @access protected
|
320 |
*/
|
321 |
protected function _renderViewSettings() {
|
322 |
+
self::_renderGroupStart( esc_html__( 'Layout Settings', 'visualizer' ) );
|
323 |
self::_renderSectionStart();
|
324 |
+
self::_renderSectionDescription( esc_html__( 'Configure the total size of the chart. Two formats are supported: a number, or a number followed by %. A simple number is a value in pixels; a number followed by % is a percentage.', 'visualizer' ) );
|
325 |
|
326 |
echo '<div class="section-item">';
|
327 |
echo '<a class="more-info" href="javascript:;">[?]</a>';
|
328 |
+
echo '<b>', esc_html__( 'Width And Height Of Chart', 'visualizer' ), '</b>';
|
329 |
|
330 |
echo '<table class="section-table" cellspacing="0" cellpadding="0" border="0">';
|
331 |
echo '<tr>';
|
339 |
echo '</table>';
|
340 |
|
341 |
echo '<p class="section-description">';
|
342 |
+
esc_html_e( 'Determines the total width and height of the chart.', 'visualizer' );
|
343 |
echo '</p>';
|
344 |
echo '</div>';
|
345 |
|
346 |
self::_renderSelectItem(
|
347 |
+
esc_html__( 'Keep Aspect Ratio', 'visualizer' ),
|
348 |
'keepAspectRatio',
|
349 |
$this->keepAspectRatio,
|
350 |
$this->_yesno,
|
351 |
+
esc_html__( 'If yes, the map will be drawn at the largest size that can fit inside the chart area at its natural aspect ratio. If only one of the width and height options is specified, the other one will be calculated according to the aspect ratio.', 'visualizer' ) . '<br><br>' .
|
352 |
+
esc_html__( 'If no, the map will be stretched to the exact size of the chart as specified by the width and height options.', 'visualizer' )
|
353 |
);
|
354 |
|
355 |
echo '<div class="section-delimiter"></div>';
|
356 |
|
357 |
+
self::_renderSectionDescription( esc_html__( 'Configure the background color for the main area of the chart and the chart border width and color.', 'visualizer' ) );
|
358 |
|
359 |
self::_renderTextItem(
|
360 |
+
esc_html__( 'Stroke Width', 'visualizer' ),
|
361 |
'backgroundColor[strokeWidth]',
|
362 |
isset( $this->backgroundColor['strokeWidth'] ) ? $this->backgroundColor['strokeWidth'] : null,
|
363 |
+
esc_html__( 'The chart border width in pixels.', 'visualizer' ),
|
364 |
'0'
|
365 |
);
|
366 |
|
367 |
self::_renderColorPickerItem(
|
368 |
+
esc_html__( 'Stroke Color', 'visualizer' ),
|
369 |
'backgroundColor[stroke]',
|
370 |
+
! empty( $this->backgroundColor['stroke'] ) ? $this->backgroundColor['stroke'] : null,
|
371 |
'#666'
|
372 |
);
|
373 |
|
374 |
self::_renderColorPickerItem(
|
375 |
+
esc_html__( 'Background Color', 'visualizer' ),
|
376 |
'backgroundColor[fill]',
|
377 |
+
! empty( $this->backgroundColor['fill'] ) ? $this->backgroundColor['fill'] : null,
|
378 |
'#fff'
|
379 |
);
|
380 |
self::_renderSectionEnd();
|
381 |
self::_renderGroupEnd();
|
382 |
}
|
383 |
|
384 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Line.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for line chart sidebar settings.
|
26 |
*
|
@@ -60,12 +58,12 @@ class Visualizer_Render_Sidebar_Type_Line extends Visualizer_Render_Sidebar_Line
|
|
60 |
echo '<div class="section-delimiter"></div>';
|
61 |
|
62 |
self::_renderSelectItem(
|
63 |
-
esc_html__( 'Interpolate Nulls',
|
64 |
'interpolateNulls',
|
65 |
$this->interpolateNulls,
|
66 |
$this->_yesno,
|
67 |
-
esc_html__( 'Whether to guess the value of missing points. If yes, it will guess the value of any missing data based on neighboring points. If no, it will leave a break in the line at the unknown point.',
|
68 |
);
|
69 |
}
|
70 |
|
71 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for line chart sidebar settings.
|
24 |
*
|
58 |
echo '<div class="section-delimiter"></div>';
|
59 |
|
60 |
self::_renderSelectItem(
|
61 |
+
esc_html__( 'Interpolate Nulls', 'visualizer' ),
|
62 |
'interpolateNulls',
|
63 |
$this->interpolateNulls,
|
64 |
$this->_yesno,
|
65 |
+
esc_html__( 'Whether to guess the value of missing points. If yes, it will guess the value of any missing data based on neighboring points. If no, it will leave a break in the line at the unknown point.', 'visualizer' )
|
66 |
);
|
67 |
}
|
68 |
|
69 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Pie.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for pie chart sidebar settings.
|
26 |
*
|
@@ -55,56 +53,56 @@ class Visualizer_Render_Sidebar_Type_Pie extends Visualizer_Render_Sidebar {
|
|
55 |
* @access protected
|
56 |
*/
|
57 |
protected function _renderPieSettings() {
|
58 |
-
self::_renderGroupStart( esc_html__( 'Pie Settings',
|
59 |
self::_renderSectionStart();
|
60 |
self::_renderSelectItem(
|
61 |
-
esc_html__( 'Is 3D',
|
62 |
'is3D',
|
63 |
$this->is3D,
|
64 |
$this->_yesno,
|
65 |
-
esc_html__( 'If set to yes, displays a three-dimensional chart.',
|
66 |
);
|
67 |
|
68 |
self::_renderSelectItem(
|
69 |
-
esc_html__( 'Reverse Categories',
|
70 |
'reverseCategories',
|
71 |
$this->reverseCategories,
|
72 |
$this->_yesno,
|
73 |
-
esc_html__( 'If set to yes, will draw slices counterclockwise.',
|
74 |
);
|
75 |
|
76 |
self::_renderSelectItem(
|
77 |
-
esc_html__( 'Slice Text',
|
78 |
'pieSliceText',
|
79 |
$this->pieSliceText,
|
80 |
array(
|
81 |
'' => '',
|
82 |
-
'percentage' => esc_html__( 'The percentage of the slice size out of the total',
|
83 |
-
'value' => esc_html__( 'The quantitative value of the slice',
|
84 |
-
'label' => esc_html__( 'The name of the slice',
|
85 |
-
'none' => esc_html__( 'No text is displayed',
|
86 |
),
|
87 |
-
esc_html__( 'The content of the text displayed on the slice.',
|
88 |
);
|
89 |
|
90 |
self::_renderTextItem(
|
91 |
-
esc_html__( 'Pie Hole',
|
92 |
'pieHole',
|
93 |
$this->pieHole,
|
94 |
-
esc_html__( 'If between 0 and 1, displays a donut chart. The hole with have a radius equal to number times the radius of the chart. Only applicable when the chart is two-dimensional.',
|
95 |
'0.0'
|
96 |
);
|
97 |
|
98 |
self::_renderTextItem(
|
99 |
-
esc_html__( 'Start Angle',
|
100 |
'pieStartAngle',
|
101 |
$this->pieStartAngle,
|
102 |
-
esc_html__( 'The angle, in degrees, to rotate the chart by. The default of 0 will orient the leftmost edge of the first slice directly up.',
|
103 |
0
|
104 |
);
|
105 |
|
106 |
self::_renderColorPickerItem(
|
107 |
-
esc_html__( 'Slice Border Color',
|
108 |
'pieSliceBorderColor',
|
109 |
$this->pieSliceBorderColor,
|
110 |
'#fff'
|
@@ -121,26 +119,26 @@ class Visualizer_Render_Sidebar_Type_Pie extends Visualizer_Render_Sidebar {
|
|
121 |
* @access protected
|
122 |
*/
|
123 |
protected function _renderResidueSettings() {
|
124 |
-
self::_renderGroupStart( esc_html__( 'Residue Settings',
|
125 |
self::_renderSectionStart();
|
126 |
self::_renderTextItem(
|
127 |
-
esc_html__( 'Visibility Threshold',
|
128 |
'sliceVisibilityThreshold',
|
129 |
$this->sliceVisibilityThreshold,
|
130 |
-
esc_html__( 'The slice relative part, below which a slice will not show individually. All slices that have not passed this threshold will be combined to a single slice, whose size is the sum of all their sizes. Default is not to show individually any slice which is smaller than half a degree.',
|
131 |
'0.001388889'
|
132 |
);
|
133 |
|
134 |
self::_renderTextItem(
|
135 |
-
esc_html__( 'Residue Slice Label',
|
136 |
'pieResidueSliceLabel',
|
137 |
$this->pieResidueSliceLabel,
|
138 |
-
esc_html__( 'A label for the combination slice that holds all slices below slice visibility threshold.' ),
|
139 |
-
esc_html__( 'Other',
|
140 |
);
|
141 |
|
142 |
self::_renderColorPickerItem(
|
143 |
-
esc_html__( 'Residue Slice Color',
|
144 |
'pieResidueSliceColor',
|
145 |
$this->pieResidueSliceColor,
|
146 |
'#ccc'
|
@@ -157,25 +155,25 @@ class Visualizer_Render_Sidebar_Type_Pie extends Visualizer_Render_Sidebar {
|
|
157 |
* @access protected
|
158 |
*/
|
159 |
protected function _renderSlicesSettings() {
|
160 |
-
self::_renderGroupStart( esc_html__( 'Slices Settings',
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
self::_renderGroupEnd();
|
180 |
}
|
181 |
|
@@ -190,17 +188,17 @@ class Visualizer_Render_Sidebar_Type_Pie extends Visualizer_Render_Sidebar {
|
|
190 |
parent::_renderTooltipSettigns();
|
191 |
|
192 |
self::_renderSelectItem(
|
193 |
-
esc_html__( 'Text',
|
194 |
'tooltip[text]',
|
195 |
isset( $this->tooltip['text'] ) ? $this->tooltip['text'] : null,
|
196 |
array(
|
197 |
'' => '',
|
198 |
-
'both' => esc_html__( 'Display both the absolute value of the slice and the percentage of the whole',
|
199 |
-
'value' => esc_html__( 'Display only the absolute value of the slice',
|
200 |
-
'percentage' => esc_html__( 'Display only the percentage of the whole represented by the slice',
|
201 |
),
|
202 |
-
esc_html__( 'Determines what information to display when the user hovers over a pie slice.',
|
203 |
);
|
204 |
}
|
205 |
|
206 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for pie chart sidebar settings.
|
24 |
*
|
53 |
* @access protected
|
54 |
*/
|
55 |
protected function _renderPieSettings() {
|
56 |
+
self::_renderGroupStart( esc_html__( 'Pie Settings', 'visualizer' ) );
|
57 |
self::_renderSectionStart();
|
58 |
self::_renderSelectItem(
|
59 |
+
esc_html__( 'Is 3D', 'visualizer' ),
|
60 |
'is3D',
|
61 |
$this->is3D,
|
62 |
$this->_yesno,
|
63 |
+
esc_html__( 'If set to yes, displays a three-dimensional chart.', 'visualizer' )
|
64 |
);
|
65 |
|
66 |
self::_renderSelectItem(
|
67 |
+
esc_html__( 'Reverse Categories', 'visualizer' ),
|
68 |
'reverseCategories',
|
69 |
$this->reverseCategories,
|
70 |
$this->_yesno,
|
71 |
+
esc_html__( 'If set to yes, will draw slices counterclockwise.', 'visualizer' )
|
72 |
);
|
73 |
|
74 |
self::_renderSelectItem(
|
75 |
+
esc_html__( 'Slice Text', 'visualizer' ),
|
76 |
'pieSliceText',
|
77 |
$this->pieSliceText,
|
78 |
array(
|
79 |
'' => '',
|
80 |
+
'percentage' => esc_html__( 'The percentage of the slice size out of the total', 'visualizer' ),
|
81 |
+
'value' => esc_html__( 'The quantitative value of the slice', 'visualizer' ),
|
82 |
+
'label' => esc_html__( 'The name of the slice', 'visualizer' ),
|
83 |
+
'none' => esc_html__( 'No text is displayed', 'visualizer' ),
|
84 |
),
|
85 |
+
esc_html__( 'The content of the text displayed on the slice.', 'visualizer' )
|
86 |
);
|
87 |
|
88 |
self::_renderTextItem(
|
89 |
+
esc_html__( 'Pie Hole', 'visualizer' ),
|
90 |
'pieHole',
|
91 |
$this->pieHole,
|
92 |
+
esc_html__( 'If between 0 and 1, displays a donut chart. The hole with have a radius equal to number times the radius of the chart. Only applicable when the chart is two-dimensional.', 'visualizer' ),
|
93 |
'0.0'
|
94 |
);
|
95 |
|
96 |
self::_renderTextItem(
|
97 |
+
esc_html__( 'Start Angle', 'visualizer' ),
|
98 |
'pieStartAngle',
|
99 |
$this->pieStartAngle,
|
100 |
+
esc_html__( 'The angle, in degrees, to rotate the chart by. The default of 0 will orient the leftmost edge of the first slice directly up.', 'visualizer' ),
|
101 |
0
|
102 |
);
|
103 |
|
104 |
self::_renderColorPickerItem(
|
105 |
+
esc_html__( 'Slice Border Color', 'visualizer' ),
|
106 |
'pieSliceBorderColor',
|
107 |
$this->pieSliceBorderColor,
|
108 |
'#fff'
|
119 |
* @access protected
|
120 |
*/
|
121 |
protected function _renderResidueSettings() {
|
122 |
+
self::_renderGroupStart( esc_html__( 'Residue Settings', 'visualizer' ) );
|
123 |
self::_renderSectionStart();
|
124 |
self::_renderTextItem(
|
125 |
+
esc_html__( 'Visibility Threshold', 'visualizer' ),
|
126 |
'sliceVisibilityThreshold',
|
127 |
$this->sliceVisibilityThreshold,
|
128 |
+
esc_html__( 'The slice relative part, below which a slice will not show individually. All slices that have not passed this threshold will be combined to a single slice, whose size is the sum of all their sizes. Default is not to show individually any slice which is smaller than half a degree.', 'visualizer' ),
|
129 |
'0.001388889'
|
130 |
);
|
131 |
|
132 |
self::_renderTextItem(
|
133 |
+
esc_html__( 'Residue Slice Label', 'visualizer' ),
|
134 |
'pieResidueSliceLabel',
|
135 |
$this->pieResidueSliceLabel,
|
136 |
+
esc_html__( 'A label for the combination slice that holds all slices below slice visibility threshold.', 'visualizer' ),
|
137 |
+
esc_html__( 'Other', 'visualizer' )
|
138 |
);
|
139 |
|
140 |
self::_renderColorPickerItem(
|
141 |
+
esc_html__( 'Residue Slice Color', 'visualizer' ),
|
142 |
'pieResidueSliceColor',
|
143 |
$this->pieResidueSliceColor,
|
144 |
'#ccc'
|
155 |
* @access protected
|
156 |
*/
|
157 |
protected function _renderSlicesSettings() {
|
158 |
+
self::_renderGroupStart( esc_html__( 'Slices Settings', 'visualizer' ) );
|
159 |
+
for ( $i = 0, $cnt = count( $this->__data ); $i < $cnt; $i++ ) {
|
160 |
+
self::_renderSectionStart( esc_html( $this->__data[ $i ][0] ), false );
|
161 |
+
self::_renderTextItem(
|
162 |
+
esc_html__( 'Slice Offset', 'visualizer' ),
|
163 |
+
'slices[' . $i . '][offset]',
|
164 |
+
isset( $this->slices[ $i ]['color'] ) ? $this->slices[ $i ]['color'] : null,
|
165 |
+
esc_html__( "How far to separate the slice from the rest of the pie, from 0.0 (not at all) to 1.0 (the pie's radius).", 'visualizer' ),
|
166 |
+
'0.0'
|
167 |
+
);
|
168 |
+
|
169 |
+
self::_renderColorPickerItem(
|
170 |
+
esc_html__( 'Slice Color', 'visualizer' ),
|
171 |
+
'slices[' . $i . '][color]',
|
172 |
+
isset( $this->slices[ $i ]['color'] ) ? $this->slices[ $i ]['color'] : null,
|
173 |
+
null
|
174 |
+
);
|
175 |
+
self::_renderSectionEnd();
|
176 |
+
}
|
177 |
self::_renderGroupEnd();
|
178 |
}
|
179 |
|
188 |
parent::_renderTooltipSettigns();
|
189 |
|
190 |
self::_renderSelectItem(
|
191 |
+
esc_html__( 'Text', 'visualizer' ),
|
192 |
'tooltip[text]',
|
193 |
isset( $this->tooltip['text'] ) ? $this->tooltip['text'] : null,
|
194 |
array(
|
195 |
'' => '',
|
196 |
+
'both' => esc_html__( 'Display both the absolute value of the slice and the percentage of the whole', 'visualizer' ),
|
197 |
+
'value' => esc_html__( 'Display only the absolute value of the slice', 'visualizer' ),
|
198 |
+
'percentage' => esc_html__( 'Display only the percentage of the whole represented by the slice', 'visualizer' ),
|
199 |
),
|
200 |
+
esc_html__( 'Determines what information to display when the user hovers over a pie slice.', 'visualizer' )
|
201 |
);
|
202 |
}
|
203 |
|
204 |
+
}
|
classes/Visualizer/Render/Sidebar/Type/Scatter.php
CHANGED
@@ -19,8 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
-
|
24 |
/**
|
25 |
* Class for scatter chart sidebar settings.
|
26 |
*
|
@@ -62,4 +60,4 @@ class Visualizer_Render_Sidebar_Type_Scatter extends Visualizer_Render_Sidebar_L
|
|
62 |
$this->_renderViewSettings();
|
63 |
}
|
64 |
|
65 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
|
|
22 |
/**
|
23 |
* Class for scatter chart sidebar settings.
|
24 |
*
|
60 |
$this->_renderViewSettings();
|
61 |
}
|
62 |
|
63 |
+
}
|
classes/Visualizer/Render/Templates.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Media view template rendering class.
|
25 |
*
|
@@ -66,10 +65,10 @@ class Visualizer_Render_Templates extends Visualizer_Render {
|
|
66 |
*/
|
67 |
protected function _renderLibraryChart() {
|
68 |
echo '<div class="visualizer-library-chart-footer visualizer-clearfix">';
|
69 |
-
echo '<a class="visualizer-library-chart-action visualizer-library-chart-delete" href="javascript:;" title="', esc_attr__( 'Delete',
|
70 |
-
echo '<a class="visualizer-library-chart-action visualizer-library-chart-insert" href="javascript:;" title="', esc_attr__( 'Insert',
|
71 |
|
72 |
-
echo '<span class="visualizer-library-chart-shortcode" title="', esc_attr__( 'Click to select',
|
73 |
echo '</div>';
|
74 |
}
|
75 |
|
@@ -83,7 +82,7 @@ class Visualizer_Render_Templates extends Visualizer_Render {
|
|
83 |
protected function _renderLibraryEmpty() {
|
84 |
echo '<div class="visualizer-library-chart">';
|
85 |
echo '<div class="visualizer-library-chart-canvas visualizer-library-nochart-canvas">';
|
86 |
-
echo '<div class="visualizer-library-notfound">', esc_html__( 'No charts found',
|
87 |
echo '</div>';
|
88 |
echo '<div class="visualizer-library-chart-footer visualizer-clearfix">';
|
89 |
echo '<span class="visualizer-library-chart-action visualizer-library-nochart-delete"></span>';
|
@@ -110,4 +109,4 @@ class Visualizer_Render_Templates extends Visualizer_Render {
|
|
110 |
}
|
111 |
}
|
112 |
|
113 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Media view template rendering class.
|
24 |
*
|
65 |
*/
|
66 |
protected function _renderLibraryChart() {
|
67 |
echo '<div class="visualizer-library-chart-footer visualizer-clearfix">';
|
68 |
+
echo '<a class="visualizer-library-chart-action visualizer-library-chart-delete" href="javascript:;" title="', esc_attr__( 'Delete', 'visualizer' ), '"></a>';
|
69 |
+
echo '<a class="visualizer-library-chart-action visualizer-library-chart-insert" href="javascript:;" title="', esc_attr__( 'Insert', 'visualizer' ), '"></a>';
|
70 |
|
71 |
+
echo '<span class="visualizer-library-chart-shortcode" title="', esc_attr__( 'Click to select', 'visualizer' ), '"> [visualizer id="{{data.id}}"] </span>';
|
72 |
echo '</div>';
|
73 |
}
|
74 |
|
82 |
protected function _renderLibraryEmpty() {
|
83 |
echo '<div class="visualizer-library-chart">';
|
84 |
echo '<div class="visualizer-library-chart-canvas visualizer-library-nochart-canvas">';
|
85 |
+
echo '<div class="visualizer-library-notfound">', esc_html__( 'No charts found', 'visualizer' ), '</div>';
|
86 |
echo '</div>';
|
87 |
echo '<div class="visualizer-library-chart-footer visualizer-clearfix">';
|
88 |
echo '<span class="visualizer-library-chart-action visualizer-library-nochart-delete"></span>';
|
109 |
}
|
110 |
}
|
111 |
|
112 |
+
}
|
classes/Visualizer/Source.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* The abstract class for source managers.
|
25 |
*
|
@@ -119,28 +118,28 @@ abstract class Visualizer_Source {
|
|
119 |
*/
|
120 |
protected function _normalizeData( $data ) {
|
121 |
// normalize values
|
122 |
-
//print_r($data);
|
123 |
foreach ( $this->_series as $i => $series ) {
|
124 |
// if no value exists for the seires, then add null
|
125 |
-
if ( !isset( $data[$i] ) ) {
|
126 |
-
$data[$i] = null;
|
127 |
}
|
128 |
|
129 |
-
if ( is_null( $data[$i] ) && !is_numeric($data[$i])) {
|
130 |
continue;
|
131 |
}
|
132 |
|
133 |
switch ( $series['type'] ) {
|
134 |
case 'number':
|
135 |
-
$data[$i] = ( is_numeric($data[$i]) ) ? floatval( $data[$i] ) : null;
|
136 |
break;
|
137 |
case 'boolean':
|
138 |
-
$data[$i] = !empty( $data[$i] ) ? filter_validate( $data[$i], FILTER_VALIDATE_BOOLEAN ) : null;
|
139 |
break;
|
140 |
case 'timeofday':
|
141 |
-
$date = new DateTime( '1984-03-16T' . $data[$i] );
|
142 |
if ( $date ) {
|
143 |
-
$data[$i] = array(
|
144 |
intval( $date->format( 'H' ) ),
|
145 |
intval( $date->format( 'i' ) ),
|
146 |
intval( $date->format( 's' ) ),
|
@@ -166,7 +165,7 @@ abstract class Visualizer_Source {
|
|
166 |
protected static function _validateTypes( $types ) {
|
167 |
$allowed_types = array( 'string', 'number', 'boolean', 'date', 'datetime', 'timeofday' );
|
168 |
foreach ( $types as $type ) {
|
169 |
-
if ( !in_array( $type, $allowed_types ) ) {
|
170 |
return false;
|
171 |
}
|
172 |
}
|
@@ -181,7 +180,7 @@ abstract class Visualizer_Source {
|
|
181 |
*
|
182 |
* @access public
|
183 |
* @param array $series The actual array of series.
|
184 |
-
* @param int
|
185 |
* @return array The re populated array of series or old one.
|
186 |
*/
|
187 |
public function repopulateSeries( $series, $chart_id ) {
|
@@ -195,11 +194,11 @@ abstract class Visualizer_Source {
|
|
195 |
*
|
196 |
* @access public
|
197 |
* @param array $data The actual array of data.
|
198 |
-
* @param int
|
199 |
* @return array The re populated array of data or old one.
|
200 |
*/
|
201 |
public function repopulateData( $data, $chart_id ) {
|
202 |
return $data;
|
203 |
}
|
204 |
|
205 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* The abstract class for source managers.
|
24 |
*
|
118 |
*/
|
119 |
protected function _normalizeData( $data ) {
|
120 |
// normalize values
|
121 |
+
// print_r($data);
|
122 |
foreach ( $this->_series as $i => $series ) {
|
123 |
// if no value exists for the seires, then add null
|
124 |
+
if ( ! isset( $data[ $i ] ) ) {
|
125 |
+
$data[ $i ] = null;
|
126 |
}
|
127 |
|
128 |
+
if ( is_null( $data[ $i ] ) && ! is_numeric( $data[ $i ] ) ) {
|
129 |
continue;
|
130 |
}
|
131 |
|
132 |
switch ( $series['type'] ) {
|
133 |
case 'number':
|
134 |
+
$data[ $i ] = ( is_numeric( $data[ $i ] ) ) ? floatval( $data[ $i ] ) : null;
|
135 |
break;
|
136 |
case 'boolean':
|
137 |
+
$data[ $i ] = ! empty( $data[ $i ] ) ? filter_validate( $data[ $i ], FILTER_VALIDATE_BOOLEAN ) : null;
|
138 |
break;
|
139 |
case 'timeofday':
|
140 |
+
$date = new DateTime( '1984-03-16T' . $data[ $i ] );
|
141 |
if ( $date ) {
|
142 |
+
$data[ $i ] = array(
|
143 |
intval( $date->format( 'H' ) ),
|
144 |
intval( $date->format( 'i' ) ),
|
145 |
intval( $date->format( 's' ) ),
|
165 |
protected static function _validateTypes( $types ) {
|
166 |
$allowed_types = array( 'string', 'number', 'boolean', 'date', 'datetime', 'timeofday' );
|
167 |
foreach ( $types as $type ) {
|
168 |
+
if ( ! in_array( $type, $allowed_types ) ) {
|
169 |
return false;
|
170 |
}
|
171 |
}
|
180 |
*
|
181 |
* @access public
|
182 |
* @param array $series The actual array of series.
|
183 |
+
* @param int $chart_id The chart id.
|
184 |
* @return array The re populated array of series or old one.
|
185 |
*/
|
186 |
public function repopulateSeries( $series, $chart_id ) {
|
194 |
*
|
195 |
* @access public
|
196 |
* @param array $data The actual array of data.
|
197 |
+
* @param int $chart_id The chart id.
|
198 |
* @return array The re populated array of data or old one.
|
199 |
*/
|
200 |
public function repopulateData( $data, $chart_id ) {
|
201 |
return $data;
|
202 |
}
|
203 |
|
204 |
+
}
|
classes/Visualizer/Source/Csv.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Source manager for local CSV files.
|
25 |
*
|
@@ -66,13 +65,13 @@ class Visualizer_Source_Csv extends Visualizer_Source {
|
|
66 |
// read series types
|
67 |
$types = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE );
|
68 |
|
69 |
-
if (
|
70 |
return false;
|
71 |
}
|
72 |
|
73 |
// if no types were setup, re read labels and empty types array
|
74 |
$types = array_map( 'trim', $types );
|
75 |
-
if ( !self::_validateTypes( $types ) ) {
|
76 |
// re open the file
|
77 |
fclose( $handle );
|
78 |
$handle = $this->_get_file_handle();
|
@@ -85,8 +84,8 @@ class Visualizer_Source_Csv extends Visualizer_Source {
|
|
85 |
for ( $i = 0, $len = count( $labels ); $i < $len; $i++ ) {
|
86 |
$default_type = $i == 0 ? 'string' : 'number';
|
87 |
$this->_series[] = array(
|
88 |
-
'label' => $labels[$i],
|
89 |
-
'type' => isset( $types[$i] ) ? $types[$i] : $default_type,
|
90 |
);
|
91 |
}
|
92 |
|
@@ -104,7 +103,7 @@ class Visualizer_Source_Csv extends Visualizer_Source {
|
|
104 |
*/
|
105 |
protected function _get_file_handle( $filename = false ) {
|
106 |
// set line endings auto detect mode
|
107 |
-
|
108 |
// open file and return handle
|
109 |
return fopen( $filename ? $filename : $this->_filename, 'rb' );
|
110 |
}
|
@@ -127,7 +126,7 @@ class Visualizer_Source_Csv extends Visualizer_Source {
|
|
127 |
$handle = $this->_get_file_handle();
|
128 |
if ( $handle ) {
|
129 |
// fetch series
|
130 |
-
if (
|
131 |
return false;
|
132 |
}
|
133 |
|
@@ -156,4 +155,4 @@ class Visualizer_Source_Csv extends Visualizer_Source {
|
|
156 |
return __CLASS__;
|
157 |
}
|
158 |
|
159 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Source manager for local CSV files.
|
24 |
*
|
65 |
// read series types
|
66 |
$types = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE );
|
67 |
|
68 |
+
if ( ! $labels || ! $types ) {
|
69 |
return false;
|
70 |
}
|
71 |
|
72 |
// if no types were setup, re read labels and empty types array
|
73 |
$types = array_map( 'trim', $types );
|
74 |
+
if ( ! self::_validateTypes( $types ) ) {
|
75 |
// re open the file
|
76 |
fclose( $handle );
|
77 |
$handle = $this->_get_file_handle();
|
84 |
for ( $i = 0, $len = count( $labels ); $i < $len; $i++ ) {
|
85 |
$default_type = $i == 0 ? 'string' : 'number';
|
86 |
$this->_series[] = array(
|
87 |
+
'label' => $labels[ $i ],
|
88 |
+
'type' => isset( $types[ $i ] ) ? $types[ $i ] : $default_type,
|
89 |
);
|
90 |
}
|
91 |
|
103 |
*/
|
104 |
protected function _get_file_handle( $filename = false ) {
|
105 |
// set line endings auto detect mode
|
106 |
+
ini_set( 'auto_detect_line_endings', true );
|
107 |
// open file and return handle
|
108 |
return fopen( $filename ? $filename : $this->_filename, 'rb' );
|
109 |
}
|
126 |
$handle = $this->_get_file_handle();
|
127 |
if ( $handle ) {
|
128 |
// fetch series
|
129 |
+
if ( ! $this->_fetchSeries( $handle ) ) {
|
130 |
return false;
|
131 |
}
|
132 |
|
155 |
return __CLASS__;
|
156 |
}
|
157 |
|
158 |
+
}
|
classes/Visualizer/Source/Csv/Remote.php
CHANGED
@@ -19,7 +19,6 @@
|
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
22 |
-
|
23 |
/**
|
24 |
* Source manager for remote CSV files.
|
25 |
*
|
@@ -66,7 +65,7 @@ class Visualizer_Source_Csv_Remote extends Visualizer_Source_Csv {
|
|
66 |
*/
|
67 |
private function _repopulate( $chart_id ) {
|
68 |
// if it has been already populated, then just return true
|
69 |
-
if ( !empty( $this->_data ) && !empty( $this->_series ) ) {
|
70 |
return true;
|
71 |
}
|
72 |
|
@@ -74,7 +73,7 @@ class Visualizer_Source_Csv_Remote extends Visualizer_Source_Csv {
|
|
74 |
if ( empty( $this->_filename ) ) {
|
75 |
$chart = get_post( $chart_id );
|
76 |
$data = unserialize( $chart->post_content );
|
77 |
-
if ( !isset( $data['source'] ) ) {
|
78 |
return false;
|
79 |
}
|
80 |
|
@@ -92,7 +91,7 @@ class Visualizer_Source_Csv_Remote extends Visualizer_Source_Csv {
|
|
92 |
*
|
93 |
* @access public
|
94 |
* @param array $data The actual array of data.
|
95 |
-
* @param int
|
96 |
* @return array The re populated array of data or old one.
|
97 |
*/
|
98 |
public function repopulateData( $data, $chart_id ) {
|
@@ -106,7 +105,7 @@ class Visualizer_Source_Csv_Remote extends Visualizer_Source_Csv {
|
|
106 |
*
|
107 |
* @access public
|
108 |
* @param array $series The actual array of series.
|
109 |
-
* @param int
|
110 |
* @return array The re populated array of series or old one.
|
111 |
*/
|
112 |
public function repopulateSeries( $series, $chart_id ) {
|
@@ -155,7 +154,7 @@ class Visualizer_Source_Csv_Remote extends Visualizer_Source_Csv {
|
|
155 |
|
156 |
$this->_tmpfile = download_url( $this->_filename );
|
157 |
|
158 |
-
return !is_wp_error( $this->_tmpfile ) ? parent::_get_file_handle( $this->_tmpfile ) : false;
|
159 |
}
|
160 |
|
161 |
-
}
|
19 |
// +----------------------------------------------------------------------+
|
20 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
21 |
// +----------------------------------------------------------------------+
|
|
|
22 |
/**
|
23 |
* Source manager for remote CSV files.
|
24 |
*
|
65 |
*/
|
66 |
private function _repopulate( $chart_id ) {
|
67 |
// if it has been already populated, then just return true
|
68 |
+
if ( ! empty( $this->_data ) && ! empty( $this->_series ) ) {
|
69 |
return true;
|
70 |
}
|
71 |
|
73 |
if ( empty( $this->_filename ) ) {
|
74 |
$chart = get_post( $chart_id );
|
75 |
$data = unserialize( $chart->post_content );
|
76 |
+
if ( ! isset( $data['source'] ) ) {
|
77 |
return false;
|
78 |
}
|
79 |
|
91 |
*
|
92 |
* @access public
|
93 |
* @param array $data The actual array of data.
|
94 |
+
* @param int $chart_id The chart id.
|
95 |
* @return array The re populated array of data or old one.
|
96 |
*/
|
97 |
public function repopulateData( $data, $chart_id ) {
|
105 |
*
|
106 |
* @access public
|
107 |
* @param array $series The actual array of series.
|
108 |
+
* @param int $chart_id The chart id.
|
109 |
* @return array The re populated array of series or old one.
|
110 |
*/
|
111 |
public function repopulateSeries( $series, $chart_id ) {
|
154 |
|
155 |
$this->_tmpfile = download_url( $this->_filename );
|
156 |
|
157 |
+
return ! is_wp_error( $this->_tmpfile ) ? parent::_get_file_handle( $this->_tmpfile ) : false;
|
158 |
}
|
159 |
|
160 |
+
}
|
css/frame.css
CHANGED
@@ -1,28 +1,28 @@
|
|
1 |
#content {
|
|
|
2 |
position: absolute;
|
|
|
3 |
top: 0;
|
4 |
right: 0;
|
5 |
bottom: 60px;
|
6 |
left: 0;
|
7 |
-
z-index: 75;
|
8 |
-
overflow: auto;
|
9 |
background-color: white;
|
10 |
}
|
11 |
|
12 |
#canvas {
|
13 |
position: absolute;
|
14 |
-
left: 10px;
|
15 |
-
right: 310px;
|
16 |
top: 10px;
|
|
|
17 |
bottom: 10px;
|
|
|
18 |
}
|
19 |
|
20 |
.loader {
|
21 |
position: absolute;
|
22 |
-
left: 50%;
|
23 |
top: 50%;
|
24 |
-
|
25 |
margin-top: -16px;
|
|
|
26 |
}
|
27 |
|
28 |
/******************************************************************************/
|
@@ -30,94 +30,92 @@
|
|
30 |
/******************************************************************************/
|
31 |
|
32 |
#sidebar {
|
|
|
33 |
position: absolute;
|
|
|
34 |
top: 0;
|
35 |
right: 0;
|
36 |
bottom: 60px;
|
37 |
width: 299px;
|
38 |
-
|
39 |
background: whitesmoke;
|
40 |
-
|
41 |
-
overflow: auto;
|
42 |
-webkit-overflow-scrolling: touch;
|
43 |
}
|
44 |
|
45 |
.group-wrapper {
|
46 |
-
border-top: 1px solid #DFDFDF;
|
47 |
margin: 0;
|
48 |
padding: 0;
|
|
|
49 |
list-style: none;
|
50 |
}
|
51 |
|
52 |
.group {
|
53 |
margin: 0;
|
54 |
-
list-style: none;
|
55 |
font-size: 12px;
|
56 |
line-height: 18px;
|
|
|
57 |
}
|
58 |
|
59 |
.group.open {
|
60 |
-
border-bottom: 1px solid #
|
61 |
-
|
62 |
}
|
63 |
|
64 |
.group-title {
|
65 |
-
border-top: 1px solid white;
|
66 |
-
border-bottom: 1px solid #DFDFDF;
|
67 |
position: relative;
|
68 |
-
cursor: pointer;
|
69 |
-
-webkit-user-select: none;
|
70 |
-
-moz-user-select: none;
|
71 |
-
-ms-user-select: none;
|
72 |
-
user-select: none;
|
73 |
margin: 0;
|
74 |
padding: 10px 20px;
|
75 |
-
|
76 |
-
|
77 |
-
font-weight: normal;
|
78 |
-
text-shadow: 0 1px 0 white;
|
79 |
background: whiteSmoke;
|
80 |
-
background-image: -webkit-gradient(linear, left bottom, left top, from(#
|
81 |
-
background-image: -webkit-linear-gradient(bottom, #
|
82 |
-
background-image: -
|
83 |
-
background-image: -
|
84 |
-
background-image:
|
85 |
-
|
|
|
86 |
font-family: "Open Sans",sans-serif;
|
|
|
|
|
87 |
font-weight: 700;
|
|
|
|
|
|
|
|
|
|
|
88 |
}
|
89 |
|
90 |
.group-title:hover,
|
91 |
.group.open .group-title {
|
92 |
color: white;
|
93 |
-
text-shadow: 0 -1px 0 #333;
|
94 |
background: gray;
|
95 |
-
background-image: -webkit-gradient(linear, left bottom, left top, from(#
|
96 |
-
background-image: -webkit-linear-gradient(bottom, #
|
97 |
-
background-image: -
|
98 |
-
background-image: -
|
99 |
-
background-image:
|
100 |
-
|
101 |
font-family: "Open Sans", sans-serif;
|
102 |
font-weight: 700;
|
103 |
}
|
104 |
|
105 |
.group-title::after {
|
106 |
-
content: '';
|
107 |
-
width: 0;
|
108 |
-
height: 0;
|
109 |
-
border-color: #CCC transparent;
|
110 |
-
border-style: solid;
|
111 |
-
border-width: 6px 6px 0;
|
112 |
position: absolute;
|
|
|
113 |
top: 15px;
|
114 |
right: 20px;
|
115 |
-
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
117 |
|
118 |
.group-title:hover::after,
|
119 |
.group.open .group-title::after {
|
120 |
-
border-color: #
|
121 |
}
|
122 |
|
123 |
.group:hover .group-title {
|
@@ -125,7 +123,7 @@
|
|
125 |
}
|
126 |
|
127 |
.group.open .group-title {
|
128 |
-
border-top-color: #
|
129 |
}
|
130 |
|
131 |
.group.open .group-title::after {
|
@@ -133,11 +131,11 @@
|
|
133 |
}
|
134 |
|
135 |
.group-content {
|
136 |
-
margin: 0;
|
137 |
display: none;
|
138 |
-
background-color: #FDFDFD;
|
139 |
-
padding: 10px 0 20px 0;
|
140 |
overflow: hidden;
|
|
|
|
|
|
|
141 |
}
|
142 |
|
143 |
div.group-content {
|
@@ -149,50 +147,50 @@ div.group-content {
|
|
149 |
}
|
150 |
|
151 |
.group-description {
|
152 |
-
font-size: 12px;
|
153 |
-
color: #555;
|
154 |
-
padding: 5px 20px 10px;
|
155 |
margin: 0;
|
|
|
|
|
|
|
156 |
}
|
157 |
|
158 |
div.group-content .group-description {
|
159 |
padding: 0;
|
160 |
-
font-weight: 300;
|
161 |
font-family: "Montserrat",sans-serif;
|
|
|
162 |
}
|
163 |
|
164 |
.initial-screen .group-description {
|
165 |
padding: 0;
|
166 |
-
font-weight: 300;
|
167 |
-
font-family: "Montserrat",sans-serif;
|
168 |
padding: 10px 20px 20px;
|
|
|
|
|
169 |
}
|
170 |
|
171 |
.section-title {
|
172 |
display: block;
|
173 |
-
font-weight: bold;
|
174 |
position: relative;
|
175 |
-
cursor: pointer;
|
176 |
-
padding: 4px 20px;
|
177 |
margin-bottom: 5px;
|
|
|
|
|
|
|
178 |
background-color: rgba(0, 0, 0, 0.02);
|
179 |
-
border-top: 1px solid #eeeeee;
|
180 |
-webkit-box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);
|
181 |
box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);
|
182 |
-
|
|
|
183 |
}
|
184 |
|
185 |
.section-title::after {
|
186 |
-
content: '';
|
187 |
-
width: 0;
|
188 |
-
height: 0;
|
189 |
-
border-color: #CCC transparent;
|
190 |
-
border-style: solid;
|
191 |
-
border-width: 4px 4px 0;
|
192 |
position: absolute;
|
|
|
193 |
top: 13px;
|
194 |
right: 20px;
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
196 |
}
|
197 |
|
198 |
.section-title.open::after {
|
@@ -209,20 +207,20 @@ div.group-content .group-description {
|
|
209 |
}
|
210 |
|
211 |
.more-info {
|
212 |
-
|
213 |
-
|
|
|
214 |
font-size: 85%;
|
215 |
font-weight: normal;
|
216 |
-
|
217 |
-
display: none;
|
218 |
}
|
219 |
|
220 |
.section-description {
|
|
|
221 |
/*display: none;*/
|
222 |
padding: 0;
|
223 |
-
margin: 0;
|
224 |
-
font-size: 11px;
|
225 |
color: gray;
|
|
|
226 |
}
|
227 |
|
228 |
.section-table {
|
@@ -236,9 +234,9 @@ div.group-content .group-description {
|
|
236 |
|
237 |
.section-table-column {
|
238 |
width: 50%;
|
|
|
239 |
text-align: left;
|
240 |
vertical-align: top;
|
241 |
-
padding: 0 1px;
|
242 |
}
|
243 |
|
244 |
.section-item {
|
@@ -253,6 +251,7 @@ div.group-content .group-description {
|
|
253 |
.control-check {
|
254 |
float: right;
|
255 |
}
|
|
|
256 |
.control-check::after {
|
257 |
clear: both;
|
258 |
}
|
@@ -263,8 +262,8 @@ div.group-content .group-description {
|
|
263 |
}
|
264 |
|
265 |
.section-description li {
|
266 |
-
list-style: circle;
|
267 |
margin: 0;
|
|
|
268 |
}
|
269 |
|
270 |
#rate-the-plugin {
|
@@ -274,24 +273,24 @@ div.group-content .group-description {
|
|
274 |
text-align: center;
|
275 |
}
|
276 |
|
277 |
-
.rate-the-plugin{
|
278 |
width: 40% !important;
|
279 |
-
|
280 |
}
|
281 |
|
282 |
#rate-stars {
|
283 |
-
margin: 15px auto;
|
284 |
width: 100px;
|
285 |
height: 20px;
|
286 |
-
|
|
|
287 |
background-repeat: repeat-x;
|
288 |
background-position: right center;
|
289 |
}
|
290 |
|
291 |
#rate-link {
|
292 |
-
text-decoration: none;
|
293 |
font-family: "Montserrat",sans-serif;
|
294 |
-
|
|
|
295 |
}
|
296 |
|
297 |
#flattr {
|
@@ -304,32 +303,33 @@ div.group-content .group-description {
|
|
304 |
/******************************************************************************/
|
305 |
|
306 |
#toolbar {
|
307 |
-
|
308 |
-
padding: 12px 16px;
|
309 |
position: absolute;
|
310 |
z-index: 100;
|
311 |
-
left: 0;
|
312 |
right: 0;
|
313 |
-
text-align: center;
|
314 |
bottom: 0;
|
315 |
-
|
316 |
-
|
|
|
|
|
317 |
-webkit-box-shadow: 0 -4px 4px -4px rgba(0, 0, 0, 0.1);
|
318 |
box-shadow: 0 -4px 4px -4px rgba(0, 0, 0, 0.1);
|
|
|
319 |
}
|
320 |
|
321 |
#toolbar .push-right {
|
322 |
float: right;
|
323 |
}
|
324 |
|
325 |
-
.toolbar-div a{
|
326 |
-
float:left;
|
327 |
}
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
331 |
width: 30%;
|
332 |
-
|
333 |
}
|
334 |
|
335 |
/******************************************************************************/
|
@@ -337,21 +337,21 @@ div.group-content .group-description {
|
|
337 |
/******************************************************************************/
|
338 |
|
339 |
#type-picker {
|
340 |
-
margin: 50px auto;
|
341 |
width: 952px;
|
|
|
342 |
}
|
343 |
|
344 |
.type-box {
|
345 |
float: left;
|
346 |
margin: 0 20px 20px 0;
|
347 |
border: 1px dashed #ddd;
|
348 |
-
-webkit-box-shadow: 0px 0px 8px #ddd;
|
349 |
-
box-shadow: 0px 0px 8px #ddd;
|
350 |
background-color: #efefef;
|
|
|
|
|
351 |
}
|
352 |
|
353 |
.type-box:nth-child(3n+3) {
|
354 |
-
margin-right:
|
355 |
}
|
356 |
|
357 |
.type-label {
|
@@ -359,11 +359,11 @@ div.group-content .group-description {
|
|
359 |
width: 270px;
|
360 |
height: 195px;
|
361 |
padding: 15px;
|
|
|
362 |
background-color: white;
|
363 |
background-image: url(../images/chart_types_g.png);
|
364 |
background-repeat: no-repeat;
|
365 |
background-position: center center;
|
366 |
-
border: 1px solid #e0e0e0;
|
367 |
}
|
368 |
|
369 |
.type-label-selected,
|
@@ -372,23 +372,23 @@ div.group-content .group-description {
|
|
372 |
}
|
373 |
|
374 |
.type-box-area .type-label {
|
375 |
-
background-position:
|
376 |
}
|
377 |
|
378 |
.type-box-line .type-label {
|
379 |
-
background-position: -600px
|
380 |
}
|
381 |
|
382 |
.type-box-scatter .type-label {
|
383 |
-
background-position: -300px
|
384 |
}
|
385 |
|
386 |
.type-box-pie .type-label {
|
387 |
-
background-position:
|
388 |
}
|
389 |
|
390 |
.type-box-gauge .type-label {
|
391 |
-
background-position:
|
392 |
}
|
393 |
|
394 |
.type-box-geo .type-label {
|
@@ -420,40 +420,48 @@ div.group-content .group-description {
|
|
420 |
}
|
421 |
|
422 |
a.pro-upsell {
|
423 |
-
|
|
|
|
|
424 |
display: flex;
|
425 |
-
|
|
|
426 |
height: 20px;
|
427 |
-
|
|
|
|
|
428 |
border-radius: 50px;
|
429 |
-
-
|
430 |
-
-webkit-
|
431 |
-
|
432 |
text-decoration: none;
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
|
|
|
|
439 |
|
440 |
-
|
441 |
background-color: #5a95f5;
|
|
|
442 |
box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
|
443 |
}
|
444 |
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
|
458 |
/******************************************************************************/
|
459 |
/******************************** OTHER STYLES ******************************/
|
@@ -461,28 +469,31 @@ a.pro-upsell {
|
|
461 |
|
462 |
#thehole {
|
463 |
position: absolute;
|
464 |
-
left: 0;
|
465 |
top: 0;
|
|
|
466 |
width: 1px;
|
467 |
height: 1px;
|
468 |
border: 0;
|
469 |
-
|
470 |
-
|
471 |
-
|
|
|
472 |
}
|
473 |
|
474 |
-
.locker,
|
475 |
-
|
476 |
-
top: 0;
|
477 |
position: absolute;
|
|
|
|
|
478 |
}
|
479 |
|
480 |
.locker {
|
481 |
z-index: 1000;
|
|
|
482 |
background-color: white;
|
|
|
483 |
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
|
484 |
filter: alpha(opacity=80);
|
485 |
-
opacity: 0.8;
|
486 |
}
|
487 |
|
488 |
.locker-loader {
|
@@ -491,251 +502,241 @@ a.pro-upsell {
|
|
491 |
}
|
492 |
|
493 |
.file-wrapper {
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
}
|
498 |
|
499 |
.file {
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
|
|
509 |
}
|
510 |
|
511 |
#remote-file {
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
}
|
516 |
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
background: #E6E6E6 url("../images/computer.png") no-repeat scroll 7px 1px !important;
|
528 |
padding-left: 27px !important;
|
529 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
font-family: "Open Sans",sans-serif;
|
531 |
font-weight: 700;
|
532 |
-
|
533 |
-
box-shadow: none !important;
|
534 |
-
text-shadow:none!important;
|
535 |
-
left: -18px;
|
536 |
-
overflow: hidden;
|
537 |
-
|
538 |
-
}
|
539 |
-
|
540 |
-
.computer-btn:hover{
|
541 |
-
color: white !important;
|
542 |
-
background: #2f8cea url("../images/computer.png") no-repeat scroll 7px -36px !important;
|
543 |
transition: all 0.3s ease 0s;
|
|
|
|
|
|
|
544 |
padding-left: 27px !important;
|
545 |
-
-webkit-transition: all .3s ease;
|
546 |
-
-moz-transition: all .3s ease;
|
547 |
-
-ms-transition: all .3s ease;
|
548 |
-
-o-transition: all .3s ease;
|
549 |
-
transition: all .3s ease;
|
550 |
-
box-shadow: 0px 1px 0px rgba(171, 171, 171, 0.5) inset, 0px 1px 0px rgba(0, 0, 0, 0.15) !important;
|
551 |
border: 1px solid #2f8cea !important;
|
|
|
|
|
|
|
|
|
|
|
552 |
box-shadow: none !important;
|
|
|
|
|
|
|
|
|
|
|
553 |
|
554 |
-
|
555 |
-
}
|
556 |
-
|
557 |
-
.just-on-pro{
|
558 |
-
background: #F5F5F5 url("../images/available_pro.png") no-repeat scroll 0px 1px !important;
|
559 |
width: 250px;
|
560 |
height: 100px;
|
561 |
-
cursor:not-allowed;
|
562 |
-
opacity: 0.8;
|
563 |
margin-bottom: 10px;
|
564 |
-
|
565 |
-
|
566 |
-
|
|
|
567 |
|
568 |
-
|
569 |
-
margin-top:
|
570 |
margin-bottom: 15px !important;
|
571 |
}
|
572 |
|
573 |
-
|
574 |
-
color: #646464 !important;
|
575 |
-
border: medium none #646464 !important;
|
576 |
-
background: #E6E6E6 url("../images/web.png") no-repeat scroll 7px 1px !important;
|
577 |
padding-left: 25px !important;
|
578 |
-
|
579 |
-
border: 1px solid #
|
|
|
|
|
|
|
580 |
box-shadow: none !important;
|
581 |
font-family: "Open Sans",sans-serif;
|
582 |
font-weight: 700;
|
|
|
|
|
583 |
/*margin-left: 2px !important;*/
|
584 |
}
|
585 |
|
586 |
-
|
587 |
-
color: white !important;
|
588 |
-
background: #89B158 url("../images/web.png") no-repeat scroll 7px -38px !important;
|
589 |
-
transition: all 0.3s ease 0s;
|
590 |
padding-left: 25px !important;
|
591 |
-
-webkit-transition: all .3s ease;
|
592 |
-
-moz-transition: all .3s ease;
|
593 |
-
-ms-transition: all .3s ease;
|
594 |
-
-o-transition: all .3s ease;
|
595 |
-
transition: all .3s ease;
|
596 |
/*margin-left: 2px !important;*/
|
597 |
-
border: 1px solid #
|
|
|
|
|
|
|
598 |
box-shadow: none !important;
|
|
|
|
|
|
|
|
|
599 |
}
|
600 |
|
601 |
-
.preview{
|
602 |
width: 100%;
|
603 |
}
|
604 |
|
605 |
-
|
606 |
#sidebar > ul > div.initial-screen > div {
|
607 |
padding: 0 20px;
|
608 |
}
|
609 |
|
610 |
-
.from-chart-btn{
|
611 |
-
color: #646464 !important;
|
612 |
-
border: medium none #646464 !important;
|
613 |
-
background: #E6E6E6 url("../images/from_chart.png") no-repeat scroll 7px 1px !important;
|
614 |
padding-left: 25px !important;
|
615 |
-
|
616 |
-
border: 1px solid #
|
|
|
|
|
|
|
617 |
box-shadow: none !important;
|
618 |
font-family: "Open Sans",sans-serif;
|
619 |
font-weight: 700;
|
|
|
|
|
620 |
/*margin-left: 2px !important;
|
621 |
margin-top: 2px !important;*/
|
622 |
}
|
623 |
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
/*left: 18px;
|
642 |
width: 110px;
|
643 |
position: relative;*/
|
644 |
-
|
645 |
-
|
646 |
-
select#chart-id {
|
647 |
-
float: right;
|
648 |
-
width: 95px;
|
649 |
-
}
|
650 |
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
color: white !important;
|
656 |
-
border: 1px solid #2c80d6 !important;
|
657 |
-
box-shadow: none !important;
|
658 |
-
-webkit-transition: all .3s ease;
|
659 |
-
-moz-transition: all .3s ease;
|
660 |
-
-ms-transition: all .3s ease;
|
661 |
-
-o-transition: all .3s ease;
|
662 |
-
transition: all .3s ease;
|
663 |
-
text-shadow: none;
|
664 |
-
}
|
665 |
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
background-color: #2f8cea !important;
|
670 |
-
color: white !important;
|
671 |
border: 1px solid #2c80d6 !important;
|
|
|
|
|
|
|
672 |
box-shadow: none !important;
|
673 |
-
-
|
674 |
-
-
|
675 |
-
|
676 |
-
-o-transition: all .3s ease;
|
677 |
-
transition: all .3s ease;
|
678 |
}
|
679 |
|
680 |
-
.preview-btn
|
|
|
|
|
|
|
|
|
|
|
681 |
font-family: "Open Sans",sans-serif;
|
682 |
font-weight: 700;
|
683 |
-
|
684 |
-
|
|
|
|
|
|
|
685 |
border: 1px solid #2c80d6 !important;
|
|
|
|
|
|
|
686 |
box-shadow: none !important;
|
687 |
-
-
|
688 |
-
-
|
689 |
-
-
|
690 |
-
|
691 |
-
transition: all .3s ease;
|
692 |
}
|
693 |
|
694 |
-
.show-live-btn{
|
695 |
-
margin-top: 15px !important;
|
696 |
width: 100%;
|
697 |
-
|
698 |
-
border-color: #
|
|
|
|
|
|
|
699 |
font-family: "Open Sans",sans-serif;
|
700 |
font-weight: 700;
|
701 |
-
box-shadow: none !important;
|
702 |
}
|
703 |
|
704 |
-
|
705 |
-
.show-live-btn:hover{
|
706 |
-
margin-top: 15px !important;
|
707 |
width: 100%;
|
|
|
|
|
708 |
background-color: #ea8c00 !important;
|
709 |
-
|
|
|
710 |
font-family: "Open Sans",sans-serif;
|
711 |
font-weight: 700;
|
712 |
-
|
713 |
-
|
714 |
-
-moz-transition: all .3s ease;
|
715 |
-
-ms-transition: all .3s ease;
|
716 |
-
-o-transition: all .3s ease;
|
717 |
-
transition: all .3s ease;
|
718 |
}
|
719 |
|
720 |
.check-pro-btn {
|
721 |
-
height: 40px;
|
722 |
-
width: 245px;
|
723 |
display: block;
|
|
|
|
|
724 |
margin: 0 auto;
|
725 |
}
|
726 |
|
727 |
-
.advanced-settings-btn,
|
728 |
-
|
729 |
display: block;
|
730 |
-
margin: 0 auto;
|
731 |
-
line-height: 34px;
|
732 |
-
font-size: 17px;
|
733 |
height: auto;
|
734 |
-
|
735 |
-
-
|
736 |
-
border-radius: 3px;
|
737 |
margin-bottom: 20px;
|
738 |
-
|
|
|
|
|
|
|
739 |
}
|
740 |
|
741 |
.return-settings-btn {
|
@@ -751,39 +752,40 @@ a.pro-upsell {
|
|
751 |
}
|
752 |
|
753 |
.hidden-setting {
|
754 |
-
display:none;
|
755 |
}
|
756 |
|
|
|
757 |
|
|
|
|
|
|
|
|
|
|
|
|
|
758 |
|
759 |
-
|
|
|
|
|
760 |
|
|
|
|
|
|
|
761 |
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
font-weight: 400;
|
766 |
-
font-size: 14px;
|
767 |
-
}
|
768 |
-
.group-title::after {
|
769 |
-
top: 10px;
|
770 |
-
}
|
771 |
-
#rate-stars {
|
772 |
-
margin: 3px 0 10px 40%;
|
773 |
-
}
|
774 |
-
.rate-the-plugin {
|
775 |
-
margin-left: -8%;
|
776 |
-
}
|
777 |
}
|
778 |
|
779 |
@media screen and (max-width: 782px) {
|
780 |
-
.button.button-primary.file-wrapper.computer-btn,
|
|
|
|
|
|
|
|
|
781 |
padding: 0 10px 1px;
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
height: 28px;
|
786 |
-
margin-bottom: 4px;
|
787 |
}
|
788 |
-
|
789 |
}
|
1 |
#content {
|
2 |
+
overflow: auto;
|
3 |
position: absolute;
|
4 |
+
z-index: 75;
|
5 |
top: 0;
|
6 |
right: 0;
|
7 |
bottom: 60px;
|
8 |
left: 0;
|
|
|
|
|
9 |
background-color: white;
|
10 |
}
|
11 |
|
12 |
#canvas {
|
13 |
position: absolute;
|
|
|
|
|
14 |
top: 10px;
|
15 |
+
right: 310px;
|
16 |
bottom: 10px;
|
17 |
+
left: 10px;
|
18 |
}
|
19 |
|
20 |
.loader {
|
21 |
position: absolute;
|
|
|
22 |
top: 50%;
|
23 |
+
left: 50%;
|
24 |
margin-top: -16px;
|
25 |
+
margin-left: -16px;
|
26 |
}
|
27 |
|
28 |
/******************************************************************************/
|
30 |
/******************************************************************************/
|
31 |
|
32 |
#sidebar {
|
33 |
+
overflow: auto;
|
34 |
position: absolute;
|
35 |
+
z-index: 75;
|
36 |
top: 0;
|
37 |
right: 0;
|
38 |
bottom: 60px;
|
39 |
width: 299px;
|
40 |
+
border-left: 1px solid #dfdfdf;
|
41 |
background: whitesmoke;
|
42 |
+
|
|
|
43 |
-webkit-overflow-scrolling: touch;
|
44 |
}
|
45 |
|
46 |
.group-wrapper {
|
|
|
47 |
margin: 0;
|
48 |
padding: 0;
|
49 |
+
border-top: 1px solid #dfdfdf;
|
50 |
list-style: none;
|
51 |
}
|
52 |
|
53 |
.group {
|
54 |
margin: 0;
|
|
|
55 |
font-size: 12px;
|
56 |
line-height: 18px;
|
57 |
+
list-style: none;
|
58 |
}
|
59 |
|
60 |
.group.open {
|
61 |
+
border-bottom: 1px solid #dfdfdf;
|
|
|
62 |
}
|
63 |
|
64 |
.group-title {
|
|
|
|
|
65 |
position: relative;
|
|
|
|
|
|
|
|
|
|
|
66 |
margin: 0;
|
67 |
padding: 10px 20px;
|
68 |
+
border-top: 1px solid white;
|
69 |
+
border-bottom: 1px solid #dfdfdf;
|
|
|
|
|
70 |
background: whiteSmoke;
|
71 |
+
background-image: -webkit-gradient(linear, left bottom, left top, from(#eee), to(whiteSmoke));
|
72 |
+
background-image: -webkit-linear-gradient(bottom, #eee, whiteSmoke);
|
73 |
+
background-image: -webkit-gradient( linear, left top, left bottom, from(#eee), to(whiteSmoke));
|
74 |
+
background-image: -webkit-linear-gradient( top, #eee, whiteSmoke);
|
75 |
+
background-image: linear-gradient( to bottom, #eee, whiteSmoke);
|
76 |
+
text-shadow: 0 1px 0 white;
|
77 |
+
font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
78 |
font-family: "Open Sans",sans-serif;
|
79 |
+
font-size: 15px;
|
80 |
+
font-weight: normal;
|
81 |
font-weight: 700;
|
82 |
+
cursor: pointer;
|
83 |
+
-webkit-user-select: none;
|
84 |
+
-moz-user-select: none;
|
85 |
+
-ms-user-select: none;
|
86 |
+
user-select: none;
|
87 |
}
|
88 |
|
89 |
.group-title:hover,
|
90 |
.group.open .group-title {
|
91 |
color: white;
|
|
|
92 |
background: gray;
|
93 |
+
background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(gray));
|
94 |
+
background-image: -webkit-linear-gradient(bottom, #6d6d6d, gray);
|
95 |
+
background-image: -webkit-gradient( linear, left top, left bottom, from(#6d6d6d), to(gray));
|
96 |
+
background-image: -webkit-linear-gradient( top, #6d6d6d, gray);
|
97 |
+
background-image: linear-gradient( to bottom, #6d6d6d, gray);
|
98 |
+
text-shadow: 0 -1px 0 #333;
|
99 |
font-family: "Open Sans", sans-serif;
|
100 |
font-weight: 700;
|
101 |
}
|
102 |
|
103 |
.group-title::after {
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
position: absolute;
|
105 |
+
z-index: 1;
|
106 |
top: 15px;
|
107 |
right: 20px;
|
108 |
+
width: 0;
|
109 |
+
height: 0;
|
110 |
+
border-width: 6px 6px 0;
|
111 |
+
border-style: solid;
|
112 |
+
border-color: #ccc transparent;
|
113 |
+
content: "";
|
114 |
}
|
115 |
|
116 |
.group-title:hover::after,
|
117 |
.group.open .group-title::after {
|
118 |
+
border-color: #eee transparent;
|
119 |
}
|
120 |
|
121 |
.group:hover .group-title {
|
123 |
}
|
124 |
|
125 |
.group.open .group-title {
|
126 |
+
border-top-color: #6d6d6d;
|
127 |
}
|
128 |
|
129 |
.group.open .group-title::after {
|
131 |
}
|
132 |
|
133 |
.group-content {
|
|
|
134 |
display: none;
|
|
|
|
|
135 |
overflow: hidden;
|
136 |
+
margin: 0;
|
137 |
+
padding: 10px 0 20px 0;
|
138 |
+
background-color: #fdfdfd;
|
139 |
}
|
140 |
|
141 |
div.group-content {
|
147 |
}
|
148 |
|
149 |
.group-description {
|
|
|
|
|
|
|
150 |
margin: 0;
|
151 |
+
padding: 5px 20px 10px;
|
152 |
+
color: #555;
|
153 |
+
font-size: 12px;
|
154 |
}
|
155 |
|
156 |
div.group-content .group-description {
|
157 |
padding: 0;
|
|
|
158 |
font-family: "Montserrat",sans-serif;
|
159 |
+
font-weight: 300;
|
160 |
}
|
161 |
|
162 |
.initial-screen .group-description {
|
163 |
padding: 0;
|
|
|
|
|
164 |
padding: 10px 20px 20px;
|
165 |
+
font-family: "Montserrat",sans-serif;
|
166 |
+
font-weight: 300;
|
167 |
}
|
168 |
|
169 |
.section-title {
|
170 |
display: block;
|
|
|
171 |
position: relative;
|
|
|
|
|
172 |
margin-bottom: 5px;
|
173 |
+
padding: 4px 20px;
|
174 |
+
border-top: 1px solid #eee;
|
175 |
+
border-bottom: 1px solid #eee;
|
176 |
background-color: rgba(0, 0, 0, 0.02);
|
|
|
177 |
-webkit-box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);
|
178 |
box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);
|
179 |
+
font-weight: bold;
|
180 |
+
cursor: pointer;
|
181 |
}
|
182 |
|
183 |
.section-title::after {
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
position: absolute;
|
185 |
+
z-index: 1;
|
186 |
top: 13px;
|
187 |
right: 20px;
|
188 |
+
width: 0;
|
189 |
+
height: 0;
|
190 |
+
border-width: 4px 4px 0;
|
191 |
+
border-style: solid;
|
192 |
+
border-color: #ccc transparent;
|
193 |
+
content: "";
|
194 |
}
|
195 |
|
196 |
.section-title.open::after {
|
207 |
}
|
208 |
|
209 |
.more-info {
|
210 |
+
display: none;
|
211 |
+
float: right;
|
212 |
+
color: #21759b;
|
213 |
font-size: 85%;
|
214 |
font-weight: normal;
|
215 |
+
text-decoration: none;
|
|
|
216 |
}
|
217 |
|
218 |
.section-description {
|
219 |
+
margin: 0;
|
220 |
/*display: none;*/
|
221 |
padding: 0;
|
|
|
|
|
222 |
color: gray;
|
223 |
+
font-size: 11px;
|
224 |
}
|
225 |
|
226 |
.section-table {
|
234 |
|
235 |
.section-table-column {
|
236 |
width: 50%;
|
237 |
+
padding: 0 1px;
|
238 |
text-align: left;
|
239 |
vertical-align: top;
|
|
|
240 |
}
|
241 |
|
242 |
.section-item {
|
251 |
.control-check {
|
252 |
float: right;
|
253 |
}
|
254 |
+
|
255 |
.control-check::after {
|
256 |
clear: both;
|
257 |
}
|
262 |
}
|
263 |
|
264 |
.section-description li {
|
|
|
265 |
margin: 0;
|
266 |
+
list-style: circle;
|
267 |
}
|
268 |
|
269 |
#rate-the-plugin {
|
273 |
text-align: center;
|
274 |
}
|
275 |
|
276 |
+
.rate-the-plugin {
|
277 |
width: 40% !important;
|
278 |
+
margin-top: -5px;
|
279 |
}
|
280 |
|
281 |
#rate-stars {
|
|
|
282 |
width: 100px;
|
283 |
height: 20px;
|
284 |
+
margin: 15px auto;
|
285 |
+
background-image: url("../images/star.png");
|
286 |
background-repeat: repeat-x;
|
287 |
background-position: right center;
|
288 |
}
|
289 |
|
290 |
#rate-link {
|
|
|
291 |
font-family: "Montserrat",sans-serif;
|
292 |
+
font-weight: 400;
|
293 |
+
text-decoration: none;
|
294 |
}
|
295 |
|
296 |
#flattr {
|
303 |
/******************************************************************************/
|
304 |
|
305 |
#toolbar {
|
306 |
+
overflow: hidden;
|
|
|
307 |
position: absolute;
|
308 |
z-index: 100;
|
|
|
309 |
right: 0;
|
|
|
310 |
bottom: 0;
|
311 |
+
left: 0;
|
312 |
+
height: 36px;
|
313 |
+
padding: 12px 16px;
|
314 |
+
border-top: 1px solid #dfdfdf;
|
315 |
-webkit-box-shadow: 0 -4px 4px -4px rgba(0, 0, 0, 0.1);
|
316 |
box-shadow: 0 -4px 4px -4px rgba(0, 0, 0, 0.1);
|
317 |
+
text-align: center;
|
318 |
}
|
319 |
|
320 |
#toolbar .push-right {
|
321 |
float: right;
|
322 |
}
|
323 |
|
324 |
+
.toolbar-div a {
|
325 |
+
float: left;
|
326 |
}
|
327 |
+
|
328 |
+
.toolbar-div {
|
329 |
+
display: inline-block;
|
330 |
+
float: left;
|
331 |
width: 30%;
|
332 |
+
vertical-align: top;
|
333 |
}
|
334 |
|
335 |
/******************************************************************************/
|
337 |
/******************************************************************************/
|
338 |
|
339 |
#type-picker {
|
|
|
340 |
width: 952px;
|
341 |
+
margin: 50px auto;
|
342 |
}
|
343 |
|
344 |
.type-box {
|
345 |
float: left;
|
346 |
margin: 0 20px 20px 0;
|
347 |
border: 1px dashed #ddd;
|
|
|
|
|
348 |
background-color: #efefef;
|
349 |
+
-webkit-box-shadow: 0 0 8px #ddd;
|
350 |
+
box-shadow: 0 0 8px #ddd;
|
351 |
}
|
352 |
|
353 |
.type-box:nth-child(3n+3) {
|
354 |
+
margin-right: 0;
|
355 |
}
|
356 |
|
357 |
.type-label {
|
359 |
width: 270px;
|
360 |
height: 195px;
|
361 |
padding: 15px;
|
362 |
+
border: 1px solid #e0e0e0;
|
363 |
background-color: white;
|
364 |
background-image: url(../images/chart_types_g.png);
|
365 |
background-repeat: no-repeat;
|
366 |
background-position: center center;
|
|
|
367 |
}
|
368 |
|
369 |
.type-label-selected,
|
372 |
}
|
373 |
|
374 |
.type-box-area .type-label {
|
375 |
+
background-position: 0 -225px;
|
376 |
}
|
377 |
|
378 |
.type-box-line .type-label {
|
379 |
+
background-position: -600px 0;
|
380 |
}
|
381 |
|
382 |
.type-box-scatter .type-label {
|
383 |
+
background-position: -300px 0;
|
384 |
}
|
385 |
|
386 |
.type-box-pie .type-label {
|
387 |
+
background-position: 0 0;
|
388 |
}
|
389 |
|
390 |
.type-box-gauge .type-label {
|
391 |
+
background-position: 0 -450px;
|
392 |
}
|
393 |
|
394 |
.type-box-geo .type-label {
|
420 |
}
|
421 |
|
422 |
a.pro-upsell {
|
423 |
+
display: -webkit-box;
|
424 |
+
display: -webkit-flex;
|
425 |
+
display: -ms-flexbox;
|
426 |
display: flex;
|
427 |
+
position: relative;
|
428 |
+
top: 10px;
|
429 |
height: 20px;
|
430 |
+
margin: 0;
|
431 |
+
padding: 10px 20px;
|
432 |
+
border: 1px solid #2c80d6;
|
433 |
border-radius: 50px;
|
434 |
+
background-color: #4285f4;
|
435 |
+
-webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
|
436 |
+
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
|
437 |
text-decoration: none;
|
438 |
+
-webkit-transition: all 0.5s ease-in;
|
439 |
+
transition: all 0.5s ease-in;
|
440 |
+
|
441 |
+
-webkit-align-items: center;
|
442 |
+
align-items: center;
|
443 |
+
-webkit-box-align: center;
|
444 |
+
-ms-flex-align: center;
|
445 |
+
}
|
446 |
|
447 |
+
a.pro-upsell:hover {
|
448 |
background-color: #5a95f5;
|
449 |
+
-webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
|
450 |
box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
|
451 |
}
|
452 |
|
453 |
+
a.pro-upsell span {
|
454 |
+
display: inline-block;
|
455 |
+
margin-right: 10px;
|
456 |
+
color: #fff;
|
457 |
+
}
|
458 |
|
459 |
+
a.pro-upsell {
|
460 |
+
display: inline;
|
461 |
+
color: #fff;
|
462 |
+
font-size: 13px;
|
463 |
+
font-weight: bold;
|
464 |
+
}
|
465 |
|
466 |
/******************************************************************************/
|
467 |
/******************************** OTHER STYLES ******************************/
|
469 |
|
470 |
#thehole {
|
471 |
position: absolute;
|
|
|
472 |
top: 0;
|
473 |
+
left: 0;
|
474 |
width: 1px;
|
475 |
height: 1px;
|
476 |
border: 0;
|
477 |
+
opacity: 0;
|
478 |
+
|
479 |
+
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
|
480 |
+
-moz-opacity: 0;
|
481 |
}
|
482 |
|
483 |
+
.locker,
|
484 |
+
.locker-loader {
|
|
|
485 |
position: absolute;
|
486 |
+
top: 0;
|
487 |
+
left: 0;
|
488 |
}
|
489 |
|
490 |
.locker {
|
491 |
z-index: 1000;
|
492 |
+
opacity: 0.8;
|
493 |
background-color: white;
|
494 |
+
|
495 |
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
|
496 |
filter: alpha(opacity=80);
|
|
|
497 |
}
|
498 |
|
499 |
.locker-loader {
|
502 |
}
|
503 |
|
504 |
.file-wrapper {
|
505 |
+
display: inline-block;
|
506 |
+
width: auto;
|
507 |
+
max-width: 133px;
|
508 |
}
|
509 |
|
510 |
.file {
|
511 |
+
position: fixed;
|
512 |
+
max-width: 138px;
|
513 |
+
margin-top: -6px;
|
514 |
+
margin-left: -33px;
|
515 |
+
opacity: 0;
|
516 |
+
font-size: 22px;
|
517 |
+
cursor: pointer;
|
518 |
+
|
519 |
+
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
|
520 |
+
-moz-opacity: 0;
|
521 |
}
|
522 |
|
523 |
#remote-file {
|
524 |
+
display: inline-block;
|
525 |
+
float: right;
|
526 |
+
margin-left: 6px;
|
527 |
}
|
528 |
|
529 |
+
.form-inline {
|
530 |
+
display: table;
|
531 |
+
/*margin: 0 auto;*/
|
532 |
+
width: 100%;
|
533 |
+
vertical-align: middle;
|
534 |
+
}
|
535 |
|
536 |
+
.computer-btn {
|
537 |
+
overflow: hidden;
|
538 |
+
left: -18px;
|
|
|
539 |
padding-left: 27px !important;
|
540 |
+
border: medium none rgb(100, 100, 100) !important;
|
541 |
+
border: 1px solid #b0b0b0 !important;
|
542 |
+
color: #646464 !important;
|
543 |
+
background: #e6e6e6 url("../images/computer.png") no-repeat scroll 7px 1px !important;
|
544 |
+
-webkit-box-shadow: none !important;
|
545 |
+
box-shadow: none !important;
|
546 |
+
text-shadow: none!important;
|
547 |
font-family: "Open Sans",sans-serif;
|
548 |
font-weight: 700;
|
549 |
+
-webkit-transition: all 0.3s ease 0s;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
550 |
transition: all 0.3s ease 0s;
|
551 |
+
}
|
552 |
+
|
553 |
+
.computer-btn:hover {
|
554 |
padding-left: 27px !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
border: 1px solid #2f8cea !important;
|
556 |
+
color: white !important;
|
557 |
+
background: #2f8cea url("../images/computer.png") no-repeat scroll 7px -36px !important;
|
558 |
+
-webkit-box-shadow: 0 1px 0 rgba(171, 171, 171, 0.5) inset, 0 1px 0 rgba(0, 0, 0, 0.15) !important;
|
559 |
+
-webkit-box-shadow: none !important;
|
560 |
+
box-shadow: 0 1px 0 rgba(171, 171, 171, 0.5) inset, 0 1px 0 rgba(0, 0, 0, 0.15) !important;
|
561 |
box-shadow: none !important;
|
562 |
+
-webkit-transition: all 0.3s ease 0s;
|
563 |
+
-webkit-transition: all 0.3s ease;
|
564 |
+
transition: all 0.3s ease 0s;
|
565 |
+
transition: all 0.3s ease;
|
566 |
+
}
|
567 |
|
568 |
+
.just-on-pro {
|
|
|
|
|
|
|
|
|
569 |
width: 250px;
|
570 |
height: 100px;
|
|
|
|
|
571 |
margin-bottom: 10px;
|
572 |
+
opacity: 0.8;
|
573 |
+
background: #f5f5f5 url("../images/available_pro.png") no-repeat scroll 0 1px !important;
|
574 |
+
cursor: not-allowed;
|
575 |
+
}
|
576 |
|
577 |
+
.from-web {
|
578 |
+
margin-top: 0;
|
579 |
margin-bottom: 15px !important;
|
580 |
}
|
581 |
|
582 |
+
.from-web-btn {
|
|
|
|
|
|
|
583 |
padding-left: 25px !important;
|
584 |
+
border: medium none #646464 !important;
|
585 |
+
border: 1px solid #b0b0b0 !important;
|
586 |
+
color: #646464 !important;
|
587 |
+
background: #e6e6e6 url("../images/web.png") no-repeat scroll 7px 1px !important;
|
588 |
+
-webkit-box-shadow: none !important;
|
589 |
box-shadow: none !important;
|
590 |
font-family: "Open Sans",sans-serif;
|
591 |
font-weight: 700;
|
592 |
+
-webkit-transition: all 0.3s ease 0s;
|
593 |
+
transition: all 0.3s ease 0s;
|
594 |
/*margin-left: 2px !important;*/
|
595 |
}
|
596 |
|
597 |
+
.from-web-btn:hover {
|
|
|
|
|
|
|
598 |
padding-left: 25px !important;
|
|
|
|
|
|
|
|
|
|
|
599 |
/*margin-left: 2px !important;*/
|
600 |
+
border: 1px solid #89b158 !important;
|
601 |
+
color: white !important;
|
602 |
+
background: #89b158 url("../images/web.png") no-repeat scroll 7px -38px !important;
|
603 |
+
-webkit-box-shadow: none !important;
|
604 |
box-shadow: none !important;
|
605 |
+
-webkit-transition: all 0.3s ease 0s;
|
606 |
+
-webkit-transition: all 0.3s ease;
|
607 |
+
transition: all 0.3s ease 0s;
|
608 |
+
transition: all 0.3s ease;
|
609 |
}
|
610 |
|
611 |
+
.preview {
|
612 |
width: 100%;
|
613 |
}
|
614 |
|
|
|
615 |
#sidebar > ul > div.initial-screen > div {
|
616 |
padding: 0 20px;
|
617 |
}
|
618 |
|
619 |
+
.from-chart-btn {
|
|
|
|
|
|
|
620 |
padding-left: 25px !important;
|
621 |
+
border: medium none #646464 !important;
|
622 |
+
border: 1px solid #b0b0b0 !important;
|
623 |
+
color: #646464 !important;
|
624 |
+
background: #e6e6e6 url("../images/from_chart.png") no-repeat scroll 7px 1px !important;
|
625 |
+
-webkit-box-shadow: none !important;
|
626 |
box-shadow: none !important;
|
627 |
font-family: "Open Sans",sans-serif;
|
628 |
font-weight: 700;
|
629 |
+
-webkit-transition: all 0.3s ease 0s;
|
630 |
+
transition: all 0.3s ease 0s;
|
631 |
/*margin-left: 2px !important;
|
632 |
margin-top: 2px !important;*/
|
633 |
}
|
634 |
|
635 |
+
.from-chart-btn:hover {
|
636 |
+
padding-left: 25px !important;
|
637 |
+
/*margin-left: 2px !important;*/
|
638 |
+
border: 1px solid #10aecb !important;
|
639 |
+
color: white !important;
|
640 |
+
background: #10aecb url("../images/from_chart.png") no-repeat scroll 7px -36px !important;
|
641 |
+
-webkit-box-shadow: none !important;
|
642 |
+
box-shadow: none !important;
|
643 |
+
-webkit-transition: all 0.3s ease 0s;
|
644 |
+
-webkit-transition: all 0.3s ease;
|
645 |
+
transition: all 0.3s ease 0s;
|
646 |
+
transition: all 0.3s ease;
|
647 |
+
/*margin-top: 2px !important;*/
|
648 |
+
}
|
649 |
+
|
650 |
+
input#existing-chart {
|
651 |
+
/*left: 18px;
|
|
|
652 |
width: 110px;
|
653 |
position: relative;*/
|
654 |
+
}
|
|
|
|
|
|
|
|
|
|
|
655 |
|
656 |
+
select#chart-id {
|
657 |
+
float: right;
|
658 |
+
width: 95px;
|
659 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
660 |
|
661 |
+
button#editor-chart-button {
|
662 |
+
display: block;
|
663 |
+
margin: 0 auto;
|
|
|
|
|
664 |
border: 1px solid #2c80d6 !important;
|
665 |
+
color: white !important;
|
666 |
+
background-color: #2f8cea !important;
|
667 |
+
-webkit-box-shadow: none !important;
|
668 |
box-shadow: none !important;
|
669 |
+
text-shadow: none;
|
670 |
+
-webkit-transition: all 0.3s ease;
|
671 |
+
transition: all 0.3s ease;
|
|
|
|
|
672 |
}
|
673 |
|
674 |
+
.preview-btn {
|
675 |
+
border: 1px solid #2c80d6 !important;
|
676 |
+
color: white !important;
|
677 |
+
background-color: #2f8cea !important;
|
678 |
+
-webkit-box-shadow: none !important;
|
679 |
+
box-shadow: none !important;
|
680 |
font-family: "Open Sans",sans-serif;
|
681 |
font-weight: 700;
|
682 |
+
-webkit-transition: all 0.3s ease;
|
683 |
+
transition: all 0.3s ease;
|
684 |
+
}
|
685 |
+
|
686 |
+
.preview-btn:hover {
|
687 |
border: 1px solid #2c80d6 !important;
|
688 |
+
color: white !important;
|
689 |
+
background-color: #2c80d6 !important;
|
690 |
+
-webkit-box-shadow: none !important;
|
691 |
box-shadow: none !important;
|
692 |
+
font-family: "Open Sans",sans-serif;
|
693 |
+
font-weight: 700;
|
694 |
+
-webkit-transition: all 0.3s ease;
|
695 |
+
transition: all 0.3s ease;
|
|
|
696 |
}
|
697 |
|
698 |
+
.show-live-btn {
|
|
|
699 |
width: 100%;
|
700 |
+
margin-top: 15px !important;
|
701 |
+
border-color: #e98b00 !important;
|
702 |
+
background-color: #f90 !important;
|
703 |
+
-webkit-box-shadow: none !important;
|
704 |
+
box-shadow: none !important;
|
705 |
font-family: "Open Sans",sans-serif;
|
706 |
font-weight: 700;
|
|
|
707 |
}
|
708 |
|
709 |
+
.show-live-btn:hover {
|
|
|
|
|
710 |
width: 100%;
|
711 |
+
margin-top: 15px !important;
|
712 |
+
border-color: #e98b00 !important;
|
713 |
background-color: #ea8c00 !important;
|
714 |
+
-webkit-box-shadow: none !important;
|
715 |
+
box-shadow: none !important;
|
716 |
font-family: "Open Sans",sans-serif;
|
717 |
font-weight: 700;
|
718 |
+
-webkit-transition: all 0.3s ease;
|
719 |
+
transition: all 0.3s ease;
|
|
|
|
|
|
|
|
|
720 |
}
|
721 |
|
722 |
.check-pro-btn {
|
|
|
|
|
723 |
display: block;
|
724 |
+
width: 245px;
|
725 |
+
height: 40px;
|
726 |
margin: 0 auto;
|
727 |
}
|
728 |
|
729 |
+
.advanced-settings-btn,
|
730 |
+
.return-settings-btn {
|
731 |
display: block;
|
|
|
|
|
|
|
732 |
height: auto;
|
733 |
+
margin: 0 auto;
|
734 |
+
margin-top: 5px;
|
|
|
735 |
margin-bottom: 20px;
|
736 |
+
border-radius: 3px;
|
737 |
+
font-size: 17px;
|
738 |
+
line-height: 34px;
|
739 |
+
cursor: pointer;
|
740 |
}
|
741 |
|
742 |
.return-settings-btn {
|
752 |
}
|
753 |
|
754 |
.hidden-setting {
|
755 |
+
display: none;
|
756 |
}
|
757 |
|
758 |
+
/* ====== RESPONSIVE ====== */
|
759 |
|
760 |
+
@media (max-width: 1366px) {
|
761 |
+
.group-title {
|
762 |
+
padding: 4px 20px;
|
763 |
+
font-size: 14px;
|
764 |
+
font-weight: 400;
|
765 |
+
}
|
766 |
|
767 |
+
.group-title::after {
|
768 |
+
top: 10px;
|
769 |
+
}
|
770 |
|
771 |
+
#rate-stars {
|
772 |
+
margin: 3px 0 10px 40%;
|
773 |
+
}
|
774 |
|
775 |
+
.rate-the-plugin {
|
776 |
+
margin-left: -8%;
|
777 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
778 |
}
|
779 |
|
780 |
@media screen and (max-width: 782px) {
|
781 |
+
.button.button-primary.file-wrapper.computer-btn,
|
782 |
+
#remote-file,
|
783 |
+
#existing-chart {
|
784 |
+
height: 28px;
|
785 |
+
margin-bottom: 4px;
|
786 |
padding: 0 10px 1px;
|
787 |
+
font-size: 13px;
|
788 |
+
line-height: 26px;
|
789 |
+
vertical-align: middle;
|
|
|
|
|
790 |
}
|
|
|
791 |
}
|
css/library.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
#visualizer-icon {
|
2 |
-
background-image: url(
|
3 |
}
|
4 |
|
5 |
.visualizer-clearfix {
|
@@ -27,55 +27,55 @@
|
|
27 |
|
28 |
.loader {
|
29 |
position: absolute;
|
30 |
-
left: 50%;
|
31 |
top: 50%;
|
32 |
-
|
33 |
margin-top: -16px;
|
|
|
34 |
}
|
35 |
|
36 |
.visualizer-chart {
|
|
|
37 |
float: left;
|
38 |
-
padding: 5px;
|
39 |
margin: 0 24px 24px 0;
|
|
|
40 |
border: 1px solid #ddd;
|
41 |
-
-webkit-box-shadow: 0px 0px 8px #ddd;
|
42 |
-
box-shadow: 0px 0px 8px #ddd;
|
43 |
background-color: #efefef;
|
44 |
-
|
|
|
45 |
}
|
46 |
|
47 |
.visualizer-chart-canvas {
|
48 |
-
border: 1px solid #ddd;
|
49 |
-
background-color: white;
|
50 |
position: relative;
|
51 |
width: 30%;
|
52 |
height: 18.75%;
|
|
|
|
|
53 |
}
|
54 |
|
55 |
.visualizer-nochart-canvas {
|
56 |
-
background-image: url(
|
57 |
background-repeat: repeat;
|
58 |
}
|
59 |
|
60 |
.visualizer-notfound {
|
61 |
-
text-align: center;
|
62 |
-
font-weight: bold;
|
63 |
-
font-size: 14px;
|
64 |
-
margin-top: -7px;
|
65 |
position: absolute;
|
66 |
top: 50%;
|
67 |
-
left: 0;
|
68 |
right: 0;
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
|
71 |
.visualizer-chart-action {
|
72 |
-
float: right;
|
73 |
display: block;
|
74 |
-
|
75 |
width: 16px;
|
76 |
-
|
77 |
-
background-image: url('../images/ui-icons.png');
|
78 |
margin: 2px 5px 0;
|
|
|
|
|
79 |
}
|
80 |
|
81 |
.visualizer-nochart-delete,
|
@@ -95,15 +95,16 @@
|
|
95 |
|
96 |
.visualizer-nochart-export,
|
97 |
.visualizer-chart-export {
|
98 |
-
|
99 |
}
|
100 |
|
101 |
.visualizer-nochart-clone,
|
102 |
.visualizer-nochart-delete,
|
103 |
.visualizer-nochart-edit {
|
104 |
-
|
105 |
-
|
106 |
-
|
|
|
107 |
}
|
108 |
|
109 |
.visualizer-chart-footer {
|
@@ -111,16 +112,23 @@
|
|
111 |
}
|
112 |
|
113 |
.visualizer-chart-shortcode {
|
|
|
114 |
color: #aaa;
|
115 |
text-shadow: 0 1px 0 #fff;
|
116 |
cursor: pointer;
|
117 |
-
padding: 3px 0;
|
118 |
}
|
119 |
|
120 |
-
.visualizer-chart-shortcode
|
121 |
.visualizer-chart-shortcode::-moz-selection {
|
|
|
122 |
background-color: #a8d1ff;
|
|
|
|
|
|
|
|
|
|
|
123 |
color: black;
|
|
|
124 |
text-shadow: none;
|
125 |
}
|
126 |
|
@@ -131,17 +139,19 @@
|
|
131 |
|
132 |
.page-numbers {
|
133 |
padding: 5px 10px;
|
134 |
-
background-color: #aaa;
|
135 |
-
color: white !important;
|
136 |
-
text-decoration: none;
|
137 |
border-radius: 2px;
|
|
|
|
|
|
|
138 |
box-shadow: 0 0 5px #ccc;
|
139 |
font-weight: bold;
|
|
|
140 |
}
|
141 |
|
142 |
.page-numbers.current,
|
143 |
a.page-numbers:hover {
|
144 |
background-color: lightcoral;
|
|
|
145 |
box-shadow: 0 0 5px lightpink;
|
146 |
}
|
147 |
|
@@ -150,28 +160,36 @@ a.page-numbers:hover {
|
|
150 |
}
|
151 |
|
152 |
#visualizer-search form {
|
153 |
-
display:
|
|
|
|
|
|
|
|
|
|
|
154 |
align-items: center;
|
|
|
|
|
155 |
}
|
156 |
|
157 |
#visualizer-search > form > input[type="text"]:nth-child(1) {
|
158 |
height: 30px;
|
159 |
}
|
|
|
160 |
#visualizer-search .button-secondary {
|
161 |
-
|
162 |
-
box-shadow: 0 0 5px lightpink;
|
163 |
padding: 5px 10px;
|
164 |
-
color: white;
|
165 |
-
text-decoration: none;
|
166 |
-
-webkit-border-radius: 5px;
|
167 |
-
-moz-border-radius: 5px;
|
168 |
border-radius: 5px;
|
169 |
-
|
170 |
-
|
|
|
|
|
171 |
font-size: 14px;
|
172 |
-
|
|
|
|
|
173 |
}
|
|
|
174 |
#visualizer-search .button-secondary:hover {
|
175 |
-
background-color: lightpink;
|
176 |
border-color: lightpink;
|
|
|
177 |
}
|
1 |
#visualizer-icon {
|
2 |
+
background-image: url("../images/icon.png");
|
3 |
}
|
4 |
|
5 |
.visualizer-clearfix {
|
27 |
|
28 |
.loader {
|
29 |
position: absolute;
|
|
|
30 |
top: 50%;
|
31 |
+
left: 50%;
|
32 |
margin-top: -16px;
|
33 |
+
margin-left: -16px;
|
34 |
}
|
35 |
|
36 |
.visualizer-chart {
|
37 |
+
display: none;
|
38 |
float: left;
|
|
|
39 |
margin: 0 24px 24px 0;
|
40 |
+
padding: 5px;
|
41 |
border: 1px solid #ddd;
|
|
|
|
|
42 |
background-color: #efefef;
|
43 |
+
-webkit-box-shadow: 0 0 8px #ddd;
|
44 |
+
box-shadow: 0 0 8px #ddd;
|
45 |
}
|
46 |
|
47 |
.visualizer-chart-canvas {
|
|
|
|
|
48 |
position: relative;
|
49 |
width: 30%;
|
50 |
height: 18.75%;
|
51 |
+
border: 1px solid #ddd;
|
52 |
+
background-color: white;
|
53 |
}
|
54 |
|
55 |
.visualizer-nochart-canvas {
|
56 |
+
background-image: url("../images/notfound.png?v=4");
|
57 |
background-repeat: repeat;
|
58 |
}
|
59 |
|
60 |
.visualizer-notfound {
|
|
|
|
|
|
|
|
|
61 |
position: absolute;
|
62 |
top: 50%;
|
|
|
63 |
right: 0;
|
64 |
+
left: 0;
|
65 |
+
margin-top: -7px;
|
66 |
+
font-size: 14px;
|
67 |
+
font-weight: bold;
|
68 |
+
text-align: center;
|
69 |
}
|
70 |
|
71 |
.visualizer-chart-action {
|
|
|
72 |
display: block;
|
73 |
+
float: right;
|
74 |
width: 16px;
|
75 |
+
height: 16px;
|
|
|
76 |
margin: 2px 5px 0;
|
77 |
+
background-image: url("../images/ui-icons.png");
|
78 |
+
background-repeat: no-repeat;
|
79 |
}
|
80 |
|
81 |
.visualizer-nochart-delete,
|
95 |
|
96 |
.visualizer-nochart-export,
|
97 |
.visualizer-chart-export {
|
98 |
+
background-position: -46px -64px;
|
99 |
}
|
100 |
|
101 |
.visualizer-nochart-clone,
|
102 |
.visualizer-nochart-delete,
|
103 |
.visualizer-nochart-edit {
|
104 |
+
opacity: 0.5;
|
105 |
+
|
106 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
107 |
+
filter: alpha(opacity=50);
|
108 |
}
|
109 |
|
110 |
.visualizer-chart-footer {
|
112 |
}
|
113 |
|
114 |
.visualizer-chart-shortcode {
|
115 |
+
padding: 3px 0;
|
116 |
color: #aaa;
|
117 |
text-shadow: 0 1px 0 #fff;
|
118 |
cursor: pointer;
|
|
|
119 |
}
|
120 |
|
121 |
+
.visualizer-chart-shortcode::-moz-selection,
|
122 |
.visualizer-chart-shortcode::-moz-selection {
|
123 |
+
color: black;
|
124 |
background-color: #a8d1ff;
|
125 |
+
text-shadow: none;
|
126 |
+
}
|
127 |
+
|
128 |
+
.visualizer-chart-shortcode::selection,
|
129 |
+
.visualizer-chart-shortcode::-moz-selection {
|
130 |
color: black;
|
131 |
+
background-color: #a8d1ff;
|
132 |
text-shadow: none;
|
133 |
}
|
134 |
|
139 |
|
140 |
.page-numbers {
|
141 |
padding: 5px 10px;
|
|
|
|
|
|
|
142 |
border-radius: 2px;
|
143 |
+
color: white !important;
|
144 |
+
background-color: #aaa;
|
145 |
+
-webkit-box-shadow: 0 0 5px #ccc;
|
146 |
box-shadow: 0 0 5px #ccc;
|
147 |
font-weight: bold;
|
148 |
+
text-decoration: none;
|
149 |
}
|
150 |
|
151 |
.page-numbers.current,
|
152 |
a.page-numbers:hover {
|
153 |
background-color: lightcoral;
|
154 |
+
-webkit-box-shadow: 0 0 5px lightpink;
|
155 |
box-shadow: 0 0 5px lightpink;
|
156 |
}
|
157 |
|
160 |
}
|
161 |
|
162 |
#visualizer-search form {
|
163 |
+
display: -webkit-box;
|
164 |
+
display: -webkit-flex;
|
165 |
+
display: -ms-flexbox;
|
166 |
+
display: flex;
|
167 |
+
|
168 |
+
-webkit-align-items: center;
|
169 |
align-items: center;
|
170 |
+
-webkit-box-align: center;
|
171 |
+
-ms-flex-align: center;
|
172 |
}
|
173 |
|
174 |
#visualizer-search > form > input[type="text"]:nth-child(1) {
|
175 |
height: 30px;
|
176 |
}
|
177 |
+
|
178 |
#visualizer-search .button-secondary {
|
179 |
+
margin-left: 20px;
|
|
|
180 |
padding: 5px 10px;
|
|
|
|
|
|
|
|
|
181 |
border-radius: 5px;
|
182 |
+
color: white;
|
183 |
+
background-color: lightcoral;
|
184 |
+
-webkit-box-shadow: 0 0 5px lightpink;
|
185 |
+
box-shadow: 0 0 5px lightpink;
|
186 |
font-size: 14px;
|
187 |
+
font-weight: bold;
|
188 |
+
line-height: 17px;
|
189 |
+
text-decoration: none;
|
190 |
}
|
191 |
+
|
192 |
#visualizer-search .button-secondary:hover {
|
|
|
193 |
border-color: lightpink;
|
194 |
+
background-color: lightpink;
|
195 |
}
|
css/media.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/*
|
2 |
-
Version: 1.
|
3 |
*/
|
4 |
#visualizer-library-view {
|
5 |
padding: 30px 10px 10px 30px;
|
@@ -30,46 +30,46 @@
|
|
30 |
margin: 0 20px 20px 0;
|
31 |
padding: 5px;
|
32 |
border: 1px solid #ddd;
|
33 |
-
-webkit-box-shadow: 0px 0px 8px #ddd;
|
34 |
-
box-shadow: 0px 0px 8px #ddd;
|
35 |
background-color: #efefef;
|
|
|
|
|
36 |
}
|
37 |
|
38 |
.visualizer-library-chart-canvas {
|
39 |
-
height: 187px;
|
40 |
width: 250px;
|
|
|
41 |
border: 1px solid #ddd;
|
42 |
background-color: white;
|
43 |
-
background-image: url(
|
44 |
-
background-position: center center;
|
45 |
background-repeat: no-repeat;
|
|
|
46 |
}
|
47 |
|
48 |
.visualizer-library-nochart-canvas {
|
49 |
-
background-image: url('../images/notfound.png?v=4');
|
50 |
-
background-repeat: repeat;
|
51 |
position: relative;
|
|
|
|
|
52 |
}
|
53 |
|
54 |
.visualizer-library-notfound {
|
55 |
-
text-align: center;
|
56 |
-
font-weight: bold;
|
57 |
-
font-size: 14px;
|
58 |
-
margin-top: -7px;
|
59 |
position: absolute;
|
60 |
top: 50%;
|
61 |
-
left: 0;
|
62 |
right: 0;
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
|
65 |
.visualizer-library-chart-action {
|
66 |
-
float: right;
|
67 |
display: block;
|
68 |
-
|
69 |
width: 16px;
|
70 |
-
|
71 |
-
background-image: url('../images/ui-icons.png');
|
72 |
margin: 2px 5px 0;
|
|
|
|
|
73 |
}
|
74 |
|
75 |
.visualizer-library-nochart-delete,
|
@@ -84,9 +84,10 @@
|
|
84 |
|
85 |
.visualizer-library-nochart-delete,
|
86 |
.visualizer-library-nochart-insert {
|
87 |
-
|
88 |
-
|
89 |
-
|
|
|
90 |
}
|
91 |
|
92 |
.visualizer-library-chart-footer {
|
@@ -94,16 +95,23 @@
|
|
94 |
}
|
95 |
|
96 |
.visualizer-library-chart-shortcode {
|
|
|
97 |
color: #aaa;
|
98 |
text-shadow: 0 1px 0 #fff;
|
99 |
cursor: pointer;
|
100 |
-
padding: 3px 0;
|
101 |
}
|
102 |
|
103 |
-
.visualizer-library-chart-shortcode
|
104 |
.visualizer-library-chart-shortcode::-moz-selection {
|
|
|
105 |
background-color: #a8d1ff;
|
|
|
|
|
|
|
|
|
|
|
106 |
color: black;
|
|
|
107 |
text-shadow: none;
|
108 |
}
|
109 |
|
@@ -113,43 +121,47 @@
|
|
113 |
|
114 |
.visualizer-library-pagination-item {
|
115 |
float: left;
|
116 |
-
margin-left: 20px;
|
117 |
margin-top: 10px;
|
|
|
118 |
}
|
119 |
|
120 |
.visualizer-library-pagination-page {
|
121 |
padding: 5px 10px;
|
122 |
-
background-color: #aaa;
|
123 |
-
color: white !important;
|
124 |
-
text-decoration: none;
|
125 |
border-radius: 2px;
|
|
|
|
|
|
|
126 |
box-shadow: 0 0 5px #ccc;
|
127 |
font-weight: bold;
|
|
|
128 |
}
|
129 |
|
130 |
.visualizer-library-pagination-active > .visualizer-library-pagination-page,
|
131 |
a.visualizer-library-pagination-page:hover {
|
132 |
background-color: lightcoral;
|
|
|
133 |
box-shadow: 0 0 5px lightpink;
|
134 |
}
|
135 |
|
136 |
-
.locker,
|
137 |
-
|
|
|
138 |
top: 0;
|
|
|
139 |
width: 100%;
|
140 |
height: 100%;
|
141 |
-
position: absolute;
|
142 |
}
|
143 |
|
144 |
.locker {
|
145 |
z-index: 1000;
|
|
|
146 |
background-color: white;
|
|
|
147 |
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
|
148 |
filter: alpha(opacity=80);
|
149 |
-
opacity: 0.8;
|
150 |
}
|
151 |
|
152 |
.locker-loader {
|
153 |
z-index: 1001;
|
154 |
background: url(../images/ajax-loader.gif) no-repeat center center;
|
155 |
-
}
|
1 |
/*
|
2 |
+
Version: 1.7.0
|
3 |
*/
|
4 |
#visualizer-library-view {
|
5 |
padding: 30px 10px 10px 30px;
|
30 |
margin: 0 20px 20px 0;
|
31 |
padding: 5px;
|
32 |
border: 1px solid #ddd;
|
|
|
|
|
33 |
background-color: #efefef;
|
34 |
+
-webkit-box-shadow: 0 0 8px #ddd;
|
35 |
+
box-shadow: 0 0 8px #ddd;
|
36 |
}
|
37 |
|
38 |
.visualizer-library-chart-canvas {
|
|
|
39 |
width: 250px;
|
40 |
+
height: 187px;
|
41 |
border: 1px solid #ddd;
|
42 |
background-color: white;
|
43 |
+
background-image: url("../images/ajax-loader.gif");
|
|
|
44 |
background-repeat: no-repeat;
|
45 |
+
background-position: center center;
|
46 |
}
|
47 |
|
48 |
.visualizer-library-nochart-canvas {
|
|
|
|
|
49 |
position: relative;
|
50 |
+
background-image: url("../images/notfound.png?v=4");
|
51 |
+
background-repeat: repeat;
|
52 |
}
|
53 |
|
54 |
.visualizer-library-notfound {
|
|
|
|
|
|
|
|
|
55 |
position: absolute;
|
56 |
top: 50%;
|
|
|
57 |
right: 0;
|
58 |
+
left: 0;
|
59 |
+
margin-top: -7px;
|
60 |
+
font-size: 14px;
|
61 |
+
font-weight: bold;
|
62 |
+
text-align: center;
|
63 |
}
|
64 |
|
65 |
.visualizer-library-chart-action {
|
|
|
66 |
display: block;
|
67 |
+
float: right;
|
68 |
width: 16px;
|
69 |
+
height: 16px;
|
|
|
70 |
margin: 2px 5px 0;
|
71 |
+
background-image: url("../images/ui-icons.png");
|
72 |
+
background-repeat: no-repeat;
|
73 |
}
|
74 |
|
75 |
.visualizer-library-nochart-delete,
|
84 |
|
85 |
.visualizer-library-nochart-delete,
|
86 |
.visualizer-library-nochart-insert {
|
87 |
+
opacity: 0.5;
|
88 |
+
|
89 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
90 |
+
filter: alpha(opacity=50);
|
91 |
}
|
92 |
|
93 |
.visualizer-library-chart-footer {
|
95 |
}
|
96 |
|
97 |
.visualizer-library-chart-shortcode {
|
98 |
+
padding: 3px 0;
|
99 |
color: #aaa;
|
100 |
text-shadow: 0 1px 0 #fff;
|
101 |
cursor: pointer;
|
|
|
102 |
}
|
103 |
|
104 |
+
.visualizer-library-chart-shortcode::-moz-selection,
|
105 |
.visualizer-library-chart-shortcode::-moz-selection {
|
106 |
+
color: black;
|
107 |
background-color: #a8d1ff;
|
108 |
+
text-shadow: none;
|
109 |
+
}
|
110 |
+
|
111 |
+
.visualizer-library-chart-shortcode::selection,
|
112 |
+
.visualizer-library-chart-shortcode::-moz-selection {
|
113 |
color: black;
|
114 |
+
background-color: #a8d1ff;
|
115 |
text-shadow: none;
|
116 |
}
|
117 |
|
121 |
|
122 |
.visualizer-library-pagination-item {
|
123 |
float: left;
|
|
|
124 |
margin-top: 10px;
|
125 |
+
margin-left: 20px;
|
126 |
}
|
127 |
|
128 |
.visualizer-library-pagination-page {
|
129 |
padding: 5px 10px;
|
|
|
|
|
|
|
130 |
border-radius: 2px;
|
131 |
+
color: white !important;
|
132 |
+
background-color: #aaa;
|
133 |
+
-webkit-box-shadow: 0 0 5px #ccc;
|
134 |
box-shadow: 0 0 5px #ccc;
|
135 |
font-weight: bold;
|
136 |
+
text-decoration: none;
|
137 |
}
|
138 |
|
139 |
.visualizer-library-pagination-active > .visualizer-library-pagination-page,
|
140 |
a.visualizer-library-pagination-page:hover {
|
141 |
background-color: lightcoral;
|
142 |
+
-webkit-box-shadow: 0 0 5px lightpink;
|
143 |
box-shadow: 0 0 5px lightpink;
|
144 |
}
|
145 |
|
146 |
+
.locker,
|
147 |
+
.locker-loader {
|
148 |
+
position: absolute;
|
149 |
top: 0;
|
150 |
+
left: 0;
|
151 |
width: 100%;
|
152 |
height: 100%;
|
|
|
153 |
}
|
154 |
|
155 |
.locker {
|
156 |
z-index: 1000;
|
157 |
+
opacity: 0.8;
|
158 |
background-color: white;
|
159 |
+
|
160 |
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
|
161 |
filter: alpha(opacity=80);
|
|
|
162 |
}
|
163 |
|
164 |
.locker-loader {
|
165 |
z-index: 1001;
|
166 |
background: url(../images/ajax-loader.gif) no-repeat center center;
|
167 |
+
}
|
images/ajax-loader.gif
CHANGED
Binary file
|
images/available_pro.png
CHANGED
Binary file
|
images/computer.png
CHANGED
Binary file
|
images/from_chart.png
CHANGED
Binary file
|
images/notfound.png
CHANGED
Binary file
|
images/star.png
CHANGED
Binary file
|
images/ui-icons.png
CHANGED
Binary file
|
images/web.png
CHANGED
Binary file
|
index.php
CHANGED
@@ -1,15 +1,16 @@
|
|
1 |
<?php
|
|
|
2 |
/*
|
3 |
-
Plugin Name: Visualizer: Charts and Graphs Lite
|
4 |
-
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
|
5 |
-
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.
|
6 |
-
Version: 1.
|
7 |
-
Author: Themeisle
|
8 |
-
Author URI: http://themeisle.com
|
9 |
-
License: GPL v2.0 or later
|
10 |
-
License URI: http://www.opensource.org/licenses/gpl-license.php
|
11 |
*/
|
12 |
-
|
13 |
|
14 |
// +----------------------------------------------------------------------+
|
15 |
// | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
|
@@ -30,24 +31,22 @@ License URI: http://www.opensource.org/licenses/gpl-license.php
|
|
30 |
// +----------------------------------------------------------------------+
|
31 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
32 |
// +----------------------------------------------------------------------+
|
33 |
-
|
34 |
// prevent direct access to the plugin folder
|
35 |
-
if ( !defined( 'ABSPATH' ) ) {
|
36 |
header( 'HTTP/1.0 404 Not Found', true, 404 );
|
37 |
exit;
|
38 |
}
|
39 |
|
40 |
// don't load the plugin, if it has been already loaded
|
41 |
if ( class_exists( 'Visualizer_Plugin', false ) ) {
|
42 |
-
|
43 |
}
|
44 |
|
45 |
// Added by Ash/Upwork
|
46 |
-
if ( class_exists( 'Visualizer_Pro', false ) ){
|
47 |
-
|
48 |
}
|
49 |
// Added by Ash/Upwork
|
50 |
-
|
51 |
/**
|
52 |
* Automatically loads classes for the plugin. Checks a namespace and loads only
|
53 |
* approved classes.
|
@@ -83,11 +82,11 @@ function visualizer_launch() {
|
|
83 |
define( 'VISUALIZER_ABSURL', plugins_url( '/', __FILE__ ) );
|
84 |
define( 'VISUALIZER_ABSPATH', dirname( __FILE__ ) );
|
85 |
|
86 |
-
if ( !defined( 'VISUALIZER_CSV_DELIMITER' ) ) {
|
87 |
define( 'VISUALIZER_CSV_DELIMITER', ',' );
|
88 |
}
|
89 |
|
90 |
-
if ( !defined( 'VISUALIZER_CSV_ENCLOSURE' ) ) {
|
91 |
define( 'VISUALIZER_CSV_ENCLOSURE', '"' );
|
92 |
}
|
93 |
|
1 |
<?php
|
2 |
+
|
3 |
/*
|
4 |
+
Plugin Name: Visualizer: Charts and Graphs Lite
|
5 |
+
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
|
6 |
+
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: 1.7.0
|
8 |
+
Author: Themeisle
|
9 |
+
Author URI: http://themeisle.com
|
10 |
+
License: GPL v2.0 or later
|
11 |
+
License URI: http://www.opensource.org/licenses/gpl-license.php
|
12 |
*/
|
13 |
+
|
14 |
|
15 |
// +----------------------------------------------------------------------+
|
16 |
// | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
|
31 |
// +----------------------------------------------------------------------+
|
32 |
// | Author: Eugene Manuilov <eugene@manuilov.org> |
|
33 |
// +----------------------------------------------------------------------+
|
|
|
34 |
// prevent direct access to the plugin folder
|
35 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
36 |
header( 'HTTP/1.0 404 Not Found', true, 404 );
|
37 |
exit;
|
38 |
}
|
39 |
|
40 |
// don't load the plugin, if it has been already loaded
|
41 |
if ( class_exists( 'Visualizer_Plugin', false ) ) {
|
42 |
+
return;
|
43 |
}
|
44 |
|
45 |
// Added by Ash/Upwork
|
46 |
+
if ( class_exists( 'Visualizer_Pro', false ) ) {
|
47 |
+
define( 'Visualizer_Pro', true );
|
48 |
}
|
49 |
// Added by Ash/Upwork
|
|
|
50 |
/**
|
51 |
* Automatically loads classes for the plugin. Checks a namespace and loads only
|
52 |
* approved classes.
|
82 |
define( 'VISUALIZER_ABSURL', plugins_url( '/', __FILE__ ) );
|
83 |
define( 'VISUALIZER_ABSPATH', dirname( __FILE__ ) );
|
84 |
|
85 |
+
if ( ! defined( 'VISUALIZER_CSV_DELIMITER' ) ) {
|
86 |
define( 'VISUALIZER_CSV_DELIMITER', ',' );
|
87 |
}
|
88 |
|
89 |
+
if ( ! defined( 'VISUALIZER_CSV_ENCLOSURE' ) ) {
|
90 |
define( 'VISUALIZER_CSV_ENCLOSURE', '"' );
|
91 |
}
|
92 |
|
js/frame.js
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
(function($) {
|
2 |
$(document).ready(function() {
|
3 |
$('.type-radio').change(function() {
|
@@ -19,9 +23,9 @@
|
|
19 |
$('#remote-file').click(function() {
|
20 |
var url = $.trim(prompt(visualizer.l10n.remotecsv_prompt));
|
21 |
|
22 |
-
if (url
|
23 |
if (/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url)) {
|
24 |
-
if (url.substr(url.length - 8)
|
25 |
url = url.substring(0, url.length - 8) + '/export?format=csv';
|
26 |
}
|
27 |
|
@@ -36,7 +40,7 @@
|
|
36 |
});
|
37 |
|
38 |
$('#csv-file').change(function() {
|
39 |
-
if ($.trim($(this).val())
|
40 |
$('#remote-data').val('');
|
41 |
$('#canvas').lock();
|
42 |
$('#csv-form').submit();
|
@@ -96,7 +100,7 @@
|
|
96 |
});
|
97 |
|
98 |
return $(this);
|
99 |
-
}
|
100 |
|
101 |
$.fn.unlock = function() {
|
102 |
$(this).each(function() {
|
@@ -105,7 +109,7 @@
|
|
105 |
});
|
106 |
|
107 |
return $(this);
|
108 |
-
}
|
109 |
})(jQuery);
|
110 |
|
111 |
//Hide / show settings in sidebar
|
1 |
+
/* global prompt */
|
2 |
+
/* global visualizer */
|
3 |
+
/* global alert */
|
4 |
+
|
5 |
(function($) {
|
6 |
$(document).ready(function() {
|
7 |
$('.type-radio').change(function() {
|
23 |
$('#remote-file').click(function() {
|
24 |
var url = $.trim(prompt(visualizer.l10n.remotecsv_prompt));
|
25 |
|
26 |
+
if (url !== '') {
|
27 |
if (/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url)) {
|
28 |
+
if (url.substr(url.length - 8) === '/pubhtml') {
|
29 |
url = url.substring(0, url.length - 8) + '/export?format=csv';
|
30 |
}
|
31 |
|
40 |
});
|
41 |
|
42 |
$('#csv-file').change(function() {
|
43 |
+
if ($.trim($(this).val()) !== '') {
|
44 |
$('#remote-data').val('');
|
45 |
$('#canvas').lock();
|
46 |
$('#csv-form').submit();
|
100 |
});
|
101 |
|
102 |
return $(this);
|
103 |
+
};
|
104 |
|
105 |
$.fn.unlock = function() {
|
106 |
$(this).each(function() {
|
109 |
});
|
110 |
|
111 |
return $(this);
|
112 |
+
};
|
113 |
})(jQuery);
|
114 |
|
115 |
//Hide / show settings in sidebar
|
js/library.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
(function(wpmv) {
|
2 |
var vm, vmv;
|
3 |
|
@@ -37,7 +38,7 @@
|
|
37 |
width *= 0.305;
|
38 |
$(this).width(width - 14).height(width * 0.75).parent().css('margin-right', margin + 'px').css('margin-bottom', margin + 'px');
|
39 |
});
|
40 |
-
}
|
41 |
|
42 |
$('.visualizer-chart-canvas').adjust();
|
43 |
|
1 |
+
/* global visualizer */
|
2 |
(function(wpmv) {
|
3 |
var vm, vmv;
|
4 |
|
38 |
width *= 0.305;
|
39 |
$(this).width(width - 14).height(width * 0.75).parent().css('margin-right', margin + 'px').css('margin-bottom', margin + 'px');
|
40 |
});
|
41 |
+
};
|
42 |
|
43 |
$('.visualizer-chart-canvas').adjust();
|
44 |
|
js/media.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
(function(wpmv, g) {
|
2 |
var mediaFrame, wpmvtv;
|
3 |
|
1 |
+
/* global google */
|
2 |
(function(wpmv, g) {
|
3 |
var mediaFrame, wpmvtv;
|
4 |
|
js/media/model.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
|
4 |
wpmm.visualizer.Chart = Backbone.Model.extend({
|
5 |
sync: function(method, model, options) {
|
6 |
-
if ('delete'
|
7 |
options = options || {};
|
8 |
options.data = _.extend( options.data || {}, {
|
9 |
action: wpmvlv.actions.delete_chart,
|
3 |
|
4 |
wpmm.visualizer.Chart = Backbone.Model.extend({
|
5 |
sync: function(method, model, options) {
|
6 |
+
if ('delete' === method) {
|
7 |
options = options || {};
|
8 |
options.data = _.extend( options.data || {}, {
|
9 |
action: wpmvlv.actions.delete_chart,
|
js/media/view.js
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
(function($, wpm) {
|
2 |
var libraryWidth, libraryHeight, wpmv, wpmV, wpmvv, wpmvvl, wpmvvb, l10n;
|
3 |
|
@@ -55,14 +59,14 @@
|
|
55 |
settings.height = self.options.height;
|
56 |
|
57 |
table = new gv.DataTable({cols: series});
|
58 |
-
chart = type
|
59 |
chart = new gv[chart](self.el);
|
60 |
|
61 |
switch (type) {
|
62 |
case 'pie':
|
63 |
if (settings.slices) {
|
64 |
for (i in settings.slices) {
|
65 |
-
if (settings.slices[i]['color']
|
66 |
delete settings.slices[i]['color'];
|
67 |
}
|
68 |
}
|
@@ -76,14 +80,14 @@
|
|
76 |
case 'candlestick':
|
77 |
if (settings.series) {
|
78 |
for (i in settings.series) {
|
79 |
-
if (settings.series[i]['color']
|
80 |
delete settings.series[i]['color'];
|
81 |
}
|
82 |
}
|
83 |
}
|
84 |
break;
|
85 |
case 'geo':
|
86 |
-
if (settings.region
|
87 |
settings['region'] = 'world';
|
88 |
}
|
89 |
break;
|
@@ -93,7 +97,7 @@
|
|
93 |
return;
|
94 |
}
|
95 |
|
96 |
-
if (series[0] && (series[0].type
|
97 |
axis = false;
|
98 |
switch (type) {
|
99 |
case 'line':
|
@@ -126,7 +130,7 @@
|
|
126 |
for (i = 0; i < data.length; i++) {
|
127 |
row = [];
|
128 |
for (j = 0; j < series.length; j++) {
|
129 |
-
if (series[j].type
|
130 |
date = new Date(data[i][j]);
|
131 |
data[i][j] = null;
|
132 |
if (Object.prototype.toString.call(date) === "[object Date]") {
|
@@ -143,7 +147,7 @@
|
|
143 |
if (settings.series) {
|
144 |
for (i = 0; i < settings.series.length; i++) {
|
145 |
format = settings.series[i].format;
|
146 |
-
if (!format || format
|
147 |
continue;
|
148 |
}
|
149 |
|
@@ -397,13 +401,9 @@
|
|
397 |
self.$el.html(_.chain(items).map(function(item) {
|
398 |
var content, className;
|
399 |
|
400 |
-
content = item
|
401 |
-
? self.make('span', { class: 'visualizer-library-pagination-page' }, item)
|
402 |
-
: self.make('a', { class: 'visualizer-library-pagination-page', href: 'javascript:;', 'data-page': item }, item);
|
403 |
|
404 |
-
className = item
|
405 |
-
? 'visualizer-library-pagination-item visualizer-library-pagination-active'
|
406 |
-
: 'visualizer-library-pagination-item';
|
407 |
|
408 |
return self.make('li', { class: className }, content);
|
409 |
}).value());
|
@@ -419,7 +419,7 @@
|
|
419 |
} else {
|
420 |
tmp = current - Math.floor( max / 2 );
|
421 |
|
422 |
-
if ( max % 2
|
423 |
tmp++;
|
424 |
}
|
425 |
|
@@ -435,12 +435,12 @@
|
|
435 |
pagenation.push(tmp++);
|
436 |
}
|
437 |
|
438 |
-
if ( pagenation[0]
|
439 |
pagenation[0] = 1;
|
440 |
pagenation[1] = '...';
|
441 |
}
|
442 |
|
443 |
-
if ( pagenation[max - 1]
|
444 |
pagenation[max - 1] = total;
|
445 |
pagenation[max - 2] = '...';
|
446 |
}
|
@@ -487,7 +487,7 @@
|
|
487 |
});
|
488 |
|
489 |
return $(this);
|
490 |
-
}
|
491 |
|
492 |
$.fn.unlock = function() {
|
493 |
$(this).each(function() {
|
@@ -500,5 +500,5 @@
|
|
500 |
});
|
501 |
|
502 |
return $(this);
|
503 |
-
}
|
504 |
})(jQuery);
|
1 |
+
/*jshint scripturl:true*/
|
2 |
+
/* global google */
|
3 |
+
/* global visualizer */
|
4 |
+
/* global showNotice */
|
5 |
(function($, wpm) {
|
6 |
var libraryWidth, libraryHeight, wpmv, wpmV, wpmvv, wpmvvl, wpmvvb, l10n;
|
7 |
|
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 |
}
|
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;
|
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':
|
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]") {
|
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 |
|
401 |
self.$el.html(_.chain(items).map(function(item) {
|
402 |
var content, className;
|
403 |
|
404 |
+
content = item === '...' || item === self.options.page ? self.make('span', { class: 'visualizer-library-pagination-page' }, item) : self.make('a', { class: 'visualizer-library-pagination-page', href: 'javascript:;', 'data-page': item }, item);
|
|
|
|
|
405 |
|
406 |
+
className = item === self.options.page ? 'visualizer-library-pagination-item visualizer-library-pagination-active' : 'visualizer-library-pagination-item';
|
|
|
|
|
407 |
|
408 |
return self.make('li', { class: className }, content);
|
409 |
}).value());
|
419 |
} else {
|
420 |
tmp = current - Math.floor( max / 2 );
|
421 |
|
422 |
+
if ( max % 2 === 0 ) {
|
423 |
tmp++;
|
424 |
}
|
425 |
|
435 |
pagenation.push(tmp++);
|
436 |
}
|
437 |
|
438 |
+
if ( pagenation[0] !== 1 ) {
|
439 |
pagenation[0] = 1;
|
440 |
pagenation[1] = '...';
|
441 |
}
|
442 |
|
443 |
+
if ( pagenation[max - 1] !== total ) {
|
444 |
pagenation[max - 1] = total;
|
445 |
pagenation[max - 2] = '...';
|
446 |
}
|
487 |
});
|
488 |
|
489 |
return $(this);
|
490 |
+
};
|
491 |
|
492 |
$.fn.unlock = function() {
|
493 |
$(this).each(function() {
|
500 |
});
|
501 |
|
502 |
return $(this);
|
503 |
+
};
|
504 |
})(jQuery);
|
js/preview.js
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
(function($, v) {
|
2 |
var timeout;
|
3 |
|
1 |
+
/* global visualizer */
|
2 |
(function($, v) {
|
3 |
var timeout;
|
4 |
|
js/render.js
CHANGED
@@ -1,3 +1,5 @@
|
|
|
|
|
|
1 |
(function(v, g) {
|
2 |
var gv;
|
3 |
|
@@ -34,7 +36,7 @@
|
|
34 |
case 'pie':
|
35 |
if (settings.slices) {
|
36 |
for (i in settings.slices) {
|
37 |
-
if (settings.slices[i]['color']
|
38 |
delete settings.slices[i]['color'];
|
39 |
}
|
40 |
}
|
@@ -48,24 +50,24 @@
|
|
48 |
case 'candlestick':
|
49 |
if (settings.series) {
|
50 |
for (i in settings.series) {
|
51 |
-
if (settings.series[i]['color']
|
52 |
delete settings.series[i]['color'];
|
53 |
}
|
54 |
}
|
55 |
}
|
56 |
|
57 |
-
if (settings.series && settings.legend && settings.legend.position
|
58 |
{
|
59 |
settings.targetAxisIndex = 1;
|
60 |
}
|
61 |
break;
|
62 |
case 'geo':
|
63 |
-
if (settings.region
|
64 |
settings['region'] = 'world';
|
65 |
}
|
66 |
break;
|
67 |
case 'table':
|
68 |
-
if (parseInt(settings['pagination'])
|
69 |
{
|
70 |
delete settings['pageSize'];
|
71 |
}
|
@@ -77,23 +79,23 @@
|
|
77 |
settings['timeline']['groupByRowLabel'] = settings['groupByRowLabel'] ? true : false;
|
78 |
settings['timeline']['colorByRowLabel'] = settings['colorByRowLabel'] ? true : false;
|
79 |
settings['timeline']['showRowLabels'] = settings['showRowLabels'] ? true : false;
|
80 |
-
if(settings['singleColor']
|
81 |
settings['timeline']['singleColor'] = settings['singleColor'];
|
82 |
}
|
83 |
break;
|
84 |
case 'combo':
|
85 |
if (settings.series) {
|
86 |
for (i in settings.series) {
|
87 |
-
if (settings.series[i]['type']
|
88 |
delete settings.series[i]['type'];
|
89 |
}
|
90 |
-
if (settings.series[i]['color']
|
91 |
delete settings.series[i]['color'];
|
92 |
}
|
93 |
}
|
94 |
}
|
95 |
|
96 |
-
if (settings.series && settings.legend && settings.legend.position
|
97 |
{
|
98 |
settings.targetAxisIndex = 1;
|
99 |
}
|
@@ -102,7 +104,7 @@
|
|
102 |
return;
|
103 |
}
|
104 |
|
105 |
-
if (series[0] && (series[0].type
|
106 |
axis = false;
|
107 |
switch (v.charts[id].type) {
|
108 |
case 'line':
|
@@ -133,13 +135,13 @@
|
|
133 |
}
|
134 |
|
135 |
if(settings.hAxis){
|
136 |
-
if(settings.hAxis.textStyle && settings.hAxis.textStyle
|
137 |
settings.hAxis.textStyle = {color: settings.hAxis.textStyle};
|
138 |
}
|
139 |
}
|
140 |
|
141 |
if(settings.vAxis){
|
142 |
-
if(settings.vAxis.textStyle && settings.vAxis.textStyle
|
143 |
settings.vAxis.textStyle = {color: settings.vAxis.textStyle};
|
144 |
}
|
145 |
}
|
@@ -147,7 +149,7 @@
|
|
147 |
for (i = 0; i < data.length; i++) {
|
148 |
row = [];
|
149 |
for (j = 0; j < series.length; j++) {
|
150 |
-
if (series[j].type
|
151 |
date = new Date(data[i][j]);
|
152 |
data[i][j] = null;
|
153 |
if (Object.prototype.toString.call(date) === "[object Date]") {
|
@@ -164,7 +166,7 @@
|
|
164 |
if (settings.series) {
|
165 |
for (i = 0; i < settings.series.length; i++) {
|
166 |
format = settings.series[i].format;
|
167 |
-
if (!format || format
|
168 |
continue;
|
169 |
}
|
170 |
|
@@ -211,23 +213,30 @@
|
|
211 |
resizeTimeout = setTimeout(v.render, 100);
|
212 |
});
|
213 |
|
214 |
-
resizeHiddenContainers();
|
215 |
});
|
216 |
|
217 |
-
function
|
|
|
|
|
|
|
|
|
218 |
$(".visualizer-front").parents().each(function(){
|
219 |
-
if(!$(this).is(":visible")){
|
220 |
$(this).addClass("visualizer-hidden-container");
|
221 |
}
|
222 |
});
|
223 |
|
224 |
var mutateObserver = new MutationObserver(function(records) {
|
225 |
records.forEach(function(record) {
|
226 |
-
if(record.attributeName
|
227 |
var element = $(record.target);
|
228 |
var displayStyle = window.getComputedStyle(element[0]).getPropertyValue("display");
|
229 |
-
if(element.hasClass("visualizer-hidden-container-resized") || displayStyle
|
230 |
-
element.
|
|
|
|
|
|
|
231 |
}
|
232 |
});
|
233 |
});
|
1 |
+
/* global google */
|
2 |
+
/* global visualizer */
|
3 |
(function(v, g) {
|
4 |
var gv;
|
5 |
|
36 |
case 'pie':
|
37 |
if (settings.slices) {
|
38 |
for (i in settings.slices) {
|
39 |
+
if (settings.slices[i]['color'] === '') {
|
40 |
delete settings.slices[i]['color'];
|
41 |
}
|
42 |
}
|
50 |
case 'candlestick':
|
51 |
if (settings.series) {
|
52 |
for (i in settings.series) {
|
53 |
+
if (settings.series[i]['color'] === '') {
|
54 |
delete settings.series[i]['color'];
|
55 |
}
|
56 |
}
|
57 |
}
|
58 |
|
59 |
+
if (settings.series && settings.legend && settings.legend.position === "left")
|
60 |
{
|
61 |
settings.targetAxisIndex = 1;
|
62 |
}
|
63 |
break;
|
64 |
case 'geo':
|
65 |
+
if (settings.region !== undefined && settings.region.replace(/^\s+|\s+$/g, '') === '') {
|
66 |
settings['region'] = 'world';
|
67 |
}
|
68 |
break;
|
69 |
case 'table':
|
70 |
+
if (parseInt(settings['pagination']) !== 1)
|
71 |
{
|
72 |
delete settings['pageSize'];
|
73 |
}
|
79 |
settings['timeline']['groupByRowLabel'] = settings['groupByRowLabel'] ? true : false;
|
80 |
settings['timeline']['colorByRowLabel'] = settings['colorByRowLabel'] ? true : false;
|
81 |
settings['timeline']['showRowLabels'] = settings['showRowLabels'] ? true : false;
|
82 |
+
if(settings['singleColor'] !== '') {
|
83 |
settings['timeline']['singleColor'] = settings['singleColor'];
|
84 |
}
|
85 |
break;
|
86 |
case 'combo':
|
87 |
if (settings.series) {
|
88 |
for (i in settings.series) {
|
89 |
+
if (settings.series[i]['type'] === '') {
|
90 |
delete settings.series[i]['type'];
|
91 |
}
|
92 |
+
if (settings.series[i]['color'] === '') {
|
93 |
delete settings.series[i]['color'];
|
94 |
}
|
95 |
}
|
96 |
}
|
97 |
|
98 |
+
if (settings.series && settings.legend && settings.legend.position === "left")
|
99 |
{
|
100 |
settings.targetAxisIndex = 1;
|
101 |
}
|
104 |
return;
|
105 |
}
|
106 |
|
107 |
+
if (series[0] && (series[0].type === 'date' || series[0].type === 'datetime')) {
|
108 |
axis = false;
|
109 |
switch (v.charts[id].type) {
|
110 |
case 'line':
|
135 |
}
|
136 |
|
137 |
if(settings.hAxis){
|
138 |
+
if(settings.hAxis.textStyle && settings.hAxis.textStyle !== ''){
|
139 |
settings.hAxis.textStyle = {color: settings.hAxis.textStyle};
|
140 |
}
|
141 |
}
|
142 |
|
143 |
if(settings.vAxis){
|
144 |
+
if(settings.vAxis.textStyle && settings.vAxis.textStyle !== ''){
|
145 |
settings.vAxis.textStyle = {color: settings.vAxis.textStyle};
|
146 |
}
|
147 |
}
|
149 |
for (i = 0; i < data.length; i++) {
|
150 |
row = [];
|
151 |
for (j = 0; j < series.length; j++) {
|
152 |
+
if (series[j].type === 'date' || series[j].type === 'datetime') {
|
153 |
date = new Date(data[i][j]);
|
154 |
data[i][j] = null;
|
155 |
if (Object.prototype.toString.call(date) === "[object Date]") {
|
166 |
if (settings.series) {
|
167 |
for (i = 0; i < settings.series.length; i++) {
|
168 |
format = settings.series[i].format;
|
169 |
+
if (!format || format === '') {
|
170 |
continue;
|
171 |
}
|
172 |
|
213 |
resizeTimeout = setTimeout(v.render, 100);
|
214 |
});
|
215 |
|
216 |
+
resizeHiddenContainers(false);
|
217 |
});
|
218 |
|
219 |
+
$(window).load(function(){
|
220 |
+
resizeHiddenContainers(true);
|
221 |
+
});
|
222 |
+
|
223 |
+
function resizeHiddenContainers(everytime){
|
224 |
$(".visualizer-front").parents().each(function(){
|
225 |
+
if(!$(this).is(":visible") && !$(this).hasClass("visualizer-hidden-container")){
|
226 |
$(this).addClass("visualizer-hidden-container");
|
227 |
}
|
228 |
});
|
229 |
|
230 |
var mutateObserver = new MutationObserver(function(records) {
|
231 |
records.forEach(function(record) {
|
232 |
+
if(record.attributeName === "style" || record.attributeName === "class"){
|
233 |
var element = $(record.target);
|
234 |
var displayStyle = window.getComputedStyle(element[0]).getPropertyValue("display");
|
235 |
+
if(element.hasClass("visualizer-hidden-container-resized") || displayStyle === "none") { return ; }
|
236 |
+
element.find(".visualizer-front").resize();
|
237 |
+
if(!everytime) {
|
238 |
+
element.addClass("visualizer-hidden-container-resized");
|
239 |
+
}
|
240 |
}
|
241 |
});
|
242 |
});
|
languages/visualizer.pot
ADDED
@@ -0,0 +1,1351 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2016 Themeisle
|
2 |
+
# This file is distributed under the GPL v2.0 or later.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: Visualizer: Charts and Graphs Lite 1.6.6\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/visualizer/issues\n"
|
7 |
+
"POT-Creation-Date: 2016-10-20 11:18:21+00:00\n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2016-MO-DA HO:MI+ZONE\n"
|
12 |
+
"Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
|
13 |
+
"Language-Team: Themeisle Translate <friends@themeisle.com>\n"
|
14 |
+
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
15 |
+
"X-Poedit-KeywordsList: "
|
16 |
+
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
17 |
+
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
18 |
+
"Language: en\n"
|
19 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
20 |
+
"X-Poedit-Country: United States\n"
|
21 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
+
"X-Poedit-Basepath: ../\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
"X-Poedit-Bookmarks: \n"
|
25 |
+
"X-Textdomain-Support: yes\n"
|
26 |
+
|
27 |
+
#: classes/Visualizer/Module/Admin.php:77
|
28 |
+
msgid "All"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: classes/Visualizer/Module/Admin.php:78
|
32 |
+
msgid "Pie"
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: classes/Visualizer/Module/Admin.php:79
|
36 |
+
msgid "Line"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: classes/Visualizer/Module/Admin.php:80
|
40 |
+
msgid "Area"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#: classes/Visualizer/Module/Admin.php:81
|
44 |
+
msgid "Geo"
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: classes/Visualizer/Module/Admin.php:82
|
48 |
+
msgid "Bar"
|
49 |
+
msgstr ""
|
50 |
+
|
51 |
+
#: classes/Visualizer/Module/Admin.php:83
|
52 |
+
msgid "Column"
|
53 |
+
msgstr ""
|
54 |
+
|
55 |
+
#: classes/Visualizer/Module/Admin.php:84
|
56 |
+
msgid "Gauge"
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: classes/Visualizer/Module/Admin.php:85
|
60 |
+
msgid "Scatter"
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: classes/Visualizer/Module/Admin.php:86
|
64 |
+
msgid "Candlestick"
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
#: classes/Visualizer/Module/Admin.php:136
|
68 |
+
msgid "Visualizations"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: classes/Visualizer/Module/Admin.php:139
|
72 |
+
msgid "From Library"
|
73 |
+
msgstr ""
|
74 |
+
|
75 |
+
#: classes/Visualizer/Module/Admin.php:140
|
76 |
+
msgid "Create New"
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: classes/Visualizer/Module/Admin.php:218
|
80 |
+
#: classes/Visualizer/Render/Library.php:163
|
81 |
+
msgid "Visualizer Library"
|
82 |
+
msgstr ""
|
83 |
+
|
84 |
+
#: classes/Visualizer/Module/Admin.php:342
|
85 |
+
msgid "Library"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: classes/Visualizer/Module/Admin.php:365
|
89 |
+
msgid "Knowledge Base"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
#: classes/Visualizer/Module/Admin.php:370
|
93 |
+
msgid "Pro Addon"
|
94 |
+
msgstr ""
|
95 |
+
|
96 |
+
#: classes/Visualizer/Module/Chart.php:332
|
97 |
+
#: classes/Visualizer/Module/Chart.php:394
|
98 |
+
msgid "Please, enter the URL of CSV file:"
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: classes/Visualizer/Module/Chart.php:333
|
102 |
+
#: classes/Visualizer/Module/Chart.php:395
|
103 |
+
msgid "You have entered invalid URL. Please, insert proper URL."
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: classes/Visualizer/Module/Chart.php:409
|
107 |
+
msgid "Save Chart"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: classes/Visualizer/Module/Chart.php:410
|
111 |
+
msgid "Create Chart"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: classes/Visualizer/Module/Chart.php:412
|
115 |
+
msgid "Insert Chart"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: classes/Visualizer/Module/Chart.php:471
|
119 |
+
msgid "CSV file with chart data was not uploaded. Please, try again."
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: classes/Visualizer/Module/Chart.php:486
|
123 |
+
msgid "CSV file is broken or invalid. Please, try again."
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: classes/Visualizer/Render/Library.php:68
|
127 |
+
#: classes/Visualizer/Render/Templates.php:68
|
128 |
+
msgid "Delete"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: classes/Visualizer/Render/Library.php:69
|
132 |
+
msgid "Clone"
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: classes/Visualizer/Render/Library.php:70
|
136 |
+
msgid "Edit"
|
137 |
+
msgstr ""
|
138 |
+
|
139 |
+
#: classes/Visualizer/Render/Library.php:71
|
140 |
+
msgid "Export"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: classes/Visualizer/Render/Library.php:73
|
144 |
+
#: classes/Visualizer/Render/Templates.php:71
|
145 |
+
msgid "Click to select"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: classes/Visualizer/Render/Library.php:96
|
149 |
+
msgid "Search"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: classes/Visualizer/Render/Library.php:135
|
153 |
+
#: classes/Visualizer/Render/Templates.php:85
|
154 |
+
msgid "No charts found"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: classes/Visualizer/Render/Library.php:164
|
158 |
+
msgid "Add New"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: classes/Visualizer/Render/Library.php:183
|
162 |
+
msgid ""
|
163 |
+
"%s option is disabled in your php.ini config. Please, enable it by change "
|
164 |
+
"its value to 1. This option increases the speed of remote CSV uploading."
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: classes/Visualizer/Render/Page/Data.php:70
|
168 |
+
msgid ""
|
169 |
+
"Select and upload your data CSV file here. The first row of the CSV file "
|
170 |
+
"should contain the column headings. The second one should contain series "
|
171 |
+
"type (string, number, boolean, date, datetime, timeofday)."
|
172 |
+
msgstr ""
|
173 |
+
|
174 |
+
#: classes/Visualizer/Render/Page/Data.php:74
|
175 |
+
msgid ""
|
176 |
+
"If you are unsure about how to format your data CSV then please take a look "
|
177 |
+
"at this sample:"
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: classes/Visualizer/Render/Page/Data.php:76
|
181 |
+
msgid "or read how you can add Google spreadsheet in following %1$sarticle%1$s."
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: classes/Visualizer/Render/Page/Data.php:85
|
185 |
+
msgid "From Computer"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: classes/Visualizer/Render/Page/Data.php:88
|
189 |
+
msgid "From Web"
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#: classes/Visualizer/Render/Page/Data.php:107
|
193 |
+
msgid "Check PRO Version "
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
#: classes/Visualizer/Render/Page/Data.php:112
|
197 |
+
msgid "Advanced"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: classes/Visualizer/Render/Page/Data.php:137
|
201 |
+
#: classes/Visualizer/Render/Page/Settings.php:55
|
202 |
+
msgid "Back"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: classes/Visualizer/Render/Page/Types.php:91
|
206 |
+
msgid "Next"
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#: classes/Visualizer/Render/Page.php:72
|
210 |
+
msgid "Like the plugin? Show us your love!"
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: classes/Visualizer/Render/Page.php:75
|
214 |
+
msgid "Rate it on WordPress.org"
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:42
|
218 |
+
msgid "Bars Settings"
|
219 |
+
msgstr ""
|
220 |
+
|
221 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:45
|
222 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:167
|
223 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:59
|
224 |
+
msgid "Focus Target"
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:50
|
228 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:172
|
229 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:64
|
230 |
+
msgid "Focus on a single data point."
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:51
|
234 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:173
|
235 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:65
|
236 |
+
msgid "Focus on a grouping of all data points along the major axis."
|
237 |
+
msgstr ""
|
238 |
+
|
239 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:53
|
240 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:175
|
241 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:67
|
242 |
+
msgid ""
|
243 |
+
"The type of the entity that receives focus on mouse hover. Also affects "
|
244 |
+
"which entity is selected by mouse click."
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:59
|
248 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:82
|
249 |
+
msgid "Is Stacked"
|
250 |
+
msgstr ""
|
251 |
+
|
252 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:63
|
253 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:86
|
254 |
+
msgid "If set to yes, series elements are stacked."
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:69
|
258 |
+
msgid "Bars Opacity"
|
259 |
+
msgstr ""
|
260 |
+
|
261 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:72
|
262 |
+
msgid ""
|
263 |
+
"Bars transparency, with 1.0 being completely opaque and 0.0 fully "
|
264 |
+
"transparent."
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:90
|
268 |
+
#: classes/Visualizer/Render/Sidebar/Columnar.php:107
|
269 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:96
|
270 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:116
|
271 |
+
msgid "Axis Text Color"
|
272 |
+
msgstr ""
|
273 |
+
|
274 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:80
|
275 |
+
#: classes/Visualizer/Render/Sidebar.php:103
|
276 |
+
msgid "Inside the chart"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:81
|
280 |
+
msgid "Outside the chart"
|
281 |
+
msgstr ""
|
282 |
+
|
283 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:82
|
284 |
+
msgid "None"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:95
|
288 |
+
#: classes/Visualizer/Render/Sidebar.php:130
|
289 |
+
msgid "Chart Title"
|
290 |
+
msgstr ""
|
291 |
+
|
292 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:98
|
293 |
+
#: classes/Visualizer/Render/Sidebar.php:133
|
294 |
+
msgid "Text to display above the chart."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:102
|
298 |
+
msgid "Chart Title Position"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:106
|
302 |
+
msgid "Where to place the chart title, compared to the chart area."
|
303 |
+
msgstr ""
|
304 |
+
|
305 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:110
|
306 |
+
#: classes/Visualizer/Render/Sidebar.php:137
|
307 |
+
msgid "Chart Title Color"
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:119
|
311 |
+
msgid "Axes Titles Position"
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:123
|
315 |
+
msgid "Determines where to place the axis titles, compared to the chart area."
|
316 |
+
msgstr ""
|
317 |
+
|
318 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:136
|
319 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:248
|
320 |
+
msgid "Axis Title"
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:139
|
324 |
+
msgid "The title of the horizontal axis."
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:143
|
328 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:255
|
329 |
+
msgid "Text Position"
|
330 |
+
msgstr ""
|
331 |
+
|
332 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:147
|
333 |
+
msgid "Position of the horizontal axis text, relative to the chart area."
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:151
|
337 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:263
|
338 |
+
msgid "Direction"
|
339 |
+
msgstr ""
|
340 |
+
|
341 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:156
|
342 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:268
|
343 |
+
msgid "Identical Direction"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:157
|
347 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:269
|
348 |
+
msgid "Reverse Direction"
|
349 |
+
msgstr ""
|
350 |
+
|
351 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:159
|
352 |
+
msgid "The direction in which the values along the horizontal axis grow."
|
353 |
+
msgstr ""
|
354 |
+
|
355 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:163
|
356 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:275
|
357 |
+
msgid "Base Line Color"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:178
|
361 |
+
msgid "Horizontal Axis Settings"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:179
|
365 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:291
|
366 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:56
|
367 |
+
#: classes/Visualizer/Render/Sidebar.php:152
|
368 |
+
msgid "General Settings"
|
369 |
+
msgstr ""
|
370 |
+
|
371 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:184
|
372 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:296
|
373 |
+
msgid "Grid Lines"
|
374 |
+
msgstr ""
|
375 |
+
|
376 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:186
|
377 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:203
|
378 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:298
|
379 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:315
|
380 |
+
msgid "Count"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:189
|
384 |
+
msgid ""
|
385 |
+
"The number of horizontal gridlines inside the chart area. Minimum value is "
|
386 |
+
"2. Specify -1 to automatically compute the number of gridlines."
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:194
|
390 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:211
|
391 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:306
|
392 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:323
|
393 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:406
|
394 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:287
|
395 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:144
|
396 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:171
|
397 |
+
msgid "Color"
|
398 |
+
msgstr ""
|
399 |
+
|
400 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:201
|
401 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:313
|
402 |
+
msgid "Minor Grid Lines"
|
403 |
+
msgstr ""
|
404 |
+
|
405 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:206
|
406 |
+
msgid "The number of horizontal minor gridlines between two regular gridlines."
|
407 |
+
msgstr ""
|
408 |
+
|
409 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:220
|
410 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:332
|
411 |
+
msgid "View Window"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:222
|
415 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:334
|
416 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:200
|
417 |
+
msgid "Maximum Value"
|
418 |
+
msgstr ""
|
419 |
+
|
420 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:229
|
421 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:341
|
422 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:186
|
423 |
+
msgid "Minimum Value"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:251
|
427 |
+
msgid "The title of the vertical axis."
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:259
|
431 |
+
msgid "Position of the vertical axis text, relative to the chart area."
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:271
|
435 |
+
msgid "The direction in which the values along the vertical axis grow."
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:290
|
439 |
+
msgid "Vertical Axis Settings"
|
440 |
+
msgstr ""
|
441 |
+
|
442 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:301
|
443 |
+
msgid ""
|
444 |
+
"The number of vertical gridlines inside the chart area. Minimum value is 2. "
|
445 |
+
"Specify -1 to automatically compute the number of gridlines."
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:318
|
449 |
+
msgid "The number of vertical minor gridlines between two regular gridlines."
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:371
|
453 |
+
msgid "Series Settings"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:392
|
457 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:241
|
458 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:100
|
459 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:159
|
460 |
+
msgid "Visible In Legend"
|
461 |
+
msgstr ""
|
462 |
+
|
463 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:397
|
464 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:246
|
465 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:105
|
466 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:164
|
467 |
+
#: classes/Visualizer/Render/Sidebar.php:117
|
468 |
+
msgid "No"
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:398
|
472 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:247
|
473 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:106
|
474 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:165
|
475 |
+
#: classes/Visualizer/Render/Sidebar.php:116
|
476 |
+
msgid "Yes"
|
477 |
+
msgstr ""
|
478 |
+
|
479 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:400
|
480 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:159
|
481 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:249
|
482 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:282
|
483 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:108
|
484 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:167
|
485 |
+
msgid "Determines whether the series has to be presented in the legend or not."
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:422
|
489 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:451
|
490 |
+
#: classes/Visualizer/Render/Sidebar.php:526
|
491 |
+
msgid "Number Format"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:427
|
495 |
+
msgid "Enter custom format pattern to apply to horizontal axis labels."
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:429
|
499 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:458
|
500 |
+
msgid ""
|
501 |
+
"For number axis labels, this is a subset of the decimal formatting %1$sICU "
|
502 |
+
"pattern set%1$s. For instance, $#,###.## will display values $1,234.56 for "
|
503 |
+
"value 1234.56. Pay attention that if you use #%3$% percentage format then "
|
504 |
+
"your values will be multiplied by 100."
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:434
|
508 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:463
|
509 |
+
msgid ""
|
510 |
+
"For date axis labels, this is a subset of the date formatting %1$sICU date "
|
511 |
+
"and time format%1$s."
|
512 |
+
msgstr ""
|
513 |
+
|
514 |
+
#: classes/Visualizer/Render/Sidebar/Graph.php:456
|
515 |
+
msgid "Enter custom format pattern to apply to vertical axis labels."
|
516 |
+
msgstr ""
|
517 |
+
|
518 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:80
|
519 |
+
msgid "Straight line without curve"
|
520 |
+
msgstr ""
|
521 |
+
|
522 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:81
|
523 |
+
msgid "The angles of the line will be smoothed"
|
524 |
+
msgstr ""
|
525 |
+
|
526 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:135
|
527 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:254
|
528 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:113
|
529 |
+
msgid "Line Width And Point Size"
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:149
|
533 |
+
msgid ""
|
534 |
+
"Data line width and diameter of displayed points in pixels. Use zero to "
|
535 |
+
"hide all lines or points."
|
536 |
+
msgstr ""
|
537 |
+
|
538 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:155
|
539 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:278
|
540 |
+
msgid "Curve Type"
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:180
|
544 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:73
|
545 |
+
msgid "Selection Mode"
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:185
|
549 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:78
|
550 |
+
msgid "Single data point"
|
551 |
+
msgstr ""
|
552 |
+
|
553 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:186
|
554 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:79
|
555 |
+
msgid "Multiple data points"
|
556 |
+
msgstr ""
|
557 |
+
|
558 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:188
|
559 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:81
|
560 |
+
msgid "Determines how many data points an user can select on a chart."
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:192
|
564 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:85
|
565 |
+
msgid "Aggregation Target"
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:197
|
569 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:90
|
570 |
+
msgid "Group selected data by x-value"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:198
|
574 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:91
|
575 |
+
msgid "Group selected data by series"
|
576 |
+
msgstr ""
|
577 |
+
|
578 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:199
|
579 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:92
|
580 |
+
msgid ""
|
581 |
+
"Group selected data by x-value if all selections have the same x-value, and "
|
582 |
+
"by series otherwise"
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:200
|
586 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:93
|
587 |
+
msgid "Show only one tooltip per selection"
|
588 |
+
msgstr ""
|
589 |
+
|
590 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:202
|
591 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:95
|
592 |
+
msgid ""
|
593 |
+
"Determines how multiple data selections are rolled up into tooltips. To "
|
594 |
+
"make it working you need to set multiple selection mode and tooltip trigger "
|
595 |
+
"to display it when an user selects an element."
|
596 |
+
msgstr ""
|
597 |
+
|
598 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:208
|
599 |
+
msgid "Point Opacity"
|
600 |
+
msgstr ""
|
601 |
+
|
602 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:211
|
603 |
+
msgid ""
|
604 |
+
"The transparency of data points, with 1.0 being completely opaque and 0.0 "
|
605 |
+
"fully transparent."
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:224
|
609 |
+
msgid "Lines Settings"
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: classes/Visualizer/Render/Sidebar/Linear.php:270
|
613 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:129
|
614 |
+
msgid "Overrides the global line width and point size values for this series."
|
615 |
+
msgstr ""
|
616 |
+
|
617 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:72
|
618 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:136
|
619 |
+
msgid "Area Opacity"
|
620 |
+
msgstr ""
|
621 |
+
|
622 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:75
|
623 |
+
msgid ""
|
624 |
+
"The default opacity of the colored area under an area chart series, where "
|
625 |
+
"0.0 is fully transparent and 1.0 is fully opaque. To specify opacity for an "
|
626 |
+
"individual series, set the area opacity value in the series property."
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: classes/Visualizer/Render/Sidebar/Type/Area.php:139
|
630 |
+
msgid ""
|
631 |
+
"The opacity of the colored area, where 0.0 is fully transparent and 1.0 is "
|
632 |
+
"fully opaque."
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:56
|
636 |
+
msgid "Candles Settings"
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:99
|
640 |
+
msgid "Failing Candles"
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:101
|
644 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:125
|
645 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:360
|
646 |
+
#: classes/Visualizer/Render/Sidebar.php:293
|
647 |
+
msgid "Stroke Width"
|
648 |
+
msgstr ""
|
649 |
+
|
650 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:104
|
651 |
+
msgid "The stroke width of falling candles."
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:109
|
655 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:133
|
656 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:368
|
657 |
+
#: classes/Visualizer/Render/Sidebar.php:301
|
658 |
+
msgid "Stroke Color"
|
659 |
+
msgstr ""
|
660 |
+
|
661 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:116
|
662 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:140
|
663 |
+
msgid "Fill Color"
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:123
|
667 |
+
msgid "Rising Candles"
|
668 |
+
msgstr ""
|
669 |
+
|
670 |
+
#: classes/Visualizer/Render/Sidebar/Type/Candlestick.php:128
|
671 |
+
msgid "The stroke width of rising candles."
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:61
|
675 |
+
msgid "Min And Max Values"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:75
|
679 |
+
msgid "The maximal and minimal values of the gauge."
|
680 |
+
msgstr ""
|
681 |
+
|
682 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:80
|
683 |
+
msgid "Minor Ticks"
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:83
|
687 |
+
msgid "The number of minor tick section in each major tick section."
|
688 |
+
msgstr ""
|
689 |
+
|
690 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:101
|
691 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:126
|
692 |
+
msgid "Green Color"
|
693 |
+
msgstr ""
|
694 |
+
|
695 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:103
|
696 |
+
msgid "Configure the green section of the gauge chart."
|
697 |
+
msgstr ""
|
698 |
+
|
699 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:107
|
700 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:149
|
701 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:191
|
702 |
+
msgid "From And To Range"
|
703 |
+
msgstr ""
|
704 |
+
|
705 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:121
|
706 |
+
msgid "The lowest and highest values for a range marked by a green color."
|
707 |
+
msgstr ""
|
708 |
+
|
709 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:143
|
710 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:168
|
711 |
+
msgid "Yellow Color"
|
712 |
+
msgstr ""
|
713 |
+
|
714 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:145
|
715 |
+
msgid "Configure the yellow section of the gauge chart."
|
716 |
+
msgstr ""
|
717 |
+
|
718 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:163
|
719 |
+
msgid "The lowest and highest values for a range marked by a yellow color."
|
720 |
+
msgstr ""
|
721 |
+
|
722 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:185
|
723 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:210
|
724 |
+
msgid "Red Color"
|
725 |
+
msgstr ""
|
726 |
+
|
727 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:187
|
728 |
+
msgid "Configure the red section of the gauge chart."
|
729 |
+
msgstr ""
|
730 |
+
|
731 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:205
|
732 |
+
msgid "The lowest and highest values for a range marked by a red color."
|
733 |
+
msgstr ""
|
734 |
+
|
735 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:227
|
736 |
+
#: classes/Visualizer/Render/Sidebar.php:264
|
737 |
+
msgid "Layout & Chart Area"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:229
|
741 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:324
|
742 |
+
#: classes/Visualizer/Render/Sidebar.php:266
|
743 |
+
msgid ""
|
744 |
+
"Configure the total size of the chart. Two formats are supported: a number, "
|
745 |
+
"or a number followed by %. A simple number is a value in pixels; a number "
|
746 |
+
"followed by % is a percentage."
|
747 |
+
msgstr ""
|
748 |
+
|
749 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:233
|
750 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:328
|
751 |
+
#: classes/Visualizer/Render/Sidebar.php:270
|
752 |
+
msgid "Width And Height Of Chart"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: classes/Visualizer/Render/Sidebar/Type/Gauge.php:247
|
756 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:342
|
757 |
+
#: classes/Visualizer/Render/Sidebar.php:284
|
758 |
+
msgid "Determines the total width and height of the chart."
|
759 |
+
msgstr ""
|
760 |
+
|
761 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:56
|
762 |
+
msgid "Map Settings"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:57
|
766 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:69
|
767 |
+
msgid "Region"
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:59
|
771 |
+
msgid ""
|
772 |
+
"Configure the region area to display on the map. (Surrounding areas will be "
|
773 |
+
"displayed as well.) Can be one of the following:"
|
774 |
+
msgstr ""
|
775 |
+
|
776 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:61
|
777 |
+
msgid "'world' - A map of the entire world."
|
778 |
+
msgstr ""
|
779 |
+
|
780 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:62
|
781 |
+
msgid ""
|
782 |
+
"A continent or a sub-continent, specified by its %s code, e.g., '011' for "
|
783 |
+
"Western Africa."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:63
|
787 |
+
msgid "A country, specified by its %s code, e.g., 'AU' for Australia."
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:64
|
791 |
+
msgid ""
|
792 |
+
"A state in the United States, specified by its %s code, e.g., 'US-AL' for "
|
793 |
+
"Alabama. Note that the resolution option must be set to either 'provinces' "
|
794 |
+
"or 'metros'."
|
795 |
+
msgstr ""
|
796 |
+
|
797 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:77
|
798 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:89
|
799 |
+
msgid "Resolution"
|
800 |
+
msgstr ""
|
801 |
+
|
802 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:80
|
803 |
+
msgid "The resolution of the map borders. Choose one of the following values:"
|
804 |
+
msgstr ""
|
805 |
+
|
806 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:82
|
807 |
+
msgid "'countries' - Supported for all regions, except for US state regions."
|
808 |
+
msgstr ""
|
809 |
+
|
810 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:83
|
811 |
+
msgid ""
|
812 |
+
"'provinces' - Supported only for country regions and US state regions. Not "
|
813 |
+
"supported for all countries; please test a country to see whether this "
|
814 |
+
"option is supported."
|
815 |
+
msgstr ""
|
816 |
+
|
817 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:84
|
818 |
+
msgid "'metros' - Supported for the US country region and US state regions only."
|
819 |
+
msgstr ""
|
820 |
+
|
821 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:94
|
822 |
+
msgid "Countries"
|
823 |
+
msgstr ""
|
824 |
+
|
825 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:95
|
826 |
+
msgid "Provinces"
|
827 |
+
msgstr ""
|
828 |
+
|
829 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:96
|
830 |
+
msgid "Metros"
|
831 |
+
msgstr ""
|
832 |
+
|
833 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:102
|
834 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:114
|
835 |
+
msgid "Display Mode"
|
836 |
+
msgstr ""
|
837 |
+
|
838 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:105
|
839 |
+
msgid "Determines which type of map this is. The following values are supported:"
|
840 |
+
msgstr ""
|
841 |
+
|
842 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:107
|
843 |
+
msgid "'auto' - Choose based on the format of the data."
|
844 |
+
msgstr ""
|
845 |
+
|
846 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:108
|
847 |
+
msgid "'regions' - This is a region map."
|
848 |
+
msgstr ""
|
849 |
+
|
850 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:109
|
851 |
+
msgid "'markers' - This is a marker map."
|
852 |
+
msgstr ""
|
853 |
+
|
854 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:119
|
855 |
+
msgid "Auto"
|
856 |
+
msgstr ""
|
857 |
+
|
858 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:120
|
859 |
+
msgid "Regions"
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:121
|
863 |
+
msgid "Markers"
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:126
|
867 |
+
#: classes/Visualizer/Render/Sidebar.php:220
|
868 |
+
msgid "Tooltip"
|
869 |
+
msgstr ""
|
870 |
+
|
871 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:141
|
872 |
+
#: classes/Visualizer/Render/Sidebar.php:235
|
873 |
+
msgid "Trigger"
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:146
|
877 |
+
#: classes/Visualizer/Render/Sidebar.php:240
|
878 |
+
msgid "The tooltip will be displayed when the user hovers over an element"
|
879 |
+
msgstr ""
|
880 |
+
|
881 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:147
|
882 |
+
#: classes/Visualizer/Render/Sidebar.php:242
|
883 |
+
msgid "The tooltip will not be displayed"
|
884 |
+
msgstr ""
|
885 |
+
|
886 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:149
|
887 |
+
#: classes/Visualizer/Render/Sidebar.php:244
|
888 |
+
msgid "Determines the user interaction that causes the tooltip to be displayed."
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:161
|
892 |
+
msgid "Color Axis"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:163
|
896 |
+
msgid ""
|
897 |
+
"Configure color axis gradient scale, minimum and maximun values and a color "
|
898 |
+
"of the dateless regions."
|
899 |
+
msgstr ""
|
900 |
+
|
901 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:167
|
902 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:231
|
903 |
+
msgid "Minimum And Maximum Values"
|
904 |
+
msgstr ""
|
905 |
+
|
906 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:181
|
907 |
+
msgid "Determines the minimum and maximum values of color axis."
|
908 |
+
msgstr ""
|
909 |
+
|
910 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:193
|
911 |
+
msgid "Intermediate Value"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:207
|
915 |
+
msgid "Dateless Region"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:225
|
919 |
+
msgid "Size Axis"
|
920 |
+
msgstr ""
|
921 |
+
|
922 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:227
|
923 |
+
msgid ""
|
924 |
+
"Configure how values are associated with bubble size, minimum and maximun "
|
925 |
+
"values and marker opacity setting."
|
926 |
+
msgstr ""
|
927 |
+
|
928 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:245
|
929 |
+
msgid "Determines the minimum and maximum values of size axis."
|
930 |
+
msgstr ""
|
931 |
+
|
932 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:251
|
933 |
+
msgid "Minimum And Maximum Marker Radius"
|
934 |
+
msgstr ""
|
935 |
+
|
936 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:265
|
937 |
+
msgid ""
|
938 |
+
"Determines the radius of the smallest and largest possible bubbles, in "
|
939 |
+
"pixels."
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:270
|
943 |
+
msgid "Marker Opacity"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:273
|
947 |
+
msgid ""
|
948 |
+
"The opacity of the markers, where 0.0 is fully transparent and 1.0 is fully "
|
949 |
+
"opaque."
|
950 |
+
msgstr ""
|
951 |
+
|
952 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:291
|
953 |
+
msgid "Magnifying Glass"
|
954 |
+
msgstr ""
|
955 |
+
|
956 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:293
|
957 |
+
msgid ""
|
958 |
+
"Configure magnifying glass settings, which appears, when the user lingers "
|
959 |
+
"over a cluttered marker. Note: this feature is not supported in browsers "
|
960 |
+
"that do not support SVG, i.e. Internet Explorer version 8 or earlier."
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:296
|
964 |
+
msgid "Enabled"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:300
|
968 |
+
msgid ""
|
969 |
+
"If yes, when the user lingers over a cluttered marker, a magnifiying glass "
|
970 |
+
"will be opened."
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:304
|
974 |
+
msgid "Zoom Factor"
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:307
|
978 |
+
msgid "The zoom factor of the magnifying glass. Can be any number greater than 0."
|
979 |
+
msgstr ""
|
980 |
+
|
981 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:322
|
982 |
+
msgid "Layout Settings"
|
983 |
+
msgstr ""
|
984 |
+
|
985 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:347
|
986 |
+
msgid "Keep Aspect Ratio"
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:351
|
990 |
+
msgid ""
|
991 |
+
"If yes, the map will be drawn at the largest size that can fit inside the "
|
992 |
+
"chart area at its natural aspect ratio. If only one of the width and height "
|
993 |
+
"options is specified, the other one will be calculated according to the "
|
994 |
+
"aspect ratio."
|
995 |
+
msgstr ""
|
996 |
+
|
997 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:352
|
998 |
+
msgid ""
|
999 |
+
"If no, the map will be stretched to the exact size of the chart as "
|
1000 |
+
"specified by the width and height options."
|
1001 |
+
msgstr ""
|
1002 |
+
|
1003 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:357
|
1004 |
+
#: classes/Visualizer/Render/Sidebar.php:290
|
1005 |
+
msgid ""
|
1006 |
+
"Configure the background color for the main area of the chart and the chart "
|
1007 |
+
"border width and color."
|
1008 |
+
msgstr ""
|
1009 |
+
|
1010 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:363
|
1011 |
+
#: classes/Visualizer/Render/Sidebar.php:296
|
1012 |
+
msgid "The chart border width in pixels."
|
1013 |
+
msgstr ""
|
1014 |
+
|
1015 |
+
#: classes/Visualizer/Render/Sidebar/Type/Geo.php:375
|
1016 |
+
#: classes/Visualizer/Render/Sidebar.php:309
|
1017 |
+
msgid "Background Color"
|
1018 |
+
msgstr ""
|
1019 |
+
|
1020 |
+
#: classes/Visualizer/Render/Sidebar/Type/Line.php:61
|
1021 |
+
msgid "Interpolate Nulls"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: classes/Visualizer/Render/Sidebar/Type/Line.php:65
|
1025 |
+
msgid ""
|
1026 |
+
"Whether to guess the value of missing points. If yes, it will guess the "
|
1027 |
+
"value of any missing data based on neighboring points. If no, it will leave "
|
1028 |
+
"a break in the line at the unknown point."
|
1029 |
+
msgstr ""
|
1030 |
+
|
1031 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:56
|
1032 |
+
msgid "Pie Settings"
|
1033 |
+
msgstr ""
|
1034 |
+
|
1035 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:59
|
1036 |
+
msgid "Is 3D"
|
1037 |
+
msgstr ""
|
1038 |
+
|
1039 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:63
|
1040 |
+
msgid "If set to yes, displays a three-dimensional chart."
|
1041 |
+
msgstr ""
|
1042 |
+
|
1043 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:67
|
1044 |
+
msgid "Reverse Categories"
|
1045 |
+
msgstr ""
|
1046 |
+
|
1047 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:71
|
1048 |
+
msgid "If set to yes, will draw slices counterclockwise."
|
1049 |
+
msgstr ""
|
1050 |
+
|
1051 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:75
|
1052 |
+
msgid "Slice Text"
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:80
|
1056 |
+
msgid "The percentage of the slice size out of the total"
|
1057 |
+
msgstr ""
|
1058 |
+
|
1059 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:81
|
1060 |
+
msgid "The quantitative value of the slice"
|
1061 |
+
msgstr ""
|
1062 |
+
|
1063 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:82
|
1064 |
+
msgid "The name of the slice"
|
1065 |
+
msgstr ""
|
1066 |
+
|
1067 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:83
|
1068 |
+
msgid "No text is displayed"
|
1069 |
+
msgstr ""
|
1070 |
+
|
1071 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:85
|
1072 |
+
msgid "The content of the text displayed on the slice."
|
1073 |
+
msgstr ""
|
1074 |
+
|
1075 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:89
|
1076 |
+
msgid "Pie Hole"
|
1077 |
+
msgstr ""
|
1078 |
+
|
1079 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:92
|
1080 |
+
msgid ""
|
1081 |
+
"If between 0 and 1, displays a donut chart. The hole with have a radius "
|
1082 |
+
"equal to number times the radius of the chart. Only applicable when the "
|
1083 |
+
"chart is two-dimensional."
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:97
|
1087 |
+
msgid "Start Angle"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:100
|
1091 |
+
msgid ""
|
1092 |
+
"The angle, in degrees, to rotate the chart by. The default of 0 will orient "
|
1093 |
+
"the leftmost edge of the first slice directly up."
|
1094 |
+
msgstr ""
|
1095 |
+
|
1096 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:105
|
1097 |
+
msgid "Slice Border Color"
|
1098 |
+
msgstr ""
|
1099 |
+
|
1100 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:122
|
1101 |
+
msgid "Residue Settings"
|
1102 |
+
msgstr ""
|
1103 |
+
|
1104 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:125
|
1105 |
+
msgid "Visibility Threshold"
|
1106 |
+
msgstr ""
|
1107 |
+
|
1108 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:128
|
1109 |
+
msgid ""
|
1110 |
+
"The slice relative part, below which a slice will not show individually. "
|
1111 |
+
"All slices that have not passed this threshold will be combined to a single "
|
1112 |
+
"slice, whose size is the sum of all their sizes. Default is not to show "
|
1113 |
+
"individually any slice which is smaller than half a degree."
|
1114 |
+
msgstr ""
|
1115 |
+
|
1116 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:133
|
1117 |
+
msgid "Residue Slice Label"
|
1118 |
+
msgstr ""
|
1119 |
+
|
1120 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:136
|
1121 |
+
msgid ""
|
1122 |
+
"A label for the combination slice that holds all slices below slice "
|
1123 |
+
"visibility threshold."
|
1124 |
+
msgstr ""
|
1125 |
+
|
1126 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:137
|
1127 |
+
msgid "Other"
|
1128 |
+
msgstr ""
|
1129 |
+
|
1130 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:141
|
1131 |
+
msgid "Residue Slice Color"
|
1132 |
+
msgstr ""
|
1133 |
+
|
1134 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:158
|
1135 |
+
msgid "Slices Settings"
|
1136 |
+
msgstr ""
|
1137 |
+
|
1138 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:162
|
1139 |
+
msgid "Slice Offset"
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:165
|
1143 |
+
msgid ""
|
1144 |
+
"How far to separate the slice from the rest of the pie, from 0.0 (not at "
|
1145 |
+
"all) to 1.0 (the pie's radius)."
|
1146 |
+
msgstr ""
|
1147 |
+
|
1148 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:170
|
1149 |
+
msgid "Slice Color"
|
1150 |
+
msgstr ""
|
1151 |
+
|
1152 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:191
|
1153 |
+
msgid "Text"
|
1154 |
+
msgstr ""
|
1155 |
+
|
1156 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:196
|
1157 |
+
msgid "Display both the absolute value of the slice and the percentage of the whole"
|
1158 |
+
msgstr ""
|
1159 |
+
|
1160 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:197
|
1161 |
+
msgid "Display only the absolute value of the slice"
|
1162 |
+
msgstr ""
|
1163 |
+
|
1164 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:198
|
1165 |
+
msgid "Display only the percentage of the whole represented by the slice"
|
1166 |
+
msgstr ""
|
1167 |
+
|
1168 |
+
#: classes/Visualizer/Render/Sidebar/Type/Pie.php:200
|
1169 |
+
msgid ""
|
1170 |
+
"Determines what information to display when the user hovers over a pie "
|
1171 |
+
"slice."
|
1172 |
+
msgstr ""
|
1173 |
+
|
1174 |
+
#: classes/Visualizer/Render/Sidebar.php:99
|
1175 |
+
msgid "Left of the chart"
|
1176 |
+
msgstr ""
|
1177 |
+
|
1178 |
+
#: classes/Visualizer/Render/Sidebar.php:100
|
1179 |
+
msgid "Right of the chart"
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: classes/Visualizer/Render/Sidebar.php:101
|
1183 |
+
msgid "Above the chart"
|
1184 |
+
msgstr ""
|
1185 |
+
|
1186 |
+
#: classes/Visualizer/Render/Sidebar.php:102
|
1187 |
+
msgid "Below the chart"
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: classes/Visualizer/Render/Sidebar.php:104
|
1191 |
+
msgid "Omit the legend"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: classes/Visualizer/Render/Sidebar.php:109
|
1195 |
+
msgid "Aligned to the start of the allocated area"
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: classes/Visualizer/Render/Sidebar.php:110
|
1199 |
+
msgid "Centered in the allocated area"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: classes/Visualizer/Render/Sidebar.php:111
|
1203 |
+
msgid "Aligned to the end of the allocated area"
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: classes/Visualizer/Render/Sidebar.php:154
|
1207 |
+
msgid ""
|
1208 |
+
"Configure title, font styles, tooltip, legend and else settings for the "
|
1209 |
+
"chart."
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: classes/Visualizer/Render/Sidebar.php:157
|
1213 |
+
msgid "Title"
|
1214 |
+
msgstr ""
|
1215 |
+
|
1216 |
+
#: classes/Visualizer/Render/Sidebar.php:161
|
1217 |
+
msgid "Font Styles"
|
1218 |
+
msgstr ""
|
1219 |
+
|
1220 |
+
#: classes/Visualizer/Render/Sidebar.php:164
|
1221 |
+
msgid "Family And Size"
|
1222 |
+
msgstr ""
|
1223 |
+
|
1224 |
+
#: classes/Visualizer/Render/Sidebar.php:190
|
1225 |
+
msgid "The default font family and size for all text in the chart."
|
1226 |
+
msgstr ""
|
1227 |
+
|
1228 |
+
#: classes/Visualizer/Render/Sidebar.php:195
|
1229 |
+
msgid "Legend"
|
1230 |
+
msgstr ""
|
1231 |
+
|
1232 |
+
#: classes/Visualizer/Render/Sidebar.php:197
|
1233 |
+
msgid "Position"
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: classes/Visualizer/Render/Sidebar.php:201
|
1237 |
+
msgid "Determines where to place the legend, compared to the chart area."
|
1238 |
+
msgstr ""
|
1239 |
+
|
1240 |
+
#: classes/Visualizer/Render/Sidebar.php:205
|
1241 |
+
msgid "Alignment"
|
1242 |
+
msgstr ""
|
1243 |
+
|
1244 |
+
#: classes/Visualizer/Render/Sidebar.php:209
|
1245 |
+
msgid "Determines the alignment of the legend."
|
1246 |
+
msgstr ""
|
1247 |
+
|
1248 |
+
#: classes/Visualizer/Render/Sidebar.php:213
|
1249 |
+
msgid "Font Color"
|
1250 |
+
msgstr ""
|
1251 |
+
|
1252 |
+
#: classes/Visualizer/Render/Sidebar.php:241
|
1253 |
+
msgid "The tooltip will be displayed when the user selects an element"
|
1254 |
+
msgstr ""
|
1255 |
+
|
1256 |
+
#: classes/Visualizer/Render/Sidebar.php:248
|
1257 |
+
msgid "Show Color Code"
|
1258 |
+
msgstr ""
|
1259 |
+
|
1260 |
+
#: classes/Visualizer/Render/Sidebar.php:252
|
1261 |
+
msgid ""
|
1262 |
+
"If set to yes, will show colored squares next to the slice information in "
|
1263 |
+
"the tooltip."
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: classes/Visualizer/Render/Sidebar.php:265
|
1267 |
+
msgid "Layout"
|
1268 |
+
msgstr ""
|
1269 |
+
|
1270 |
+
#: classes/Visualizer/Render/Sidebar.php:318
|
1271 |
+
msgid "Transparent background"
|
1272 |
+
msgstr ""
|
1273 |
+
|
1274 |
+
#: classes/Visualizer/Render/Sidebar.php:323
|
1275 |
+
msgid "Chart Area"
|
1276 |
+
msgstr ""
|
1277 |
+
|
1278 |
+
#: classes/Visualizer/Render/Sidebar.php:324
|
1279 |
+
msgid ""
|
1280 |
+
"Configure the placement and size of the chart area (where the chart itself "
|
1281 |
+
"is drawn, excluding axis and legends). Two formats are supported: a number, "
|
1282 |
+
"or a number followed by %. A simple number is a value in pixels; a number "
|
1283 |
+
"followed by % is a percentage."
|
1284 |
+
msgstr ""
|
1285 |
+
|
1286 |
+
#: classes/Visualizer/Render/Sidebar.php:328
|
1287 |
+
msgid "Left And Top Margins"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: classes/Visualizer/Render/Sidebar.php:342
|
1291 |
+
msgid "Determines how far to draw the chart from the left and top borders."
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: classes/Visualizer/Render/Sidebar.php:348
|
1295 |
+
msgid "Width And Height Of Chart Area"
|
1296 |
+
msgstr ""
|
1297 |
+
|
1298 |
+
#: classes/Visualizer/Render/Sidebar.php:362
|
1299 |
+
msgid "Determines the width and hight of the chart area."
|
1300 |
+
msgstr ""
|
1301 |
+
|
1302 |
+
#: classes/Visualizer/Render/Sidebar.php:413
|
1303 |
+
msgid "Hex Value"
|
1304 |
+
msgstr ""
|
1305 |
+
|
1306 |
+
#: classes/Visualizer/Render/Sidebar.php:529
|
1307 |
+
msgid ""
|
1308 |
+
"Enter custom format pattern to apply to this series value, similar to the "
|
1309 |
+
"%1$sICU pattern set%1$s. Use something like #,### to get 1,234 as output, "
|
1310 |
+
"or $# to add dollar sign before digits. Pay attention that if you use #%3$% "
|
1311 |
+
"percentage format then your values will be multiplied by 100."
|
1312 |
+
msgstr ""
|
1313 |
+
|
1314 |
+
#: classes/Visualizer/Render/Sidebar.php:537
|
1315 |
+
msgid "Date Format"
|
1316 |
+
msgstr ""
|
1317 |
+
|
1318 |
+
#: classes/Visualizer/Render/Sidebar.php:540
|
1319 |
+
msgid ""
|
1320 |
+
"Enter custom format pattern to apply to this series value, similar to the "
|
1321 |
+
"%1$sICU date and time format%1$s."
|
1322 |
+
msgstr ""
|
1323 |
+
|
1324 |
+
#: classes/Visualizer/Render/Templates.php:69
|
1325 |
+
msgid "Insert"
|
1326 |
+
msgstr ""
|
1327 |
+
|
1328 |
+
#. Plugin Name of the plugin/theme
|
1329 |
+
msgid "Visualizer: Charts and Graphs Lite"
|
1330 |
+
msgstr ""
|
1331 |
+
|
1332 |
+
#. Plugin URI of the plugin/theme
|
1333 |
+
msgid "https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/"
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#. Description of the plugin/theme
|
1337 |
+
msgid ""
|
1338 |
+
"A simple, easy to use and quite powerful tool to create, manage and embed "
|
1339 |
+
"interactive charts into your WordPress posts and pages. The plugin uses "
|
1340 |
+
"Google Visualization API to render charts, which supports cross-browser "
|
1341 |
+
"compatibility (adopting VML for older IE versions) and cross-platform "
|
1342 |
+
"portability to iOS and new Android releases."
|
1343 |
+
msgstr ""
|
1344 |
+
|
1345 |
+
#. Author of the plugin/theme
|
1346 |
+
msgid "Themeisle"
|
1347 |
+
msgstr ""
|
1348 |
+
|
1349 |
+
#. Author URI of the plugin/theme
|
1350 |
+
msgid "http://themeisle.com"
|
1351 |
+
msgstr ""
|
readme.txt
CHANGED
@@ -70,6 +70,11 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
|
|
70 |
|
71 |
== Changelog ==
|
72 |
|
|
|
|
|
|
|
|
|
|
|
73 |
= 1.6.6=
|
74 |
* Fixed charts resizing on tabbed content
|
75 |
|
70 |
|
71 |
== Changelog ==
|
72 |
|
73 |
+
= 1.7.0=
|
74 |
+
* Fixed responsive issues
|
75 |
+
* Fixed issues with zero margin values
|
76 |
+
* Fixed import issue
|
77 |
+
|
78 |
= 1.6.6=
|
79 |
* Fixed charts resizing on tabbed content
|
80 |
|