From 53bdfda75399d52ec8995bbb4445968bc76ac44e Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Fri, 28 Mar 2008 19:55:03 +0000 Subject: [PATCH] fixed: profile photos don't obey max image size --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/File/GalleryFile/Photo.pm | 2 +- lib/WebGUI/Asset/File/Image.pm | 4 ++-- lib/WebGUI/Asset/Post.pm | 3 ++- lib/WebGUI/Asset/Wobject/Article.pm | 3 --- lib/WebGUI/Form/Image.pm | 10 +++++++++- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index aa79fd058..702d4c474 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -7,6 +7,7 @@ - fixed: Form::FieldType->getTypes should exclude Form::Slider base class (Yung Han Khoe) - upgraded to TinyMCE 3 - fixed: subscription group in CS edit not internationalized + - fixed: profile photos don't obey max image size 7.5.8 - moved Gallery utility methods to WebGUI::Utility::Gallery diff --git a/lib/WebGUI/Asset/File/GalleryFile/Photo.pm b/lib/WebGUI/Asset/File/GalleryFile/Photo.pm index ac4325380..687ceade0 100644 --- a/lib/WebGUI/Asset/File/GalleryFile/Photo.pm +++ b/lib/WebGUI/Asset/File/GalleryFile/Photo.pm @@ -119,7 +119,7 @@ sub applyConstraints { my $parameters = $self->get("parameters"); my $storage = $self->getStorageLocation; my $file = $self->get("filename"); - $storage->adjustMaxImageSize($file); + $storage->adjustMaxImageSize($file, $maxImageSize); $self->generateThumbnail; $self->setSize; $self->makeResolutions; diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index e09b951b8..ade792952 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -74,8 +74,8 @@ sub applyConstraints { $self->update({parameters=>$parameters.' alt="'.$self->get("title").'"'}); } my $file = $self->get("filename"); - $storage->adjustMaxImageSize($file); - $self->generateThumbnail($thumbnailSize); + $storage->adjustMaxImageSize($file, $maxImageSize); + $self->generateThumbnail($thumbnailSize); $self->setSize; } diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 3c27b2451..7ebc91c30 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -161,7 +161,8 @@ sub definition { my $properties = { storageId => { fieldType=>"image", - defaultValue=>undef + defaultValue=>undef, + enforceSizeLimits => 0, }, threadId => { noFormPost=>1, diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index 8359dbb71..0c96b3841 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -229,9 +229,6 @@ sub processPropertiesFromFormPost { my $size = 0; my $storage = $self->getStorageLocation; foreach my $file (@{$storage->getFiles}) { - if ($storage->isImage($file)) { - $storage->adjustMaxImageSize($size); - } $size += $storage->getFileSize($file); } $self->setSize($size); diff --git a/lib/WebGUI/Form/Image.pm b/lib/WebGUI/Form/Image.pm index 3f06e5859..6bad0884c 100644 --- a/lib/WebGUI/Form/Image.pm +++ b/lib/WebGUI/Form/Image.pm @@ -81,6 +81,9 @@ sub definition { forceImageOnly=>{ defaultValue=>0 }, + enforceSizeLimits => { + defaultValue => 1 + }, dbDataType => { defaultValue => "VARCHAR(22) BINARY", }, @@ -201,7 +204,12 @@ sub getValueFromPost { } return undef unless @files; - $storage->generateThumbnail($_) for @images; # Make a thumbnail for each filename in @images + for my $image (@images) { + $storage->generateThumbnail($image); # Make a thumbnail for each file + if ($self->get('enforceSizeLimits')) { + $storage->adjustMaxImageSize($image); + } + } } } return $id;