Add POD missing from File and Image. Remove duplicate code in Image that
can be inherited from File.
This commit is contained in:
parent
05cf48fb18
commit
27931774e8
2 changed files with 178 additions and 46 deletions
|
|
@ -135,6 +135,12 @@ sub definition {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 duplicate
|
||||
|
||||
Extend the master method to duplicate the storage location.
|
||||
|
||||
=cut
|
||||
|
||||
sub duplicate {
|
||||
my $self = shift;
|
||||
my $newAsset = $self->SUPER::duplicate(@_);
|
||||
|
|
@ -161,6 +167,12 @@ sub exportAssetData {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 exportWriteFile
|
||||
|
||||
Places a copy of the file from storage into the right location during an export.
|
||||
|
||||
=cut
|
||||
|
||||
sub exportWriteFile {
|
||||
my $self = shift;
|
||||
|
||||
|
|
@ -244,6 +256,13 @@ sub getEditFormUploadControl {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getFileUrl
|
||||
|
||||
Returns the URL for the file stored in the storage location.
|
||||
|
||||
=cut
|
||||
|
||||
sub getFileUrl {
|
||||
my $self = shift;
|
||||
#return $self->get("url");
|
||||
|
|
@ -251,15 +270,35 @@ sub getFileUrl {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getFileIconUrl
|
||||
|
||||
Returns the icon for the file stored in the storage location. If there's no
|
||||
file, then it returns undef.
|
||||
|
||||
=cut
|
||||
|
||||
sub getFileIconUrl {
|
||||
my $self = shift;
|
||||
return undef unless $self->get("filename"); ## Why do I have to do this when creating new Files?
|
||||
return $self->getStorageLocation->getFileIconUrl($self->get("filename"));
|
||||
my $self = shift;
|
||||
return undef unless $self->get("filename"); ## Why do I have to do this when creating new Files?
|
||||
return $self->getStorageLocation->getFileIconUrl($self->get("filename"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getIcon ($small)
|
||||
|
||||
Return an icon indicating what type of file this is. If the $small flag is set,
|
||||
then the icon returned is a file type icon, rather than an asset icon.
|
||||
|
||||
=head3 $small
|
||||
|
||||
Indicates that a small icon should be returned.
|
||||
|
||||
=cut
|
||||
|
||||
sub getIcon {
|
||||
my $self = shift;
|
||||
my $small = shift;
|
||||
|
|
@ -303,6 +342,13 @@ sub getStorageFromPost {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getStorageLocation
|
||||
|
||||
Returns the storage location for this asset. If one does not exist, then it
|
||||
is created.
|
||||
|
||||
=cut
|
||||
|
||||
sub getStorageLocation {
|
||||
my $self = shift;
|
||||
unless (exists $self->{_storageLocation}) {
|
||||
|
|
@ -345,6 +391,13 @@ sub prepareView {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 processPropertiesFromFormPost
|
||||
|
||||
Extend the master method to handle file uploads and applying constraints.
|
||||
|
||||
=cut
|
||||
|
||||
sub processPropertiesFromFormPost {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
|
|
@ -369,6 +422,12 @@ sub processPropertiesFromFormPost {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purge
|
||||
|
||||
Extends the master method to delete all storage locations associated with this asset.
|
||||
|
||||
=cut
|
||||
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
my $sth = $self->session->db->read("select storageId from FileAsset where assetId=".$self->session->db->quote($self->getId));
|
||||
|
|
@ -383,7 +442,7 @@ sub purge {
|
|||
|
||||
=head2 purgeCache ( )
|
||||
|
||||
See WebGUI::Asset::purgeCache() for details.
|
||||
Extends the master method to clear the view cache.
|
||||
|
||||
=cut
|
||||
|
||||
|
|
@ -395,6 +454,12 @@ sub purgeCache {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 purgeRevision
|
||||
|
||||
Extends the master method to delete the storage location for this asset.
|
||||
|
||||
=cut
|
||||
|
||||
sub purgeRevision {
|
||||
my $self = shift;
|
||||
$self->getStorageLocation->delete;
|
||||
|
|
@ -457,6 +522,19 @@ sub setSize {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setStorageLocation ($storage)
|
||||
|
||||
Updates the locally cached storage location. If this asset does not have a
|
||||
storage location, then one is created. Otherwise, the storage location's storageId
|
||||
is fetched from the db and used to create a storage location which is then placed
|
||||
in the local object cache.
|
||||
|
||||
=head3 $storage
|
||||
|
||||
If defined, the locally cached storage location is set to this object.
|
||||
|
||||
=cut
|
||||
|
||||
sub setStorageLocation {
|
||||
my $self = shift;
|
||||
my $storage = shift;
|
||||
|
|
@ -520,6 +598,13 @@ sub updatePropertiesFromStorage {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 view
|
||||
|
||||
Generate the view method for the Asset, and handle caching.
|
||||
|
||||
=cut
|
||||
|
||||
sub view {
|
||||
my $self = shift;
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
|
|
@ -540,6 +625,14 @@ sub view {
|
|||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_edit
|
||||
|
||||
Display the edit form to the user. Manually handles the template for displaying
|
||||
the inline view of the asset.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_edit {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
|
|
@ -556,6 +649,11 @@ sub www_edit {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_view
|
||||
|
||||
When viewed directly, stream the stored file to the user.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_view {
|
||||
my $self = shift;
|
||||
|
|
|
|||
|
|
@ -185,19 +185,14 @@ sub getEditForm {
|
|||
return $tabform;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getStorageClass
|
||||
=head2 getThumbnailUrl
|
||||
|
||||
Returns the class name of the WebGUI::Storage we should use for this asset.
|
||||
Returns the URL to the thumbnail of the image stored in the Asset.
|
||||
|
||||
=cut
|
||||
|
||||
sub getStorageClass {
|
||||
return 'WebGUI::Storage';
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getThumbnailUrl {
|
||||
my $self = shift;
|
||||
return $self->getStorageLocation->getThumbnailUrl($self->get("filename"));
|
||||
|
|
@ -219,21 +214,12 @@ sub getToolbar {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 prepareView ( )
|
||||
=head2 view
|
||||
|
||||
See WebGUI::Asset::prepareView() for details.
|
||||
Renders this asset.
|
||||
|
||||
=cut
|
||||
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView();
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId"));
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
$self->{_viewTemplate} = $template;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub view {
|
||||
my $self = shift;
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
|
|
@ -282,6 +268,14 @@ sub setFile {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_edit
|
||||
|
||||
Override the master class to add image editing controls to the edit screen.
|
||||
Also adds the Image template form variable.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_edit {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
|
|
@ -303,6 +297,14 @@ sub www_edit {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_undo
|
||||
|
||||
Rolls back the last revision of this asset, undoing any work that may
|
||||
have been done to it.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_undo {
|
||||
my $self = shift;
|
||||
my $previous = (@{$self->getRevisions()})[1];
|
||||
|
|
@ -332,6 +334,12 @@ sub www_undo {
|
|||
# All of the image operations will have to be updated to support annotations.
|
||||
#
|
||||
|
||||
=head2 www_annotate
|
||||
|
||||
Allow the user to place some text on their image. This is done via JS and tooltips
|
||||
|
||||
=cut
|
||||
|
||||
sub www_annotate {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
|
|
@ -421,6 +429,19 @@ sub www_annotate {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 annotate_js ($opts)
|
||||
|
||||
Returns some javascript and other supporting text.
|
||||
|
||||
=head3 $opts
|
||||
|
||||
A hash reference of options
|
||||
|
||||
=head4 just_image
|
||||
|
||||
=cut
|
||||
|
||||
sub annotate_js {
|
||||
my $self = shift;
|
||||
my $opts = shift;
|
||||
|
|
@ -531,11 +552,20 @@ sub annotate_js {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_rotate
|
||||
|
||||
Displays a form to the user to rotate their image. If the C<Rotate> form variable
|
||||
is true, does the rotation as well.
|
||||
|
||||
Returns the user to the roate form.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_rotate {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
return $self->session->privilege->locked() unless $self->canEditIfLocked;
|
||||
# warn(sprintf("Rotate_formId: %s", $self->session->form->process("Rotate")));
|
||||
if (defined $self->session->form->process("Rotate")) {
|
||||
my $newSelf = $self->addRevision();
|
||||
delete $newSelf->{_storageLocation};
|
||||
|
|
@ -579,6 +609,16 @@ sub www_rotate {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_resize
|
||||
|
||||
Displays a form for the user to resize this image. If either of the C<newWidth> or
|
||||
C<newHeight> form variables are true, also does the resizing.
|
||||
|
||||
Returns the user to the resize form.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_resize {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
|
|
@ -672,16 +712,27 @@ sub www_resize {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_crop
|
||||
|
||||
Display a form that allows the user to Crop their images. Also does the
|
||||
cropping if any of the C<Width>, C<Height>, C<Top> or C<Left> form
|
||||
variables are true.
|
||||
|
||||
Returns the user to the cropping form.
|
||||
|
||||
=cut
|
||||
|
||||
sub www_crop {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
return $self->session->privilege->locked() unless $self->canEditIfLocked;
|
||||
|
||||
if ($self->session->form->process("Width") || $self->session->form->process("Height")
|
||||
if ($self->session->form->process("Width") || $self->session->form->process("Height")
|
||||
|| $self->session->form->process("Top") || $self->session->form->process("Left")) {
|
||||
my $newSelf = $self->addRevision();
|
||||
delete $newSelf->{_storageLocation};
|
||||
$newSelf->getStorageLocation->crop(
|
||||
my $newSelf = $self->addRevision();
|
||||
delete $newSelf->{_storageLocation};
|
||||
$newSelf->getStorageLocation->crop(
|
||||
$newSelf->get("filename"),
|
||||
$newSelf->session->form->process("Width"),
|
||||
$newSelf->session->form->process("Height"),
|
||||
|
|
@ -690,7 +741,7 @@ sub www_crop {
|
|||
);
|
||||
$self = $newSelf;
|
||||
$self->generateThumbnail;
|
||||
}
|
||||
}
|
||||
|
||||
my $filename = $self->get("filename");
|
||||
|
||||
|
|
@ -777,21 +828,4 @@ sub www_crop {
|
|||
return $self->getAdminConsole->render($f->print.$image,$i18n->get("crop image"));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# Use superclass method for now.
|
||||
sub www_view {
|
||||
my $self = shift;
|
||||
return($self->SUPER::www_view);
|
||||
}
|
||||
|
||||
#sub www_view {
|
||||
# my $self = shift;
|
||||
# my $storage = $self->getStorageLocation;
|
||||
# $self->session->http->setRedirect($storage->getUrl($self->get("filename")));
|
||||
# $self->session->http->setStreamedFile($storage->getPath($self->get("filename")));
|
||||
# return "1";
|
||||
#}
|
||||
|
||||
|
||||
1;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue