Update GalleryFile for Moose.

This commit is contained in:
Colin Kuskie 2010-02-15 15:18:39 -08:00
parent 4edd07cf99
commit 02a257e1d1

View file

@ -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;