Skip to content

Commit 0604a5c

Browse files
author
Jacob Middag
committed
Simplify logic in rendering details and use dismiss icon
1 parent 930a45d commit 0604a5c

7 files changed

Lines changed: 50 additions & 29 deletions

File tree

src/class-tiny-metadata.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ public function add_exception($exception, $size=self::ORIGINAL) {
8686
);
8787
}
8888

89+
public function get_id() {
90+
return $this->id;
91+
}
92+
8993
public function get_filename($size=self::ORIGINAL) {
9094
return isset($this->filenames[$size]) ? $this->filenames[$size] : null;
9195
}

src/class-tiny-notices.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,19 @@ public function dismiss() {
106106
exit();
107107
}
108108

109-
public function show($name, $message, $klass='error', $dismissable=true) {
110-
$link = $dismissable ? "&nbsp;<a href=\"#\" data-name=\"$name\" class=\"tiny-dismiss\">" . self::translate_escape('Dismiss') . '</a>' : '';
111-
add_action('admin_notices', create_function('', "echo '<div class=\"$klass\"><p>Compress JPEG & PNG images: $message$link</p></div>';"));
109+
public function show($name, $message, $klass='error', $dismissible=true) {
110+
$css = array($klass, 'notice');
111+
if (!$dismissible) {
112+
$add = '</p>';
113+
} else if (self::wp_version() >= 4.2) {
114+
$add = '</p><button class="notice-dismiss tiny-dismiss" type="button" data-name="'. $name .'">'
115+
. '<span class="screen-reader-text">' . self::translate_escape('Dismiss')
116+
. '</span></button>';
117+
$css[] = 'is-dismissible';
118+
} else {
119+
$add = '&nbsp;<a href="#" data-name="' . $name .'" class="tiny-dismiss">' . self::translate_escape('Dismiss') . '</a></p>';
120+
}
121+
$css = implode(' ', $css);
122+
add_action('admin_notices', create_function('', "echo '<div class=\"$css\"><p>Compress JPEG & PNG images: $message$add</div>';"));
112123
}
113124
}

src/class-tiny-plugin.php

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public function compress_image() {
147147
$result['thumbnail'] = $tiny_metadata->get_url('thumbnail');
148148
echo json_encode($result);
149149
} else {
150-
echo $this->render_media_column(self::MEDIA_COLUMN, $id);
150+
echo $this->render_compress_details($tiny_metadata);
151151
}
152152

153153
exit();
@@ -176,28 +176,31 @@ public function add_media_columns($columns) {
176176

177177
public function render_media_column($column, $id) {
178178
if ($column === self::MEDIA_COLUMN) {
179-
$tiny_metadata = new Tiny_Metadata($id);
180-
$missing = $tiny_metadata->get_missing_sizes($this->settings->get_tinify_sizes());
181-
$success = count($tiny_metadata->get_success_sizes());
182-
$total = count($missing) + $success;
179+
$this->render_compress_details(new Tiny_Metadata($id));
180+
}
181+
}
182+
183+
private function render_compress_details($tiny_metadata) {
184+
$missing = $tiny_metadata->get_missing_sizes($this->settings->get_tinify_sizes());
185+
$success = count($tiny_metadata->get_success_sizes());
186+
$total = count($missing) + $success;
183187

184-
if (count($missing) > 0) {
185-
printf(self::translate_escape('Compressed %d out of %d sizes'), $success, $total);
188+
if (count($missing) > 0) {
189+
printf(self::translate_escape('Compressed %d out of %d sizes'), $success, $total);
190+
echo '<br/>';
191+
if (($error = $tiny_metadata->get_latest_error())) {
192+
echo '<span class="error">' . self::translate_escape('Latest error') . ': '. self::translate_escape($error) .'</span><br/>';
193+
}
194+
echo '<button type="button" class="tiny-compress" data-id="' . $tiny_metadata->get_id() . '">' .
195+
self::translate_escape('Compress') . '</button>';
196+
echo '<div class="spinner hidden"></div>';
197+
} else {
198+
printf(self::translate_escape('Compressed %d out of %d sizes'), $success, $total);
199+
$savings = $tiny_metadata->get_savings();
200+
if ($savings['count'] > 0) {
186201
echo '<br/>';
187-
if (($error = $tiny_metadata->get_latest_error())) {
188-
echo '<span class="error">' . self::translate_escape('Latest error') . ': '. self::translate_escape($error) .'</span><br/>';
189-
}
190-
echo '<button type="button" class="tiny-compress" data-id="' . $id . '">' .
191-
self::translate_escape('Compress') . '</button>';
192-
echo '<div class="spinner hidden"></div>';
193-
} else {
194-
printf(self::translate_escape('Compressed %d out of %d sizes'), $success, $total);
195-
$savings = $tiny_metadata->get_savings();
196-
if ($savings['count'] > 0) {
197-
echo '<br/>';
198-
echo self::translate_escape('Total size') . ': ' . size_format($savings['input']) . '<br/>';
199-
echo self::translate_escape('Compressed size') . ': ' . size_format($savings['output']);
200-
}
202+
echo self::translate_escape('Total size') . ': ' . size_format($savings['input']) . '<br/>';
203+
echo self::translate_escape('Compressed size') . ': ' . size_format($savings['output']);
201204
}
202205
}
203206
}

src/class-tiny-wp-base.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,17 @@ abstract class Tiny_WP_Base {
2222
const NAME = 'tiny-compress-images';
2323
const PREFIX = 'tinypng_';
2424

25+
public static function wp_version() {
26+
return $GLOBALS['wp_version'];
27+
}
2528

2629
public static function plugin_version() {
2730
$plugin_data = get_plugin_data(dirname(__FILE__) . '/../tiny-compress-images.php');
2831
return $plugin_data['Version'];
2932
}
3033

3134
public static function plugin_identification() {
32-
return 'Wordpress/' . $GLOBALS['wp_version'] . ' Tiny/' . self::plugin_version();
35+
return 'Wordpress/' . self::wp_version() . ' Tiny/' . self::plugin_version();
3336
}
3437

3538
protected static function get_prefixed_name($name) {

src/config/tiny-config.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
22

33
class Tiny_Config {
4-
const URL = 'http://webservice/shrink';
4+
const URL = 'https://api.tinypng.com/shrink';
55
}

src/scripts/admin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
jQuery('#tiny-compress-status').load(ajaxurl + '?action=tiny_compress_status')
137137
}
138138

139-
jQuery('a.tiny-dismiss').click(dismiss_notice)
139+
jQuery('.tiny-dismiss').click(dismiss_notice)
140140

141141
window.tinyBulkCompress = bulk_compress
142142
}).call()

test/integration/CompressIntegrationTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ public function testLimitReached() {
5959
public function testLimitReachedDismisses() {
6060
$this->set_api_key('LIMIT123');
6161
$this->upload_image(dirname(__FILE__) . '/../fixtures/input-example.png');
62-
self::$driver->findElement(WebDriverBy::cssSelector('a.tiny-dismiss'))->click();
62+
self::$driver->findElement(WebDriverBy::cssSelector('.tiny-dismiss'))->click();
6363
self::$driver->wait(2)->until(WebDriverExpectedCondition::invisibilityOfElementWithText(
64-
WebDriverBy::cssSelector('a.tiny-dismiss'), 'Dismiss'));
64+
WebDriverBy::cssSelector('.tiny-dismiss'), 'Dismiss'));
6565
}
6666
}

0 commit comments

Comments
 (0)