From 356f4cc4bcb386218781ab1094f24a11728e3d5d Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Sat, 15 Sep 2007 01:28:50 +0000 Subject: [PATCH] mujma: ImageEditor?.php adjusted to standards, Image.js improved resizing of large images. (merged from branches/gsoc) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@41898 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/ImageEditor.php | 25 +++++++++++-------------- javascript/ImageEditor/Image.js | 11 ++++------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/code/ImageEditor.php b/code/ImageEditor.php index 4c8704fb..1fff5838 100644 --- a/code/ImageEditor.php +++ b/code/ImageEditor.php @@ -16,8 +16,8 @@ */ public function index() { Requirements::clear(); - Requirements::javascript("jsparty/prototype.js"); - Requirements::javascript("jsparty/scriptaculous/scriptaculous.js"); + Requirements::javascript('jsparty/prototype.js'); + Requirements::javascript('jsparty/scriptaculous/scriptaculous.js'); Requirements::javascript('cms/javascript/ImageEditor/Utils.js'); Requirements::javascript('cms/javascript/ImageEditor/ImageHistory.js'); Requirements::javascript('cms/javascript/ImageEditor/Image.js'); @@ -28,12 +28,12 @@ Requirements::javascript('cms/javascript/ImageEditor/Crop.js'); Requirements::javascript('cms/javascript/ImageEditor/Resize.js'); Requirements::javascript('cms/javascript/ImageEditor/ImageBox.js'); - Requirements::javascript("cms/javascript/ImageEditor/ImageEditor.js"); + Requirements::javascript('cms/javascript/ImageEditor/ImageEditor.js'); - Requirements::javascript("jsparty/loader.js"); - Requirements::javascript("jsparty/behaviour.js"); - Requirements::javascript("cms/javascript/LeftAndMain.js"); - Requirements::css("cms/css/ImageEditor/ImageEditor.css"); + Requirements::javascript('jsparty/loader.js'); + Requirements::javascript('jsparty/behaviour.js'); + Requirements::javascript('cms/javascript/LeftAndMain.js'); + Requirements::css('cms/css/ImageEditor/ImageEditor.css'); if(!isset($this->requestParams['fileToEdit'])) $this->raiseError(); $fileWithPath = $this->requestParams['fileToEdit']; @@ -98,7 +98,7 @@ if(strpos($originalFile,'?') !== false) $originalFile = substr($originalFile,0,strpos($originalFile,'?')); if($this->checkFileExists($originalFile) && $this->checkFileExists($editedFile)) { if($editedFile != $originalFile && copy($this->url2File($editedFile),$this->url2File($originalFile))) { - $image = DataObject::get_one('File',"Filename = '" . substr($this->url2File($originalFile),3) . "'"); + $image = DataObject::get_one('File','Filename = \'' . substr($this->url2File($originalFile),3) . '\''); $image->generateFormattedImage('AssetLibraryPreview'); } else { $this->raiseError(); @@ -109,7 +109,7 @@ } else { $this->raiseError(); } - return "parent.parent.parent.statusMessage('Image saved','good',false);"; + return 'parent.parent.parent.statusMessage(\'Image saved\',\'good\',false);'; } /** @@ -134,8 +134,7 @@ * @return string JSON array explained in manipulate method comment */ - private function getImageInfoInJSON(GD $gd,$file) - { + private function getImageInfoInJSON(GD $gd,$file) { return '{"fileName":"' . $file . '","width":' . $gd->getWidth() . ',"height":' . $gd->getHeight() . '}'; } @@ -211,10 +210,8 @@ * */ - private function raiseError($message = "") - { + private function raiseError($message = "") { echo "parent.parent.parent.statusMessage('Error: " . $message . "','bad',false);"; exit(); } } -?> \ No newline at end of file diff --git a/javascript/ImageEditor/Image.js b/javascript/ImageEditor/Image.js index e9a0b1d4..921f14aa 100644 --- a/javascript/ImageEditor/Image.js +++ b/javascript/ImageEditor/Image.js @@ -44,16 +44,13 @@ var ImageToResize = { imageHeight= Element.getDimensions(this.image).height; if(imageWidth > windowWidth - 120 || imageHeight > windowHeight - 120) { ratio = imageWidth / imageHeight; - if(imageWidth > imageHeight) { - newWidth = windowWidth - 120; - newHeight = newWidth * (1/ratio); - } else { - newHeight = windowHeight - 120; - newWidth = newHeight * ratio; + while(imageWidth > windowWidth - 120 || imageHeight > windowHeight - 120) { + imageWidth--; + imageHeight = imageWidth * (1/ratio); } this.reportSize(0,0); imageHistory.clear(); - imageTransformation.resize(newWidth,newHeight,ImageToResize.resizeOnFirstLoadCallBack.bind(this)); + imageTransformation.resize(imageWidth,imageHeight,ImageToResize.resizeOnFirstLoadCallBack.bind(this)); } else { if(imageWidth != 0 && imageHeight != 0) Element.show($('image')); }