diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index cefaa32ab..56a286e04 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -249,9 +249,6 @@ sub getEditFormUploadControl { sub getFileUrl { my $self = shift; #return $self->get("url"); - if (-f $self->getStorageLocation->getPath('crop-' . $self->get("filename"))) { - return $self->getStorageLocation->getUrl('crop-' . $self->get("filename")); - } return $self->getStorageLocation->getUrl($self->get("filename")); } @@ -561,6 +558,7 @@ sub www_edit { #------------------------------------------------------------------- + sub www_view { my $self = shift; return $self->session->privilege->noAccess() unless $self->canView; diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index 8a4ea79f1..ccb1784dc 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -268,7 +268,9 @@ sub www_edit { return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session, 'Asset_Image'); $self->getAdminConsole->addSubmenuItem($self->getUrl('func=resize'),$i18n->get("resize image")) if ($self->get("filename")); + $self->getAdminConsole->addSubmenuItem($self->getUrl('func=rotate'),$i18n->get("rotate image")) if ($self->get("filename")); $self->getAdminConsole->addSubmenuItem($self->getUrl('func=crop'),$i18n->get("crop image")) if ($self->get("filename")); + $self->getAdminConsole->addSubmenuItem($self->getUrl('func=undo'),$i18n->get("undo image")) if ($self->get("filename")); my $tabform = $self->getEditForm; $tabform->getTab("display")->template( -value=>$self->get("templateId"), @@ -279,6 +281,111 @@ sub www_edit { return $self->getAdminConsole->render($tabform->print,$i18n->get("edit image")); } +#------------------------------------------------------------------- +sub www_undo { + my $self = shift; + my $previous = (@{$self->getRevisions()})[-2]; + if ($previous) { + $self = $self->purgeRevision(); + $self = $previous; + $self->generateThumbnail; + } + return $self->www_edit(); +} + +#------------------------------------------------------------------- +sub www_rotate { + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + warn ($self->session->form->process("degree")); + if (defined $self->session->form->process("degree")) { + my $newSelf = $self->addRevision(); + delete $newSelf->{_storageLocation}; + $newSelf->getStorageLocation->rotate($newSelf->get("filename"),$newSelf->session->form->process("degree")); + $newSelf->setSize($newSelf->getStorageLocation->getFileSize($newSelf->get("filename"))); + $self = $newSelf; + $self->generateThumbnail; + } + + my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename")); + + ##YUI specific datatable CSS + my ($style, $url) = $self->session->quick(qw(style url)); + + my $img_name = $self->getStorageLocation->getUrl($self->get("filename")); + my $img_file = $self->get("filename"); + my $rotate_js = qq( + + + + ); + my $image = qq(
$rotate_js
); + + my $i18n = WebGUI::International->new($self->session,"Asset_Image"); + $self->getAdminConsole->addSubmenuItem($self->getUrl('func=edit'),$i18n->get("edit image")); + my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl); + $f->hidden( + -name=>"func", + -value=>"rotate" + ); + $f->hidden( + -name=>"degree", + -value=>0 + ); + $f->readOnly( + -value=>$i18n->get('rotate image label'), + -hoverHelp=>$i18n->get('rotate image description'), + ); + $f->submit; + return $self->getAdminConsole->render($f->print.$image,$i18n->get("rotate image")); +} + #------------------------------------------------------------------- sub www_resize { my $self = shift; @@ -290,6 +397,7 @@ sub www_resize { $newSelf->getStorageLocation->resize($newSelf->get("filename"),$newSelf->session->form->process("newWidth"),$newSelf->session->form->process("newHeight")); $newSelf->setSize($newSelf->getStorageLocation->getFileSize($newSelf->get("filename"))); $self = $newSelf; + $self->generateThumbnail; } my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename")); @@ -308,7 +416,6 @@ sub www_resize { my $resize_js = qq(