Skip to content

Commit 96bd74c

Browse files
Add option to enable/disable save chart image #825
1 parent d37770f commit 96bd74c

File tree

9 files changed

+57
-8
lines changed

9 files changed

+57
-8
lines changed

classes/Visualizer/Module/Chart.php

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -527,8 +527,10 @@ public function renderChartPages() {
527527
defined( 'WP_TESTS_DOMAIN' ) ? wp_die() : exit();
528528
}
529529

530+
$_POST['save_chart_image'] = isset( $_POST['save_chart_image'] ) && 'yes' === $_POST['save_chart_image'] ? true : false;
531+
530532
if ( isset( $_POST['chart-img'] ) && ! empty( $_POST['chart-img'] ) ) {
531-
$attachment_id = $this->save_chart_image( $_POST['chart-img'], $chart_id );
533+
$attachment_id = $this->save_chart_image( $_POST['chart-img'], $chart_id, $_POST['save_chart_image'] );
532534
if ( $attachment_id ) {
533535
update_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_IMAGE, $attachment_id );
534536
}
@@ -1437,9 +1439,20 @@ public function saveFilter() {
14371439
*
14381440
* @param string $base64_img Chart image.
14391441
* @param int $chart_id Chart ID.
1442+
* @param bool $save_attachment Save attachment.
14401443
* @return attachment ID
14411444
*/
1442-
public function save_chart_image( $base64_img, $chart_id ) {
1445+
public function save_chart_image( $base64_img, $chart_id, $save_attachment = true ) {
1446+
// Delete old chart image.
1447+
$old_attachment_id = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_IMAGE, true );
1448+
if ( $old_attachment_id ) {
1449+
wp_delete_attachment( $old_attachment_id, true );
1450+
}
1451+
1452+
if ( ! $save_attachment ) {
1453+
return 0;
1454+
}
1455+
14431456
// Upload dir.
14441457
$upload_dir = wp_upload_dir();
14451458
$upload_path = str_replace( '/', DIRECTORY_SEPARATOR, $upload_dir['path'] ) . DIRECTORY_SEPARATOR;
@@ -1451,12 +1464,6 @@ public function save_chart_image( $base64_img, $chart_id ) {
14511464
$file_type = 'image/png';
14521465
$hashed_filename = $filename;
14531466

1454-
// Delete old chart image.
1455-
$old_attachment_id = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_IMAGE, true );
1456-
if ( $old_attachment_id ) {
1457-
wp_delete_attachment( $old_attachment_id, true );
1458-
}
1459-
14601467
// Save the image in the uploads directory.
14611468
require_once ABSPATH . '/wp-admin/includes/file.php';
14621469
\WP_Filesystem();

classes/Visualizer/Render/Sidebar.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,4 +510,26 @@ protected function load_dependent_assets( $libs ) {
510510
}
511511

512512
}
513+
514+
/**
515+
* Renders save chart as image setting group.
516+
*
517+
* @access protected
518+
*/
519+
protected function _renderChartImageSettings() {
520+
// Default enable if amp is active.
521+
$is_amp = function_exists( 'amp_is_enabled' ) && amp_is_enabled();
522+
$this->save_chart_image = null === $this->save_chart_image && $is_amp ? true : $this->save_chart_image;
523+
524+
self::_renderSectionStart( esc_html__( 'Save chart as an image inside Media Library', 'visualizer' ), false );
525+
self::_renderCheckboxItem(
526+
esc_html__( 'Save inside media library?', 'visualizer' ),
527+
'save_chart_image',
528+
$this->save_chart_image ? true : false,
529+
'yes',
530+
esc_html__( 'To enable save the image as an inside media library.', 'visualizer' ),
531+
false
532+
);
533+
self::_renderSectionEnd();
534+
}
513535
}

classes/Visualizer/Render/Sidebar/ChartJS.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,9 @@ protected function _renderGeneralSettings() {
310310
''
311311
);
312312
self::_renderSectionEnd();
313+
314+
self::_renderChartImageSettings();
315+
313316
self::_renderGroupEnd();
314317
}
315318

classes/Visualizer/Render/Sidebar/Google.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,9 @@ protected function _renderGeneralSettings() {
251251
''
252252
);
253253
self::_renderSectionEnd();
254+
255+
self::_renderChartImageSettings();
256+
254257
do_action( 'visualizer_chart_settings', get_class( $this ), $this->_data, 'general', array( 'generic' => true ) );
255258

256259
self::_renderGroupEnd();

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ protected function _renderGeneralSettings() {
149149
);
150150

151151
self::_renderSectionEnd();
152+
153+
self::_renderChartImageSettings();
154+
152155
self::_renderGroupEnd();
153156
}
154157

classes/Visualizer/Render/Sidebar/Type/DataTable/Tabular.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ protected function _renderGeneralSettings() {
147147
);
148148

149149
self::_renderSectionEnd();
150+
151+
self::_renderChartImageSettings();
152+
150153
self::_renderGroupEnd();
151154
}
152155

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ protected function _renderGeneralSettings() {
102102
);
103103
self::_renderSectionEnd();
104104

105+
self::_renderChartImageSettings();
106+
105107
self::_renderGroupEnd();
106108
}
107109

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ protected function _renderGeneralSettings() {
8686
''
8787
);
8888
self::_renderSectionEnd();
89+
90+
self::_renderChartImageSettings();
91+
8992
self::_renderGroupEnd();
9093
}
9194

classes/Visualizer/Render/Sidebar/Type/GoogleCharts/Tabular.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ protected function _renderGeneralSettings() {
9494
$this->creator,
9595
''
9696
);
97+
98+
self::_renderChartImageSettings();
99+
97100
self::_renderGroupEnd();
98101
}
99102

0 commit comments

Comments
 (0)