diff --git a/HTML/EN/songinfo_header.html b/HTML/EN/songinfo_header.html index 7b27fdb6de4..a87ed2dd701 100644 --- a/HTML/EN/songinfo_header.html +++ b/HTML/EN/songinfo_header.html @@ -124,6 +124,10 @@ [% item = itemobj.albumlength.name; title = "LENGTH"; PROCESS songInfoItem %] [% END %] + [% IF itemobj.release_type %] + [% item = itemobj.release_type.name | html; title = "RELEASE_TYPE"; PROCESS songInfoItem %] + [% END %] + [% IF itemobj.album.compilation || itemobj.compilation %] [% item = "YES" | string; title = "COMPILATION"; PROCESS songInfoItem %] [% END %] diff --git a/Slim/Menu/AlbumInfo.pm b/Slim/Menu/AlbumInfo.pm index a5c1246b37d..1320c1ca04f 100644 --- a/Slim/Menu/AlbumInfo.pm +++ b/Slim/Menu/AlbumInfo.pm @@ -110,8 +110,13 @@ sub registerDefaultInfoProviders { func => \&infoDisc, ) ); - $class->registerInfoProvider( compilation => ( + $class->registerInfoProvider( releaseType => ( after => 'year', + func => \&infoReleaseType, + ) ); + + $class->registerInfoProvider( compilation => ( + after => 'releaseType', func => \&infoCompilation, ) ); @@ -452,6 +457,22 @@ sub infoDuration { return $item; } +sub infoReleaseType { + my ( $client, $url, $album ) = @_; + + my $item; + + if ( $album->release_type ) { + $item = { + type => 'text', + label => 'RELEASE_TYPE', + name => $album->releaseType, + }; + } + + return $item; +} + sub infoCompilation { my ( $client, $url, $album ) = @_; diff --git a/Slim/Schema/Album.pm b/Slim/Schema/Album.pm index 01b8f4cb4c5..df07ad2e15a 100644 --- a/Slim/Schema/Album.pm +++ b/Slim/Schema/Album.pm @@ -175,6 +175,11 @@ sub releaseTypeName { return $name || $releaseType; } +sub releaseType { + my ($self, $client) = @_; + return $self->releaseTypeName($self->release_type, $client); +} + # Update the title dynamically if we're part of a set. sub title { my $self = shift; diff --git a/Slim/Web/XMLBrowser.pm b/Slim/Web/XMLBrowser.pm index b4d17fc8d6a..214d9dd0e51 100644 --- a/Slim/Web/XMLBrowser.pm +++ b/Slim/Web/XMLBrowser.pm @@ -855,7 +855,7 @@ sub handleFeed { my $i = 0; my $roles = join ('|', Slim::Schema::Contributor->contributorRoles()); - my $allLabels = join ('|', $roles, qw(ALBUM GENRE YEAR ALBUMREPLAYGAIN ALBUMLENGTH COMPILATION WORK)); + my $allLabels = join ('|', $roles, qw(ALBUM GENRE YEAR ALBUMREPLAYGAIN ALBUMLENGTH COMPILATION WORK RELEASE_TYPE)); foreach my $item ( @{ $feed->{'albumData'} || $stash->{'items'} } ) { diff --git a/strings.txt b/strings.txt index 221b99d6697..71b805d657a 100644 --- a/strings.txt +++ b/strings.txt @@ -12373,6 +12373,12 @@ ALBUM SV Album ZH_CN 专辑 +RELEASE_TYPE + DE Veröffentlichungstyp + EN Release type + FR Type de sorties + NL Releasetype + RELEASE_TYPE_SINGLE EN Single