Update GalleryFile for Moose.
This commit is contained in:
parent
4edd07cf99
commit
02a257e1d1
1 changed files with 55 additions and 50 deletions
|
|
@ -15,7 +15,39 @@ package WebGUI::Asset::File::GalleryFile;
|
|||
=cut
|
||||
|
||||
use strict;
|
||||
use base 'WebGUI::Asset::File';
|
||||
use WebGUI::Definition::Asset;
|
||||
extends 'WebGUI::Asset::File';
|
||||
aspect assetName => ['assetName', 'Asset_GalleryFile'];
|
||||
aspect tableName => 'GalleryFile';
|
||||
property views => (
|
||||
noFormPost => 1,
|
||||
default => 0,
|
||||
);
|
||||
property friendsOnly => (
|
||||
label => ['editForm friendsOnly','Asset_Photo'],
|
||||
default => 0,
|
||||
);
|
||||
property rating => (
|
||||
noFormPost => 1,
|
||||
default => 0,
|
||||
);
|
||||
for my $i ( 1 .. 5 ) {
|
||||
property 'userDefined'.$i => (
|
||||
default => undef,
|
||||
label => '',
|
||||
fieldType => 'text',
|
||||
);
|
||||
}
|
||||
|
||||
around isHidden => sub {
|
||||
my $orig = shift;
|
||||
my $self = shift;
|
||||
if (@_ > 0) {
|
||||
$_[0] = 1;
|
||||
}
|
||||
$self->$orig(@_);
|
||||
};
|
||||
|
||||
|
||||
use Carp qw( croak confess );
|
||||
use URI::Escape;
|
||||
|
|
@ -53,15 +85,6 @@ sub definition {
|
|||
my $i18n = WebGUI::International->new($session,'Asset_Photo');
|
||||
|
||||
tie my %properties, 'Tie::IxHash', (
|
||||
views => {
|
||||
defaultValue => 0,
|
||||
},
|
||||
friendsOnly => {
|
||||
defaultValue => 0,
|
||||
},
|
||||
rating => {
|
||||
defaultValue => 0,
|
||||
},
|
||||
);
|
||||
|
||||
# UserDefined Fields
|
||||
|
|
@ -72,9 +95,6 @@ sub definition {
|
|||
}
|
||||
|
||||
push @{$definition}, {
|
||||
assetName => $i18n->get('assetName'),
|
||||
autoGenerateForms => 0,
|
||||
tableName => 'GalleryFile',
|
||||
className => 'WebGUI::Asset::File::GalleryFile',
|
||||
properties => \%properties,
|
||||
};
|
||||
|
|
@ -137,7 +157,7 @@ sub appendTemplateVarsCommentForm {
|
|||
$var->{ commentForm_bodyText }
|
||||
= WebGUI::Form::HTMLArea( $session, {
|
||||
name => "bodyText",
|
||||
richEditId => $self->getGallery->get("richEditIdComment"),
|
||||
richEditId => $self->getGallery->richEditIdComment,
|
||||
value => $comment->{ bodyText },
|
||||
});
|
||||
|
||||
|
|
@ -203,7 +223,7 @@ sub canEdit {
|
|||
my $userId = shift || $self->session->user->userId;
|
||||
my $album = $self->getParent;
|
||||
|
||||
return 1 if $userId eq $self->get("ownerUserId");
|
||||
return 1 if $userId eq $self->ownerUserId;
|
||||
return $album->canEdit($userId);
|
||||
}
|
||||
|
||||
|
|
@ -241,8 +261,8 @@ sub canView {
|
|||
my $album = $self->getParent;
|
||||
return 0 unless $album->canView($userId);
|
||||
|
||||
if ($self->isFriendsOnly && $userId ne $self->get("ownerUserId") ) {
|
||||
my $owner = WebGUI::User->new( $self->session, $self->get("ownerUserId") );
|
||||
if ($self->isFriendsOnly && $userId ne $self->ownerUserId ) {
|
||||
my $owner = WebGUI::User->new( $self->session, $self->ownerUserId );
|
||||
return 0
|
||||
unless WebGUI::Friends->new($self->session, $owner)->isFriend($userId);
|
||||
}
|
||||
|
|
@ -284,7 +304,7 @@ sub getAutoCommitWorkflowId {
|
|||
my $self = shift;
|
||||
my $gallery = $self->getGallery;
|
||||
if ($gallery->hasBeenCommitted) {
|
||||
return $gallery->get("workflowIdCommit")
|
||||
return $gallery->workflowIdCommit
|
||||
|| $self->session->setting->get('defaultVersionTagWorkflow');
|
||||
}
|
||||
return undef;
|
||||
|
|
@ -377,7 +397,7 @@ sub getCurrentRevisionDate {
|
|||
|
||||
return undef unless $asset;
|
||||
|
||||
if ( $asset->get( 'status' ) eq "approved" || $asset->canEdit ) {
|
||||
if ( $asset->approved || $asset->canEdit ) {
|
||||
return $revisionDate;
|
||||
}
|
||||
else {
|
||||
|
|
@ -416,7 +436,7 @@ sub getParent {
|
|||
return $album;
|
||||
}
|
||||
# Only get the pending version if we're allowed to see this photo in its pending status
|
||||
elsif ( $self->getGallery->canEdit || $self->get( 'ownerUserId' ) eq $self->session->user->userId ) {
|
||||
elsif ( $self->getGallery->canEdit || $self->ownerUserId eq $self->session->user->userId ) {
|
||||
my $album
|
||||
= $self->getLineage( ['ancestors'], {
|
||||
includeOnlyClasses => [ 'WebGUI::Asset::Wobject::GalleryAlbum' ],
|
||||
|
|
@ -456,13 +476,13 @@ sub getTemplateVars {
|
|||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $var = $self->get;
|
||||
my $owner = WebGUI::User->new( $session, $self->get("ownerUserId") );
|
||||
my $owner = WebGUI::User->new( $session, $self->ownerUserId );
|
||||
|
||||
$var->{ fileUrl } = $self->getFileUrl;
|
||||
$var->{ thumbnailUrl } = $self->getThumbnailUrl;
|
||||
|
||||
# Set a flag for pending files
|
||||
if ( $self->get( "status" ) eq "pending" ) {
|
||||
if ( $self->status eq "pending" ) {
|
||||
$var->{ 'isPending' } = 1;
|
||||
}
|
||||
|
||||
|
|
@ -474,7 +494,7 @@ sub getTemplateVars {
|
|||
}
|
||||
|
||||
# Add a text-only synopsis
|
||||
$var->{ synopsis_textonly } = WebGUI::HTML::filter( $self->get('synopsis'), "all" );
|
||||
$var->{ synopsis_textonly } = WebGUI::HTML::filter( $self->synopsis, "all" );
|
||||
|
||||
# Figure out on what page of the album the gallery file belongs.
|
||||
my $album = $self->getParent;
|
||||
|
|
@ -483,7 +503,7 @@ sub getTemplateVars {
|
|||
my $pageNumber =
|
||||
int (
|
||||
( first_index { $_ eq $id } @{ $fileIdsInAlbum } ) # Get index of file in album
|
||||
/ $album->getParent->get( 'defaultFilesPerPage' ) # Divide by the number of files per page
|
||||
/ $album->getParent->defaultFilesPerPage # Divide by the number of files per page
|
||||
) + 1; # Round upwards
|
||||
|
||||
$var->{ canComment } = $self->canComment;
|
||||
|
|
@ -501,7 +521,7 @@ sub getTemplateVars {
|
|||
$var->{ url_slideshow } = $self->getParent->getUrl('func=slideshow');
|
||||
$var->{ url_makeShortcut } = $self->getUrl('func=makeShortcut');
|
||||
$var->{ url_listFilesForOwner }
|
||||
= $self->getGallery->getUrl('func=listFilesForUser;userId=' . $self->get("ownerUserId"));
|
||||
= $self->getGallery->getUrl('func=listFilesForUser;userId=' . $self->ownerUserId);
|
||||
$var->{ url_promote } = $self->getUrl('func=promote');
|
||||
|
||||
return $var;
|
||||
|
|
@ -518,7 +538,7 @@ Returns true if this GalleryFile is friends only. Returns false otherwise.
|
|||
|
||||
sub isFriendsOnly {
|
||||
my $self = shift;
|
||||
return $self->get("friendsOnly");
|
||||
return $self->friendsOnly;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
|
@ -570,7 +590,7 @@ sub prepareView {
|
|||
$self->SUPER::prepareView();
|
||||
|
||||
my $template
|
||||
= WebGUI::Asset::Template->new($self->session, $self->getGallery->get("templateIdViewFile"));
|
||||
= WebGUI::Asset::Template->new($self->session, $self->getGallery->templateIdViewFile);
|
||||
$template->prepare($self->getMetaDataAsTemplateVariables);
|
||||
|
||||
$self->{_viewTemplate} = $template;
|
||||
|
|
@ -637,7 +657,7 @@ sub processPropertiesFromFormPost {
|
|||
my $errors = $self->SUPER::processPropertiesFromFormPost || [];
|
||||
|
||||
# Make sure we have the disk space for this
|
||||
if ( !$self->getGallery->hasSpaceAvailable( $self->get( 'assetSize' ) ) ) {
|
||||
if ( !$self->getGallery->hasSpaceAvailable( $self->assetSize ) ) {
|
||||
push @{ $errors }, $i18n->get( "error no space" );
|
||||
}
|
||||
|
||||
|
|
@ -647,7 +667,7 @@ sub processPropertiesFromFormPost {
|
|||
### Passes all checks
|
||||
|
||||
# If the album doesn't yet have a thumbnail, make this File the thumbnail
|
||||
if ( !$self->getParent->get('assetIdThumbnail') ) {
|
||||
if ( !$self->getParent->assetIdThumbnail ) {
|
||||
$self->getParent->update( {
|
||||
assetIdThumbnail => $self->getId,
|
||||
} );
|
||||
|
|
@ -723,21 +743,6 @@ sub setComment {
|
|||
);
|
||||
}
|
||||
|
||||
####################################################################
|
||||
|
||||
=head2 update
|
||||
|
||||
Wrap update so that isHidden is always set to be a 1.
|
||||
|
||||
=cut
|
||||
|
||||
sub update {
|
||||
my $self = shift;
|
||||
my $properties = shift;
|
||||
return $self->SUPER::update({%$properties, isHidden => 1});
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head2 view ( )
|
||||
|
|
@ -788,7 +793,7 @@ sub view {
|
|||
url_searchKeywordUser
|
||||
=> $self->getGallery->getUrl(
|
||||
"func=search;submit=1;"
|
||||
. "userId=" . $self->get("ownerUserId") . ';'
|
||||
. "userId=" . $self->ownerUserId . ';'
|
||||
. 'keywords=' . uri_escape( $keyword )
|
||||
),
|
||||
};
|
||||
|
|
@ -836,7 +841,7 @@ sub www_delete {
|
|||
# TODO Get albums with shortcuts to this asset
|
||||
|
||||
return $self->processStyle(
|
||||
$self->processTemplate( $var, $self->getGallery->get("templateIdDeleteFile") )
|
||||
$self->processTemplate( $var, $self->getGallery->templateIdDeleteFile )
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -934,7 +939,7 @@ sub www_editComment {
|
|||
$var->{ isNew } = $commentId eq "new";
|
||||
|
||||
return $self->processStyle(
|
||||
$self->processTemplate( $var, $self->getGallery->get("templateIdEditComment") )
|
||||
$self->processTemplate( $var, $self->getGallery->templateIdEditComment )
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -1015,7 +1020,7 @@ sub www_makeShortcut {
|
|||
for my $assetId ( @$albums ) {
|
||||
my $asset = WebGUI::Asset->newById($session, $assetId);
|
||||
if ($asset->canAddFile) {
|
||||
$albumOptions{ $assetId } = $asset->get("title");
|
||||
$albumOptions{ $assetId } = $asset->title;
|
||||
}
|
||||
}
|
||||
$var->{ form_parentId }
|
||||
|
|
@ -1026,7 +1031,7 @@ sub www_makeShortcut {
|
|||
});
|
||||
|
||||
return $self->processStyle(
|
||||
$self->processTemplate($var, $self->getGallery->get("templateIdMakeShortcut"))
|
||||
$self->processTemplate($var, $self->getGallery->templateIdMakeShortcut)
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -1065,7 +1070,7 @@ sub www_view {
|
|||
return $self->session->privilege->insufficient unless $self->canView;
|
||||
|
||||
# Add to views
|
||||
$self->update({ views => $self->get('views') + 1 });
|
||||
$self->update({ views => $self->views + 1 });
|
||||
|
||||
$self->session->http->setLastModified($self->getContentLastModified);
|
||||
$self->session->http->sendHeader;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue