Skip to content

Commit 4d0d06d

Browse files
authored
Merge pull request #239 from Codeinwp/development
Adds insert button in chart library. Remove frontend assets where they are not needed. Improve non-English charts compatibility. Adds a filter to change charts locale.
2 parents 4d06534 + 38a1441 commit 4d0d06d

File tree

12 files changed

+92
-13
lines changed

12 files changed

+92
-13
lines changed

classes/Visualizer/Module.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,4 +323,20 @@ private function _getHTML( $rows ) {
323323
);
324324
}
325325

326+
/**
327+
* Returns the language of the locale.
328+
*
329+
* @access protected
330+
*/
331+
protected function get_language() {
332+
$locale = get_locale();
333+
if ( empty( $locale ) ) {
334+
return '';
335+
}
336+
$array = explode( '_', $locale );
337+
if ( count( $array ) < 2 ) {
338+
return '';
339+
}
340+
return reset( $array );
341+
}
326342
}

classes/Visualizer/Module/Admin.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,13 @@ public function enqueueMediaScripts() {
157157
wp_enqueue_script( 'visualizer-media-collection', VISUALIZER_ABSURL . 'js/media/collection.js', array( 'visualizer-media-model' ), Visualizer_Plugin::VERSION, true );
158158
wp_enqueue_script( 'visualizer-media-controller', VISUALIZER_ABSURL . 'js/media/controller.js', array( 'visualizer-media-collection' ), Visualizer_Plugin::VERSION, true );
159159
wp_enqueue_script( 'visualizer-media-view', VISUALIZER_ABSURL . 'js/media/view.js', array( 'visualizer-media-controller' ), Visualizer_Plugin::VERSION, true );
160+
wp_localize_script(
161+
'visualizer-media-view', 'visualizer', array(
162+
'i10n' => array(
163+
'insert' => __( 'Insert', 'visualizer' ),
164+
),
165+
)
166+
);
160167
wp_enqueue_script( 'visualizer-media-toolbar', VISUALIZER_ABSURL . 'js/media/toolbar.js', array( 'visualizer-media-view' ), Visualizer_Plugin::VERSION, true );
161168
wp_enqueue_script( 'visualizer-media', VISUALIZER_ABSURL . 'js/media.js', array( 'visualizer-media-toolbar' ), Visualizer_Plugin::VERSION, true );
162169
}
@@ -453,6 +460,8 @@ public function renderLibraryPage() {
453460
$ajaxurl = admin_url( 'admin-ajax.php' );
454461
wp_localize_script(
455462
'visualizer-library', 'visualizer', array(
463+
'language' => $this->get_language(),
464+
'map_api_key' => get_option( 'visualizer-map-api-key' ),
456465
'charts' => $charts,
457466
'urls' => array(
458467
'base' => add_query_arg( 'vpage', false ),

classes/Visualizer/Module/Chart.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ private function _handleDataAndSettingsPage() {
336336
'charts' => array(
337337
'canvas' => $data,
338338
),
339+
'language' => $this->get_language(),
339340
'map_api_key' => get_option( 'visualizer-map-api-key' ),
340341
'ajax' => array(
341342
'url' => admin_url( 'admin-ajax.php' ),

classes/Visualizer/Module/Frontend.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public function __construct( Visualizer_Plugin $plugin ) {
5454
parent::__construct( $plugin );
5555

5656
$this->_addAction( 'wp_enqueue_scripts', 'enqueueScripts' );
57+
$this->_addFilter( 'visualizer_get_language', 'getLanguage' );
5758
$this->_addShortcode( 'visualizer', 'renderChart' );
5859

5960
// add do_shortocde hook for widget_text filter
@@ -69,6 +70,14 @@ public function __construct( Visualizer_Plugin $plugin ) {
6970
add_action( 'rest_api_init', array( $this, 'endpoint_register' ) );
7071
}
7172

73+
/**
74+
* Returns the language/locale.
75+
*/
76+
function getLanguage( $dummy, $only_language ) {
77+
return $this->get_language();
78+
}
79+
80+
7281
/**
7382
* Registers the endpoints
7483
*/
@@ -150,7 +159,6 @@ public function enqueueScripts() {
150159
wp_register_script( 'visualizer-google-jsapi-old', '//www.google.com/jsapi', array( 'visualizer-google-jsapi-new' ), null, true );
151160
wp_register_script( 'visualizer-render', VISUALIZER_ABSURL . 'js/render.js', array( 'visualizer-google-jsapi-old', 'jquery' ), Visualizer_Plugin::VERSION, true );
152161
wp_register_script( 'visualizer-clipboardjs', VISUALIZER_ABSURL . 'js/lib/clipboardjs/clipboard.min.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
153-
wp_enqueue_script( 'visualizer-clipboardjs' );
154162
wp_register_style( 'visualizer-front', VISUALIZER_ABSURL . 'css/front.css', array(), Visualizer_Plugin::VERSION );
155163
do_action( 'visualizer_pro_frontend_load_resources' );
156164
}
@@ -239,6 +247,7 @@ public function renderChart( $atts ) {
239247
wp_localize_script(
240248
'visualizer-render', 'visualizer', array(
241249
'charts' => $this->_charts,
250+
'language' => $this->get_language(),
242251
'map_api_key' => get_option( 'visualizer-map-api-key' ),
243252
'rest_url' => version_compare( $wp_version, '4.7.0', '>=' ) ? rest_url( 'visualizer/v' . VISUALIZER_REST_VERSION . '/action/#id#/#type#/' ) : '',
244253
'i10n' => array(
@@ -267,6 +276,7 @@ public function renderChart( $atts ) {
267276
if ( 'copy' === $key ) {
268277
$copy = $this->_getDataAs( $atts['id'], 'csv' );
269278
$actions_div .= ' data-clipboard-text="' . esc_attr( $copy['csv'] ) . '"';
279+
wp_enqueue_script( 'visualizer-clipboardjs' );
270280
}
271281

272282
$actions_div .= apply_filters( 'visualizer_action_attributes', '', $key, $atts['id'] );

classes/Visualizer/Plugin.php

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

3030
const NAME = 'visualizer';
31-
const VERSION = '3.0.6';
31+
const VERSION = '3.0.7';
3232

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

classes/Visualizer/Render/Templates.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,7 @@ private function _renderTemplate( $id, $callback ) {
6464
* @access protected
6565
*/
6666
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-
67+
echo '<div class="visualizer-library-chart-footer visualizer-clearfix visualizer-library-media-popup">';
7168
echo '<span class="visualizer-library-chart-shortcode" title="', esc_attr__( 'Click to select', 'visualizer' ), '">&nbsp;[visualizer id=&quot;{{data.id}}&quot;]&nbsp;</span>';
7269
echo '</div>';
7370
}

classes/Visualizer/Source.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,10 @@ protected function _normalizeData( $data ) {
222222
}
223223
break;
224224
case 'string':
225-
$data[ $i ] = utf8_encode( $data[ $i ] );
225+
// condition introduced for Issue with non-English text #240 where languages such as Hebrew get messed up.
226+
if ( function_exists( 'mb_detect_encoding' ) && mb_detect_encoding( $data[ $i ] ) !== 'UTF-8' ) {
227+
$data[ $i ] = utf8_encode( $data[ $i ] );
228+
}
226229
break;
227230
}
228231
}

css/media.css

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Version: 3.0.6
2+
Version: 3.0.7
33
*/
44
#visualizer-library-view {
55
padding: 30px 10px 10px 30px;
@@ -171,4 +171,35 @@ i.mce-i-visualizer-icon:before {
171171
-webkit-font-smoothing: antialiased;
172172
font: 400 20px/1 dashicons;
173173
vertical-align: top;
174+
}
175+
176+
.visualizer-chart-bg, .visualizer-chart-insert-bg {
177+
display: none;
178+
}
179+
180+
.visualizer-library-chart:hover .visualizer-chart-bg {
181+
display: block;
182+
position: absolute;
183+
background: #000000;
184+
width: 100%;
185+
height: 100%;
186+
top: 0;
187+
left: 0;
188+
opacity: 0.3;
189+
}
190+
191+
.visualizer-library-chart:hover .visualizer-chart-bg ~ .visualizer-chart-insert-bg {
192+
display: block;
193+
position: absolute;
194+
top: 0;
195+
left: 0;
196+
width: 100%;
197+
height: 100%;
198+
z-index: 99999;
199+
}
200+
201+
button.visualizer-library-chart-insert{
202+
position: absolute;
203+
top: 45%;
204+
left: 45%;
174205
}

index.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Plugin Name: Visualizer: Charts and Graphs Lite
55
Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
66
Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
7-
Version: 3.0.6
7+
Version: 3.0.7
88
Author: Themeisle
99
Author URI: http://themeisle.com
1010
License: GPL v2.0 or later

js/media/view.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/* global google */
33
/* global visualizer */
44
/* global showNotice */
5-
(function($, wpm) {
5+
(function($, wpm, visualizer) {
66
var libraryWidth, libraryHeight, wpmv, wpmV, wpmvv, wpmvvl, wpmvvb, l10n;
77

88
wpmv = wpm.view;
@@ -269,6 +269,18 @@
269269
}
270270

271271
self.renderCollection();
272+
$('.visualizer-library-chart').css('position', 'relative')
273+
.append($(
274+
// jshint ignore:start
275+
'<div class="visualizer-chart-bg"></div>'
276+
+ '<div class="visualizer-chart-insert-bg">'
277+
+ '<button class="button button-primary visualizer-library-chart-insert">' + visualizer.i10n.insert + '</button>'
278+
+ '</div>'
279+
// jshint ignore:end
280+
))
281+
.on('mouseover', function(){
282+
$(this).addClass('hover');
283+
});
272284
content.unlock();
273285
}
274286
}
@@ -464,7 +476,7 @@
464476
this.controller.trigger('visualizer:library:page', $(e.target).data('page'));
465477
}
466478
});
467-
})(jQuery, wp.media);
479+
})(jQuery, wp.media, visualizer);
468480

469481
(function($) {
470482
$.fn.lock = function() {

0 commit comments

Comments
 (0)