Changeset 55859
- Timestamp:
- 05/25/2023 03:15:45 PM (19 months ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/js/_enqueues/lib/image-edit.js
r55843 r55859 227 227 scaleChanged : function( postid, x, el ) { 228 228 var w = $('#imgedit-scale-width-' + postid), h = $('#imgedit-scale-height-' + postid), 229 warn = $('#imgedit-scale-warn-' + postid), w1 = '', h1 = ''; 229 warn = $('#imgedit-scale-warn-' + postid), w1 = '', h1 = '', 230 scaleBtn = $('#imgedit-scale-button'); 230 231 231 232 if ( false === this.validateNumeric( el ) ) { … … 243 244 if ( ( h1 && h1 > this.hold.oh ) || ( w1 && w1 > this.hold.ow ) ) { 244 245 warn.css('visibility', 'visible'); 246 scaleBtn.prop('disabled', true); 245 247 } else { 246 248 warn.css('visibility', 'hidden'); 249 scaleBtn.prop('disabled', false); 247 250 } 248 251 }, -
trunk/src/wp-admin/css/media.css
r55091 r55859 1155 1155 1156 1156 span.imgedit-scale-warn { 1157 color: #d63638; 1158 font-size: 20px; 1157 display: flex; 1158 align-items: center; 1159 margin: 4px; 1160 gap: 4px; 1161 color: #b32d2e; 1159 1162 font-style: normal; 1160 1163 visibility: hidden; -
trunk/src/wp-admin/includes/image-edit.php
r55276 r55859 144 144 ?> 145 145 </label> 146 <input type=" text" id="imgedit-scale-width-<?php echo $post_id; ?>" onkeyup="imageEdit.scaleChanged(<?php echo $post_id; ?>, 1, this)" onblur="imageEdit.scaleChanged(<?php echo $post_id; ?>, 1, this)" value="<?php echo isset( $meta['width'] ) ? $meta['width'] : 0; ?>" />146 <input type="number" aria-describedby="imgedit-scale-warn-<?php echo $post_id; ?>" min="1" max="<?php echo isset( $meta['width'] ) ? $meta['width'] : ''; ?>" step="1" id="imgedit-scale-width-<?php echo $post_id; ?>" onkeyup="imageEdit.scaleChanged(<?php echo $post_id; ?>, 1, this)" onchange="imageEdit.scaleChanged(<?php echo $post_id; ?>, 0, this)" onblur="imageEdit.scaleChanged(<?php echo $post_id; ?>, 1, this)" value="<?php echo isset( $meta['width'] ) ? $meta['width'] : 0; ?>" /> 147 147 <span class="imgedit-separator" aria-hidden="true">×</span> 148 148 <label for="imgedit-scale-height-<?php echo $post_id; ?>" class="screen-reader-text"> … … 152 152 ?> 153 153 </label> 154 <input type="text" id="imgedit-scale-height-<?php echo $post_id; ?>" onkeyup="imageEdit.scaleChanged(<?php echo $post_id; ?>, 0, this)" onblur="imageEdit.scaleChanged(<?php echo $post_id; ?>, 0, this)" value="<?php echo isset( $meta['height'] ) ? $meta['height'] : 0; ?>" /> 155 <span class="imgedit-scale-warn" id="imgedit-scale-warn-<?php echo $post_id; ?>">!</span> 154 <input type="number" aria-describedby="imgedit-scale-warn-<?php echo $post_id; ?>" min="1" max="<?php echo isset( $meta['height'] ) ? $meta['height'] : ''; ?>" step="1" id="imgedit-scale-height-<?php echo $post_id; ?>" onkeyup="imageEdit.scaleChanged(<?php echo $post_id; ?>, 0, this)" onchange="imageEdit.scaleChanged(<?php echo $post_id; ?>, 0, this)" onblur="imageEdit.scaleChanged(<?php echo $post_id; ?>, 0, this)" value="<?php echo isset( $meta['height'] ) ? $meta['height'] : 0; ?>" /> 156 155 <div class="imgedit-scale-button-wrapper"><input id="imgedit-scale-button" type="button" onclick="imageEdit.action(<?php echo "$post_id, '$nonce'"; ?>, 'scale')" class="button button-primary" value="<?php esc_attr_e( 'Scale' ); ?>" /></div> 157 156 </div> 157 <span class="imgedit-scale-warn" id="imgedit-scale-warn-<?php echo $post_id; ?>"><span class="dashicons dashicons-warning" aria-hidden="true"></span><?php esc_html_e( 'Images cannot be scaled to a size larger than the original.' ); ?></span> 158 158 159 </fieldset> 159 160 … … 894 895 $scale = ! empty( $_REQUEST['do'] ) && 'scale' === $_REQUEST['do']; 895 896 896 if ( $scale && $fwidth > 0 && $fheight > 0) {897 if ( $scale ) { 897 898 $size = $img->get_size(); 898 899 $sX = $size['width']; 899 900 $sY = $size['height']; 900 901 901 // Check if it has roughly the same w / h ratio. 902 $diff = round( $sX / $sY, 2 ) - round( $fwidth / $fheight, 2 ); 903 if ( -0.1 < $diff && $diff < 0.1 ) { 904 // Scale the full size image. 905 if ( $img->resize( $fwidth, $fheight ) ) { 906 $scaled = true; 907 } 908 } 909 910 if ( ! $scaled ) { 911 $return->error = esc_js( __( 'Error while saving the scaled image. Please reload the page and try again.' ) ); 902 if ( $sX < $fwidth || $sY < $fheight ) { 903 $return->error = esc_js( __( 'Images cannot be scaled to a size larger than the original.' ) ); 912 904 return $return; 905 } 906 907 if ( $fwidth > 0 && $fheight > 0 ) { 908 // Check if it has roughly the same w / h ratio. 909 $diff = round( $sX / $sY, 2 ) - round( $fwidth / $fheight, 2 ); 910 if ( -0.1 < $diff && $diff < 0.1 ) { 911 // Scale the full size image. 912 if ( $img->resize( $fwidth, $fheight ) ) { 913 $scaled = true; 914 } 915 } 916 917 if ( ! $scaled ) { 918 $return->error = esc_js( __( 'Error while saving the scaled image. Please reload the page and try again.' ) ); 919 return $return; 920 } 913 921 } 914 922 } elseif ( ! empty( $_REQUEST['history'] ) ) { -
trunk/tests/phpunit/tests/ajax/wpAjaxImageEditor.php
r54722 r55859 63 63 64 64 /** 65 * @ticket 26381 66 * @requires function imagejpeg 67 * 68 * @covers ::wp_save_image 69 */ 70 public function testCropImageIntoLargerOne() { 71 require_once ABSPATH . 'wp-admin/includes/image-edit.php'; 72 73 $filename = DIR_TESTDATA . '/images/canola.jpg'; 74 $contents = file_get_contents( $filename ); 75 76 $upload = wp_upload_bits( wp_basename( $filename ), null, $contents ); 77 $id = $this->_make_attachment( $upload ); 78 79 $_REQUEST['action'] = 'image-editor'; 80 $_REQUEST['postid'] = $id; 81 $_REQUEST['do'] = 'scale'; 82 $_REQUEST['fwidth'] = 700; 83 $_REQUEST['fheight'] = 500; 84 85 $ret = wp_save_image( $id ); 86 87 $this->assertObjectHasAttribute( 'error', $ret ); 88 $this->assertEquals( 'Images cannot be scaled to a size larger than the original.', $ret->error ); 89 } 90 91 /** 65 92 * @ticket 32171 66 93 * @requires function imagejpeg
Note: See TracChangeset
for help on using the changeset viewer.