From 8104338da74f7e812df8a79d30c3387c0c09c245 Mon Sep 17 00:00:00 2001 From: kimd Date: Wed, 24 Mar 2010 22:07:41 +0100 Subject: [PATCH] Added additional navigation to the photo asset (RFE 11412). --- ...templates_default-gallery-view-photo.wgpkg | Bin 0 -> 3984 bytes ...import_gallery-templates_gallery.css.wgpkg | Bin 0 -> 6030 bytes ...root_import_gallery-templates_images.wgpkg | Bin 0 -> 73308 bytes lib/WebGUI/Asset/File/GalleryFile.pm | 92 ++++++++++++++- lib/WebGUI/Asset/Wobject/GalleryAlbum.pm | 52 ++++++++ lib/WebGUI/Help/Asset_Photo.pm | 48 ++++++++ lib/WebGUI/i18n/English/Asset_Photo.pm | 60 ++++++++++ t/Asset/File/GalleryFile/Photo/navigation.t | 111 ++++++++++++++++++ t/Asset/File/GalleryFile/Photo/view.t | 38 +++++- t/Asset/Wobject/GalleryAlbum/navigation.t | 106 +++++++++++++++++ 10 files changed, 505 insertions(+), 2 deletions(-) create mode 100644 docs/upgrades/packages-7.9.1/root_import_gallery-templates_default-gallery-view-photo.wgpkg create mode 100644 docs/upgrades/packages-7.9.1/root_import_gallery-templates_gallery.css.wgpkg create mode 100644 docs/upgrades/packages-7.9.1/root_import_gallery-templates_images.wgpkg create mode 100644 t/Asset/File/GalleryFile/Photo/navigation.t create mode 100644 t/Asset/Wobject/GalleryAlbum/navigation.t diff --git a/docs/upgrades/packages-7.9.1/root_import_gallery-templates_default-gallery-view-photo.wgpkg b/docs/upgrades/packages-7.9.1/root_import_gallery-templates_default-gallery-view-photo.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..0598a9102872cf10ab8e9ca30edf409cf9ef1ec1 GIT binary patch literal 3984 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 I@Bm-{05-YnhX4Qo literal 0 HcmV?d00001 diff --git a/docs/upgrades/packages-7.9.1/root_import_gallery-templates_images.wgpkg b/docs/upgrades/packages-7.9.1/root_import_gallery-templates_images.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..300f32c6be37693eb13391fe938a933e7b8221ab GIT binary patch literal 73308 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%0A9Rt0HGP^S`#{DdG`redX;XtV+XOF2hD)yK`ZO` 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ⅈr-`*1SIcthgw>`IRkCLEYH}R* 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 SrodmA0>1$gf6n9p$N~U2SrnrH literal 0 HcmV?d00001 diff --git a/lib/WebGUI/Asset/File/GalleryFile.pm b/lib/WebGUI/Asset/File/GalleryFile.pm index 2c184d552..d718d8a11 100644 --- a/lib/WebGUI/Asset/File/GalleryFile.pm +++ b/lib/WebGUI/Asset/File/GalleryFile.pm @@ -438,6 +438,76 @@ sub getParent { #---------------------------------------------------------------------------- +=head2 getFirstFile ( ) + +Get the first file in the GalleryAlbum. Returns an instance of a GalleryFile +or undef if there is no first file. + +=cut + +sub getFirstFile { + my $self = shift; + my $allFileIds = $self->getParent->getFileIds; + + return undef unless @{ $allFileIds }; + return WebGUI::Asset->newByDynamicClass( $self->session, shift @{ $allFileIds }); +} + +#---------------------------------------------------------------------------- + +=head2 getLastFile ( ) + +Get the last file in the GalleryAlbum. Returns an instance of a GalleryFile +or undef if there is no last file. + +=cut + +sub getLastFile { + my $self = shift; + my $allFileIds = $self->getParent->getFileIds; + + return undef unless @{ $allFileIds }; + return WebGUI::Asset->newByDynamicClass( $self->session, pop @{ $allFileIds }); +} + +#---------------------------------------------------------------------------- + +=head2 getNextFile ( ) + +Get the next file in the GalleryAlbum. Returns an instance of a GalleryFile, +or undef if there is no next file. + +=cut + +sub getNextFile { + my $self = shift; + return $self->{_nextFile} if $self->{_nextFile}; + my $nextId = $self->getParent->getNextFileId( $self->getId ); + return undef unless $nextId; + $self->{_nextFile} = WebGUI::Asset->newByDynamicClass( $self->session, $nextId ); + return $self->{_nextFile}; +} + +#---------------------------------------------------------------------------- + +=head2 getPreviousFile ( ) + +Get the previous file in the GalleryAlbum. Returns an instance of a GalleryFile, +or undef if there is no previous file. + +=cut + +sub getPreviousFile { + my $self = shift; + return $self->{_previousFile} if $self->{_previousFile}; + my $previousId = $self->getParent->getPreviousFileId( $self->getId ); + return undef unless $previousId; + $self->{_previousFile} = WebGUI::Asset->newByDynamicClass( $self->session, $previousId ); + return $self->{_previousFile}; +} + +#---------------------------------------------------------------------------- + =head2 getThumbnailUrl ( ) Gets the URL to the thumbnail for this GalleryFile. This should probably be @@ -512,10 +582,30 @@ sub getTemplateVars { = $self->getGallery->getUrl('func=listFilesForUser;userId=' . $self->get("ownerUserId")); $var->{ url_promote } = $self->getUrl('func=promote'); + if ( my $firstFile = $self->getFirstFile ) { + $var->{ firstFile_url } = $firstFile->getUrl; + $var->{ firstFile_title } = $firstFile->get( "title" ); + $var->{ firstFile_thumbnailUrl } = $firstFile->getThumbnailUrl; + } + if ( my $nextFile = $self->getNextFile ) { + $var->{ nextFile_url } = $nextFile->getUrl; + $var->{ nextFile_title } = $nextFile->get( "title" ); + $var->{ nextFile_thumbnailUrl } = $nextFile->getThumbnailUrl; + } + if ( my $prevFile = $self->getPreviousFile ) { + $var->{ previousFile_url } = $prevFile->getUrl; + $var->{ previousFile_title } = $prevFile->get( "title" ); + $var->{ previousFile_thumbnailUrl } = $prevFile->getThumbnailUrl; + } + if ( my $lastFile = $self->getLastFile ) { + $var->{ lastFile_url } = $lastFile->getUrl; + $var->{ lastFile_title } = $lastFile->get( "title" ); + $var->{ lastFile_thumbnailUrl } = $lastFile->getThumbnailUrl; + } + return $var; } - #---------------------------------------------------------------------------- =head2 isFriendsOnly ( ) diff --git a/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm b/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm index abba5673b..2ecb0f75c 100644 --- a/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm +++ b/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm @@ -460,6 +460,58 @@ sub getFileIds { #---------------------------------------------------------------------------- +=head2 getNextFileId ( fileId ) + +Gets the next fileId from the list of fileIds. C is the base +fileId we want to find the next file for. + +Returns C if there is no next fileId. + +=cut + +sub getNextFileId { + my $self = shift; + my $fileId = shift; + my $allFileIds = $self->getFileIds; + + while ( my $checkId = shift @{ $allFileIds } ) { + # If this is the last albumId + return undef unless @{ $allFileIds }; + + if ( $fileId eq $checkId ) { + return shift @{ $allFileIds }; + } + } +} + +#---------------------------------------------------------------------------- + +=head2 getPreviousFileId ( fileId ) + +Gets the previous fileId from the list of fileIds. C is the base +fileId we want to find the previous file for. + +Returns C if there is no previous fileId. + +=cut + +sub getPreviousFileId { + my $self = shift; + my $fileId = shift; + my $allFileIds = $self->getFileIds; + + while ( my $checkId = pop @{ $allFileIds } ) { + # If this is the last albumId + return undef unless @{ $allFileIds }; + + if ( $fileId eq $checkId ) { + return pop @{ $allFileIds }; + } + } +} + +#---------------------------------------------------------------------------- + =head2 getFilePaginator ( paginatorUrl ) Gets a WebGUI::Paginator for the files in this album. C is the diff --git a/lib/WebGUI/Help/Asset_Photo.pm b/lib/WebGUI/Help/Asset_Photo.pm index bd7cb977b..652edebdb 100644 --- a/lib/WebGUI/Help/Asset_Photo.pm +++ b/lib/WebGUI/Help/Asset_Photo.pm @@ -174,6 +174,54 @@ our $HELP = { name => 'album_url', description => 'helpvar album_url', }, + { + name => 'firstFile_url', + description => 'helpvar firstFile_url', + }, + { + name => 'firstFile_title', + description => 'helpvar firstFile_title', + }, + { + name => 'firstFile_thumbnailUrl', + description => 'helpvar firstFile_thumbnailUrl', + }, + { + name => 'nextFile_url', + description => 'helpvar nextFile_url', + }, + { + name => 'nextFile_title', + description => 'helpvar nextFile_title', + }, + { + name => 'nextFile_thumbnailUrl', + description => 'helpvar nextFile_thumbnailUrl', + }, + { + name => 'previousFile_url', + description => 'helpvar previousFile_url', + }, + { + name => 'previousFile_title', + description => 'helpvar previousFile_title', + }, + { + name => 'previousFile_thumbnailUrl', + description => 'helpvar previousFile_thumbnailUrl', + }, + { + name => 'lastFile_url', + description => 'helpvar lastFile_url', + }, + { + name => 'lastFile_title', + description => 'helpvar lastFile_title', + }, + { + name => 'lastFile_thumbnailUrl', + description => 'helpvar lastFile_thumbnailUrl', + }, ], }, diff --git a/lib/WebGUI/i18n/English/Asset_Photo.pm b/lib/WebGUI/i18n/English/Asset_Photo.pm index aa56d2aaa..a96365896 100644 --- a/lib/WebGUI/i18n/English/Asset_Photo.pm +++ b/lib/WebGUI/i18n/English/Asset_Photo.pm @@ -307,6 +307,66 @@ our $I18N = { lastUpdated => 0, }, + 'helpvar firstFile_url' => { + message => 'The URL of the first file in the album.', + lastUpdated => 0, + }, + + 'helpvar firstFile_title' => { + message => 'The title of the first file in the album.', + lastUpdated => 0, + }, + + 'helpvar firstFile_thumbnailUrl' => { + message => 'The URL of the thumbnail of the first file in the album.', + lastUpdated => 0, + }, + + 'helpvar nextFile_url' => { + message => 'The URL of the next file in the album. Undefined if no next file.', + lastUpdated => 0, + }, + + 'helpvar nextFile_title' => { + message => 'The title of the next file in the album. Undefined if no next file.', + lastUpdated => 0, + }, + + 'helpvar nextFile_thumbnailUrl' => { + message => 'The URL of the thumbnail of the next file in the album. Undefined if no next file.', + lastUpdated => 0, + }, + + 'helpvar previousFile_url' => { + message => 'The URL of the previous file in the album. Undefined if no previous file.', + lastUpdated => 0, + }, + + 'helpvar previousFile_title' => { + message => 'The title of the previous file in the album. Undefined if no previous file.', + lastUpdated => 0, + }, + + 'helpvar previousFile_thumbnailUrl' => { + message => 'The URL of the thumbnail of the previous file in the album. Undefined if no previous file.', + lastUpdated => 0, + }, + + 'helpvar lastFile_url' => { + message => 'The URL of the last file in the album.', + lastUpdated => 0, + }, + + 'helpvar lastFile_title' => { + message => 'The title of the last file in the album.', + lastUpdated => 0, + }, + + 'helpvar lastFile_thumbnailUrl' => { + message => 'The URL of the thumbnail of the last file in the album.', + lastUpdated => 0, + }, + 'template view title' => { message => 'Photo Details', lastUpdated => 0, diff --git a/t/Asset/File/GalleryFile/Photo/navigation.t b/t/Asset/File/GalleryFile/Photo/navigation.t new file mode 100644 index 000000000..567e73fd6 --- /dev/null +++ b/t/Asset/File/GalleryFile/Photo/navigation.t @@ -0,0 +1,111 @@ +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2009 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +use FindBin; +use strict; +use lib "$FindBin::Bin/../../../../lib"; + +## The goal of this test is to test the creation and deletion of photo assets + +use WebGUI::Test; +use WebGUI::Session; +use Test::More; + +#---------------------------------------------------------------------------- +# Init +my $session = WebGUI::Test->session; +my $node = WebGUI::Asset->getImportNode($session); +my $versionTag = WebGUI::VersionTag->getWorking($session); + +$versionTag->set({name=>"Photo Test"}); + +# Create gallery and a single album +my $gallery + = $node->addChild({ + className => "WebGUI::Asset::Wobject::Gallery", + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); +my $album + = $gallery->addChild({ + className => "WebGUI::Asset::Wobject::GalleryAlbum", + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); + +# Create 5 photos inside the gallery +my @photo; + +for (my $i = 0; $i < 5; $i++) +{ + $photo[$i] + = $album->addChild({ + className => "WebGUI::Asset::File::GalleryFile::Photo", + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); +} + +# Commit all changes +$versionTag->commit; + +#---------------------------------------------------------------------------- +# Tests +plan tests => 11; + +#---------------------------------------------------------------------------- +# Test module compiles okay +# plan tests => 1 +use_ok("WebGUI::Asset::File::GalleryFile::Photo"); + +#---------------------------------------------------------------------------- +# Test getFirstFile method + +diag('getFirstFile'); +is( $photo[2]->getFirstFile->getId, $photo[0]->getId, 'First file is photo no. 1' ); +is( $photo[0]->getFirstFile->getId, $photo[0]->getId, 'First file is still photo no. 1' ); + +#---------------------------------------------------------------------------- +# Test getFirstFile method + +diag('getLastFile'); +is( $photo[2]->getLastFile->getId, $photo[4]->getId, 'Last file is photo no. 5' ); +is( $photo[4]->getLastFile->getId, $photo[4]->getId, 'Last file is still photo no. 5' ); + +#---------------------------------------------------------------------------- +# Test getPreviousFile method + +diag('getPreviousFile'); +is( $photo[2]->getPreviousFile->getId, $photo[1]->getId, 'Photo previous of photo no. 3 is photo no. 2' ); +is( $photo[1]->getPreviousFile->getId, $photo[0]->getId, 'Photo previous of photo no. 2 is photo no. 1' ); +is( $photo[0]->getPreviousFile, undef, 'Photo previous of photo no. 1 is undef' ); + +#---------------------------------------------------------------------------- +# Test getNextFile method + +diag('getNextFile'); +is( $photo[2]->getNextFile->getId, $photo[3]->getId, 'Photo next of photo no. 3 is photo no. 4' ); +is( $photo[3]->getNextFile->getId, $photo[4]->getId, 'Photo next of photo no. 4 is photo no. 5' ); +is( $photo[4]->getNextFile, undef, 'Photo next of photo no. 5 is undef' ); + +#---------------------------------------------------------------------------- +# Cleanup +END { + $versionTag->rollback; +} diff --git a/t/Asset/File/GalleryFile/Photo/view.t b/t/Asset/File/GalleryFile/Photo/view.t index a3ab68036..97b3eb317 100644 --- a/t/Asset/File/GalleryFile/Photo/view.t +++ b/t/Asset/File/GalleryFile/Photo/view.t @@ -42,6 +42,16 @@ my $album { skipAutoCommitWorkflows => 1, }); +my $previousPhoto + = $album->addChild({ + className => "WebGUI::Asset::File::GalleryFile::Photo", + ownerUserId => 3, + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); my $photo = $album->addChild({ className => "WebGUI::Asset::File::GalleryFile::Photo", @@ -52,6 +62,16 @@ my $photo { skipAutoCommitWorkflows => 1, }); +my $nextPhoto + = $album->addChild({ + className => "WebGUI::Asset::File::GalleryFile::Photo", + ownerUserId => 3, + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); $versionTag->commit; $photo->setFile( WebGUI::Test->getTestCollateralPath('page_title.jpg') ); @@ -87,7 +107,23 @@ my $testTemplateVars = { numberOfComments => scalar @{ $photo->getCommentIds }, exifLoop => ignore(), # Tested elsewhere isPending => ( $photo->get("status") eq "pending" ), - + firstFile_url => $previousPhoto->getUrl, + firstFile_thumbnailUrl + => $previousPhoto->getThumbnailUrl, + firstFile_title => $previousPhoto->get("title"), + previousFile_url => $previousPhoto->getUrl, + previousFile_thumbnailUrl + => $previousPhoto->getThumbnailUrl, + previousFile_title => $previousPhoto->get("title"), + nextFile_url => $nextPhoto->getUrl, + nextFile_thumbnailUrl + => $nextPhoto->getThumbnailUrl, + nextFile_title => $nextPhoto->get("title"), + firstFile_title => $previousPhoto->get("title"), + lastFile_url => $nextPhoto->getUrl, + lastFile_thumbnailUrl + => $nextPhoto->getThumbnailUrl, + lastFile_title => $nextPhoto->get("title"), }; # Ignore all EXIF tags, they're tested in exif.t diff --git a/t/Asset/Wobject/GalleryAlbum/navigation.t b/t/Asset/Wobject/GalleryAlbum/navigation.t new file mode 100644 index 000000000..14f36cc4e --- /dev/null +++ b/t/Asset/Wobject/GalleryAlbum/navigation.t @@ -0,0 +1,106 @@ +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2009 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +use FindBin; +use strict; +use lib "$FindBin::Bin/../../../lib"; + +## The goal of this test is to test the creation and deletion of album assets + +use WebGUI::Test; +use WebGUI::Session; +use Test::More; + +#---------------------------------------------------------------------------- +# Init +my $session = WebGUI::Test->session; +my $node = WebGUI::Asset->getImportNode($session); +my $versionTag = WebGUI::VersionTag->getWorking($session); + +$versionTag->set({name=>"Album Test"}); + +# Create gallery and a single album +my $gallery + = $node->addChild({ + className => "WebGUI::Asset::Wobject::Gallery", + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); +my $album + = $gallery->addChild({ + className => "WebGUI::Asset::Wobject::GalleryAlbum", + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); + +# Create 5 photos inside the gallery +my @photo; + +for (my $i = 0; $i < 5; $i++) +{ + $photo[$i] + = $album->addChild({ + className => "WebGUI::Asset::File::GalleryFile::Photo", + }, + undef, + undef, + { + skipAutoCommitWorkflows => 1, + }); +} + +# Commit all changes +$versionTag->commit; + +#---------------------------------------------------------------------------- +# Tests +plan tests => 15; + +#---------------------------------------------------------------------------- +# Test module compiles okay +use_ok("WebGUI::Asset::Wobject::GalleryAlbum"); + +#---------------------------------------------------------------------------- +# Test getPreviousFileId + +diag('getPreviousFileId'); +is( $album->getPreviousFileId($photo[2]->getId), $photo[1]->getId, 'Id of photo previous of photo no. 3 equals id of photo no. 2' ); +is( $album->getPreviousFileId($photo[1]->getId), $photo[0]->getId, 'Id of photo previous of photo no. 2 equals id of photo no. 1' ); +is( $album->getPreviousFileId($photo[0]->getId), undef, 'Id of photo previous of photo no. 3 is undef' ); + +is( $album->getPreviousFileId(undef), undef, 'Return undef if undef specified'); +is( $album->getPreviousFileId(''), undef, 'Return undef if empty string specified'); +is( $album->getPreviousFileId('123456'), undef, 'Return undef if non-existing id specified'); +is( $album->getPreviousFileId($album->getId), undef, 'Return undef if non-child id specified'); + +#---------------------------------------------------------------------------- +# Test getNextFileId + +diag('getNextFileId'); +is( $album->getNextFileId($photo[2]->getId), $photo[3]->getId, 'Id of photo next of photo no. 3 equals id of photo no. 4' ); +is( $album->getNextFileId($photo[3]->getId), $photo[4]->getId, 'Id of photo next of photo no. 4 equals id of photo no. 5' ); +is( $album->getNextFileId($photo[4]->getId), undef, 'Id of photo next of photo no. 5 is undef' ); + +is( $album->getNextFileId(undef), undef, 'Return undef if undef specified'); +is( $album->getNextFileId(''), undef, 'Return undef if empty string specified'); +is( $album->getNextFileId('123456'), undef, 'Return undef if non-existing id specified'); +is( $album->getNextFileId($album->getId), undef, 'Return undef if non-child id specified'); + +#---------------------------------------------------------------------------- +# Cleanup +END { + $versionTag->rollback(); +}