Author: acid2
Date: 2008-07-23 14:03:19 +0000 (Wed, 23 Jul 2008)
New Revision: 10151
Modified:
mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Artist.pm
mb_server/branches/TemplateToolkit/root/artist/compact.tt
mb_server/branches/TemplateToolkit/root/artist/landing.tt
mb_server/branches/TemplateToolkit/root/css/release.css
Log:
Fixes #3863
Modified: mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Artist.pm
===================================================================
--- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Artist.pm 2008-07-23 13:33:32 UTC (rev 10150)
+++ mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Artist.pm 2008-07-23 14:03:19 UTC (rev 10151)
@@ -391,10 +391,12 @@
my $mb = $c->mb;
my $artist = $c->stash->{_artist};
+ my $short_list = 1 - $c->req->query_params->{show_all};
+
# Load data for the landing page
my $annotation = LoadArtistAnnotation($mb->{DBH}, $artist);
my @tags = LoadArtistTags($mb->{DBH}, 5, $artist);
- my @releases = LoadArtistReleases($artist);
+ my @releases = LoadArtistReleases($artist, $short_list);
# Create data structures for the template
$c->stash->{artist_tags} = \@tags;
@@ -414,8 +416,12 @@
# we need to create a new "release group"
if (not defined $currentGroup or $currentGroup->{type} != $type)
{
+ my $va = $release->{_is_va_} ? "Various Artist" : "";
+ my $name = $release->GetAttributeNamePlural($type);
+ $name = $name eq "" ? "Uncategorized Releases" : $name;
+
$currentGroup = {
- name => $release->GetAttributeNamePlural($type),
+ name => ($name ? "$va $name" : $va ? $va."s" : "None"),
releases => [],
type => $type,
};
@@ -432,7 +438,7 @@
}
# Decide how to display the data
- $c->stash->{template} = $c->request->params->{full} ?
+ $c->stash->{template} = defined $c->request->query_params->{full} ?
'artist/full.tt' :
'artist/compact.tt';
}
@@ -465,13 +471,36 @@
sub LoadArtistReleases
{
- my $artist = shift;
+ my ($artist, $limited_selection) = @_;
- my @releases = $artist->GetReleases(1, 1);
- my $onlyHasVAReleases = (scalar @releases) == 0;
+ my @releases = $artist->GetReleases($limited_selection, 1);
- my @shortList;
+ if ($limited_selection)
+ {
+ my $onlyHasVAReleases = (scalar @releases) == 0;
+ my @shortList;
+ for my $release (@releases)
+ {
+ my ($type, $status) = $release->GetReleaseTypeAndStatus;
+
+ # Push onto our list of releases we are actually interested in
+ push @shortList, $release
+ if (defined $type && (
+ $type == MusicBrainz::Server::Release::RELEASE_ATTR_ALBUM ||
+ $type == MusicBrainz::Server::Release::RELEASE_ATTR_EP ||
+ $type == MusicBrainz::Server::Release::RELEASE_ATTR_COMPILATION ||
+ $type == MusicBrainz::Server::Release::RELEASE_ATTR_SINGLE));
+ }
+
+ @releases = scalar @shortList ? @shortList : @releases;
+
+ if (scalar @releases == 0)
+ {
+ @releases = $artist->GetReleases(0, 1, $onlyHasVAReleases);
+ }
+ }
+
for my $release (@releases)
{
my ($type, $status) = $release->GetReleaseTypeAndStatus;
@@ -506,17 +535,9 @@
$release->{_disc_no_} = $2;
$release->{_disc_max_} = $3 || 0;
}
-
- # Push onto our list of releases we are actually interested in
- push @shortList, $release
- if (defined $type && (
- $type == MusicBrainz::Server::Release::RELEASE_ATTR_ALBUM ||
- $type == MusicBrainz::Server::Release::RELEASE_ATTR_EP ||
- $type == MusicBrainz::Server::Release::RELEASE_ATTR_COMPILATION ||
- $type == MusicBrainz::Server::Release::RELEASE_ATTR_SINGLE));
}
- sort SortAlbums @shortList;
+ sort SortAlbums @releases;
}
=head2 load_relations $artist
Modified: mb_server/branches/TemplateToolkit/root/artist/compact.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/artist/compact.tt 2008-07-23 13:33:32 UTC (rev 10150)
+++ mb_server/branches/TemplateToolkit/root/artist/compact.tt 2008-07-23 14:03:19 UTC (rev 10151)
@@ -22,6 +22,5 @@
</tbody>
</table>
</div>
- <br />
[%- END -%]
[% END %]
Modified: mb_server/branches/TemplateToolkit/root/artist/landing.tt
===================================================================
--- mb_server/branches/TemplateToolkit/root/artist/landing.tt 2008-07-23 13:33:32 UTC (rev 10150)
+++ mb_server/branches/TemplateToolkit/root/artist/landing.tt 2008-07-23 14:03:19 UTC (rev 10151)
@@ -5,5 +5,14 @@
[%- INCLUDE "tag/summary.tt" tags=artist_tags source=artist -%]
</div>
[%- INCLUDE "components/relations.tt" source=artist relations=artist_relations -%]
+<div style="text-align: center;">
+ [%- IF c.req.query_params.show_all -%]
+ You are viewing all releases by [% artist.name %]. You can also choose to view only
+ <strong><a href="[% entity_url(artist, 'show', { show_all => 0 }) %]">albums, EPs, singles and compliations by this artist</a></strong>.
+ [%- ELSE -%]
+ You are viewing a small selection of this releases by [% artist.name %]. You can also choose to
+ <strong><a href="[% entity_url(artist, 'show', { show_all => 1 }) %]">show all releases</a></strong>.
+ [%- END -%]
+</div>
[%- content -%]
[%- END -%]
Modified: mb_server/branches/TemplateToolkit/root/css/release.css
===================================================================
--- mb_server/branches/TemplateToolkit/root/css/release.css 2008-07-23 13:33:32 UTC (rev 10150)
+++ mb_server/branches/TemplateToolkit/root/css/release.css 2008-07-23 14:03:19 UTC (rev 10151)
@@ -128,8 +128,12 @@
table.releases .puids { width: 50pt; }
table.releases .tracks { width: 30pt; }
-table.releases .date,
table.releases .status,
+table.releases .date {
+ width: 60pt;
+ text-align: center;
+}
+
table.releases .language {
width: 20pt;
text-align: center;
_______________________________________________
MusicBrainz-commits mailing list
MusicBrainz-commits@...
http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-commits