From 522d87fed22ff7a663eb71deeba6fcdaa67958fa Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Fri, 22 Jun 2007 23:26:13 +0000 Subject: [PATCH] forward port of File/Image - Storage/Storage::Image object alignment fix --- lib/WebGUI/Asset/File.pm | 13 +++++++++---- lib/WebGUI/Asset/File/Image.pm | 16 ++++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index 9af93573f..e7a7abf2c 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -279,7 +279,7 @@ sub processPropertiesFromFormPost { $data{title} = $filename unless ($session->form->process("title")); $data{menuTitle} = $filename unless ($session->form->process("menuTitle")); $data{url} = $self->getParent->get('url').'/'.$filename unless ($session->form->process("url")); - $self->{_storageLocation} = $storage; + $self->setStorageLocation($storage); $self->update(\%data); } } @@ -336,11 +336,16 @@ sub setSize { #------------------------------------------------------------------- sub setStorageLocation { - my $self = shift; - if ($self->get("storageId") eq "") { + my $self = shift; + my $storage = shift; + if (defined $storage) { + $self->{_storageLocation} = $storage; + } + elsif ($self->get("storageId") eq "") { $self->{_storageLocation} = WebGUI::Storage->create($self->session); $self->update({storageId=>$self->{_storageLocation}->getId}); - } else { + } + else { $self->{_storageLocation} = WebGUI::Storage->get($self->session,$self->get("storageId")); } } diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index 445a30b87..b5d69e53c 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -207,7 +207,10 @@ sub processPropertiesFromFormPost { unless ($parameters =~ /alt\=/) { $self->update({parameters=>$parameters.' alt="'.$self->get("title").'"'}); } - my $storage = $self->getStorageLocation; + ##We just inherited a storage object of the wrong type. Reinstance the same + ##storage object with the correct type + my $storage = WebGUI::Storage::Image->get($self->session, $self->getStorageLocation->getId); + $self->setStorageLocation($storage); my $max_size = $self->session->setting->get("maxImageSize"); my $file = $self->get("filename"); my ($w, $h) = $storage->getSizeInPixels($file); @@ -225,11 +228,16 @@ sub processPropertiesFromFormPost { #------------------------------------------------------------------- sub setStorageLocation { - my $self = shift; - if ($self->get("storageId") eq "") { + my $self = shift; + my $storage = shift; + if (defined $storage) { + $self->{_storageLocation} = $storage; + } + elsif ($self->get("storageId") eq "") { $self->{_storageLocation} = WebGUI::Storage::Image->create($self->session); $self->update({storageId=>$self->{_storageLocation}->getId}); - } else { + } + else { $self->{_storageLocation} = WebGUI::Storage::Image->get($self->session,$self->get("storageId")); } }