r10151 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server/Controller root/artist root/css

View: New views
1 Messages — Rating Filter:   Alert me  

r10151 - in mb_server/branches/TemplateToolkit: lib/MusicBrainz/Server/Controller root/artist root/css

by root-97 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

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
LightInTheBox - Buy quality products at wholesale price!
 
Creative Commons EFF GPL LGPL
Original Design|vacubomb.com Contact Details Server Version: RELEASE-20060712