Author: mherger
Date: Tue Nov 1 23:09:04 2011
New Revision: 33638
URL: http://svn.slimdevices.com/slim?rev=33638&view=rev
Log:
Fixed Bug: 17719
Description: fix long-standing issue where the web UI's Now Playing playlist wouldn't show correct information for remote streams
Modified:
7.7/trunk/server/HTML/Classic/status_list.html
7.7/trunk/server/HTML/Default/status_list.html
7.7/trunk/server/HTML/EN/status_list.html
7.7/trunk/server/Slim/Schema/Track.pm
7.7/trunk/server/Slim/Web/Pages/Playlist.pm
Modified: 7.7/trunk/server/HTML/Classic/status_list.html
URL: http://svn.slimdevices.com/slim/7.7/trunk/server/HTML/Classic/status_list.html?rev=33638&r1=33637&r2=33638&view=diff
==============================================================================
--- 7.7/trunk/server/HTML/Classic/status_list.html (original)
+++ 7.7/trunk/server/HTML/Classic/status_list.html Tue Nov 1 23:09:04 2011
@@ -6,12 +6,22 @@
[% ELSE %]
<span class="exlisting">
[% END %]
- <a href="[% webroot %]songinfo.html?item=[% item.itemobj.id %]&player=[% playerURI %]" target="browser">[% item.title | html %]</a>
- [% IF item.includeAlbum && item.itemobj.album && item.itemobj.album.title != item.noAlbum && item.itemobj.album.title != "" %]
+ <a href="[% webroot %]songinfo.html?item=[% item.itemobj.id %]&player=[% playerURI %]" target="browser">[% (item.plugin_meta.title || item.title) | html %]</a>
+ [% IF item.includeAlbum && (item.itemobj.album || item.plugin_meta) && (item.itemobj.album.title || item.plugin_meta.album) != item.noAlbum && (item.itemobj.album.title || item.plugin_meta.album) != "" %]
[% "FROM" | string %]
- <a href="[% webroot %]clixmlbrowser/clicmd=browselibrary+items&mode=albums&linktitle=[% 'ALBUM' | string %]%20([% item.itemobj.album.title | uri %])&album_id=[% item.itemobj.album.id %]&player=[% playerURI %]/index.html?index=0" target="browser">[% item.itemobj.album.title | html %]</a>
+ [% IF item.itemobj.album %]
+ <a href="[% webroot %]clixmlbrowser/clicmd=browselibrary+items&mode=albums&linktitle=[% 'ALBUM' | string %]%20([% item.itemobj.album.title | uri %])&album_id=[% item.itemobj.album.id %]&player=[% playerURI %]/index.html?index=0" target="browser">[% item.itemobj.album.title | html %]</a>
+ [% ELSE; item.plugin_meta.album; END %]
[% END %]
- [% IF item.includeArtist && item.artist && item.artist != item.noArtist; PROCESS artistsAsHTML.html itemobj = item.itemobj; END %]
+ [% IF item.includeArtist;
+ IF item.artist && item.artist != item.noArtist;
+ PROCESS artistsAsHTML.html itemobj = item.itemobj;
+ ELSIF item.plugin_meta && item.plugin_meta.artist && item.plugin_meta.artist != item.noArtist;
+ "BY" | string;
+ " ";
+ item.plugin_meta.artist;
+ END;
+ END %]
</span>
[%# current_title is for radio streams %]
[% IF item.current_title %]
Modified: 7.7/trunk/server/HTML/Default/status_list.html
URL: http://svn.slimdevices.com/slim/7.7/trunk/server/HTML/Default/status_list.html?rev=33638&r1=33637&r2=33638&view=diff
==============================================================================
--- 7.7/trunk/server/HTML/Default/status_list.html (original)
+++ 7.7/trunk/server/HTML/Default/status_list.html Tue Nov 1 23:09:04 2011
@@ -30,7 +30,7 @@
[% IF item.itemobj.album.id %]</a>[% END %]
</span>
<div class="playlistSongDetail">
- <a href="[% webroot _ info_link %]?item=[% item.itemobj.id %]&player=[% playerURI %]" target="browser" class="browseItemLink"><span>[% item.title | html %]</span></a>
+ <a href="[% webroot _ info_link %]?item=[% item.itemobj.id %]&player=[% playerURI %]" target="browser" class="browseItemLink"><span>[% (item.plugin_meta.title || item.title) | html %]</span></a>
</div>
[%# current_title is for radio streams %]
[% IF item.current_title %]
@@ -38,13 +38,21 @@
[% item.current_title | html %]
</div>
[% END %]
- [% IF item.includeAlbum && item.itemobj.album && item.itemobj.album.title != item.noAlbum && item.itemobj.album.title != "" %]
+ [% IF item.includeAlbum && (item.itemobj.album || item.plugin_meta) && (item.itemobj.album.title || item.plugin_meta.album) != item.noAlbum && (item.itemobj.album.title || item.plugin_meta.album) != "" %]
<div class="playlistSongDetail">
- <a href="[% webroot %]clixmlbrowser/clicmd=browselibrary+items&mode=albums&linktitle=[% 'ALBUM' | string %]%20([% item.itemobj.album.title | uri %])&album_id=[% item.itemobj.album.id %]&player=[% playerURI %]/index.html?index=0" target="browser" class="browseItemLink"><span>[% item.itemobj.album.title | html %]</span></a>
+ [% IF item.itemobj.album %]
+ <a href="[% webroot %]clixmlbrowser/clicmd=browselibrary+items&mode=albums&linktitle=[% 'ALBUM' | string %]%20([% item.itemobj.album.title | uri %])&album_id=[% item.itemobj.album.id %]&player=[% playerURI %]/index.html?index=0" target="browser" class="browseItemLink"><span>[% (item.itemobj.album.title || item.plugin_meta.album) | html %]</span></a>
+ [% ELSE; item.plugin_meta.album; END %]
</div>
[% END %]
<div class="playlistSongDetail">
- [% IF item.includeArtist && item.artist && item.artist != item.noArtist; PROCESS artistsAsHTML.html itemobj = item.itemobj noby = 1; END %]
+ [% IF item.includeArtist;
+ IF item.artist && item.artist != item.noArtist;
+ PROCESS artistsAsHTML.html itemobj = item.itemobj noby = 1;
+ ELSIF item.plugin_meta && item.plugin_meta.artist && item.plugin_meta.artist != item.noArtist;
+ item.plugin_meta.artist;
+ END;
+ END %]
</div>
[% END %]
<div class="playlistControls">
Modified: 7.7/trunk/server/HTML/EN/status_list.html
URL: http://svn.slimdevices.com/slim/7.7/trunk/server/HTML/EN/status_list.html?rev=33638&r1=33637&r2=33638&view=diff
==============================================================================
--- 7.7/trunk/server/HTML/EN/status_list.html (original)
+++ 7.7/trunk/server/HTML/EN/status_list.html Tue Nov 1 23:09:04 2011
@@ -7,11 +7,21 @@
<span class="exlisting">
[% END %]
<a href="[% webroot %]songinfo.html?item=[% item.itemobj.id %]&player=[% playerURI %]" target="browser">[% item.title | html %]</a>
- [% IF item.includeAlbum && item.itemobj.album && item.itemobj.album.title != item.noAlbum && item.itemobj.album.title != "" %]
+ [% IF item.includeAlbum && (item.itemobj.album || item.plugin_meta) && (item.itemobj.album.title || item.plugin_meta.album) != item.noAlbum && (item.itemobj.album.title || item.plugin_meta.album) != "" %]
[% "FROM" | string %]
- <a href="[% webroot %]clixmlbrowser/clicmd=browselibrary+items&mode=tracks&linktitle=[% 'ALBUM' | string %]%20([% item.itemobj.album.title | uri %])&album_id=[% item.itemobj.album.id %]&player=[% playerURI %]/" target="browser">[% item.itemobj.album.title | html %]</a>
+ [% IF item.itemobj.album %]
+ <a href="[% webroot %]clixmlbrowser/clicmd=browselibrary+items&mode=albums&linktitle=[% 'ALBUM' | string %]%20([% item.itemobj.album.title | uri %])&album_id=[% item.itemobj.album.id %]&player=[% playerURI %]/index.html?index=0" target="browser">[% item.itemobj.album.title | html %]</a>
+ [% ELSE; item.plugin_meta.album; END %]
[% END %]
- [% IF item.includeArtist && item.artist && item.artist != item.noArtist; PROCESS artistsAsHTML.html itemobj = item.itemobj; END %]
+ [% IF item.includeArtist;
+ IF item.artist && item.artist != item.noArtist;
+ PROCESS artistsAsHTML.html itemobj = item.itemobj;
+ ELSIF item.plugin_meta && item.plugin_meta.artist && item.plugin_meta.artist != item.noArtist;
+ "BY" | string;
+ " ";
+ item.plugin_meta.artist;
+ END;
+ END %]
</span>
[%# current_title is for radio streams %]
[% IF item.current_title %]
Modified: 7.7/trunk/server/Slim/Schema/Track.pm
URL: http://svn.slimdevices.com/slim/7.7/trunk/server/Slim/Schema/Track.pm?rev=33638&r1=33637&r2=33638&view=diff
==============================================================================
--- 7.7/trunk/server/Slim/Schema/Track.pm (original)
+++ 7.7/trunk/server/Slim/Schema/Track.pm Tue Nov 1 23:09:04 2011
@@ -504,7 +504,7 @@
my $format = $prefs->get('titleFormat')->[ $prefs->get('titleFormatWeb') ];
# Go directly to infoFormat, as standardTitle is more client oriented.
- $form->{'text'} = Slim::Music::TitleFormatter::infoFormat($self, $format, 'TITLE');
+ $form->{'text'} = Slim::Music::TitleFormatter::infoFormat($self, $format, 'TITLE', $form->{'plugin_meta'});
$form->{'item'} = $self->id;
$form->{'itemobj'} = $self;
@@ -529,6 +529,9 @@
}
$form->{'artistsWithAttributes'} = \@info;
+ }
+ elsif ($form->{'plugin_meta'} && $form->{'plugin_meta'}->{'artist'}) {
+ $form->{'includeArtist'} = 1;
}
}
Modified: 7.7/trunk/server/Slim/Web/Pages/Playlist.pm
URL: http://svn.slimdevices.com/slim/7.7/trunk/server/Slim/Web/Pages/Playlist.pm?rev=33638&r1=33637&r2=33638&view=diff
==============================================================================
--- 7.7/trunk/server/Slim/Web/Pages/Playlist.pm (original)
+++ 7.7/trunk/server/Slim/Web/Pages/Playlist.pm Tue Nov 1 23:09:04 2011
@@ -169,33 +169,6 @@
}
my %form = ();
-
- $track->displayAsHTML(\%form);
-
- $form{'num'} = $itemnum;
- $form{'levelName'} = 'track';
- $form{'odd'} = ($itemnum + $offset) % 2;
-
- if ($itemnum == $currsongind) {
- $form{'currentsong'} = "current";
-
- if ( Slim::Music::Info::isRemoteURL( $track->url ) ) {
- # For remote streams, add both the current title and the station title if they differ
- $form{'title'} = Slim::Music::Info::standardTitle(undef, $track, undef, $titleFormat) || $track->url;
- my $title_only = Slim::Music::Info::standardTitle(undef, $track, undef, 'TITLE');
- my $current_title = Slim::Music::Info::getCurrentTitle($client, $track->url, 'web');
- if ( $current_title && $current_title ne $form{'title'} && $current_title ne $title_only ) {
- $form{'current_title'} = $current_title;
- }
- } else {
- $form{'title'} = Slim::Music::Info::standardTitle(undef, $track) || $track->url;
- }
-
- } else {
-
- $form{'currentsong'} = undef;
- $form{'title'} = Slim::Music::TitleFormatter::infoFormat($track, $titleFormat);
- }
# See if a protocol handler can provide more metadata
my $handler = Slim::Player::ProtocolHandlers->handlerForURL( $track->url );
@@ -208,6 +181,32 @@
}
}
+ $track->displayAsHTML(\%form);
+
+ $form{'num'} = $itemnum;
+ $form{'levelName'} = 'track';
+ $form{'odd'} = ($itemnum + $offset) % 2;
+
+ if ($itemnum == $currsongind) {
+ $form{'currentsong'} = "current";
+
+ if ( Slim::Music::Info::isRemoteURL( $track->url ) ) {
+ # For remote streams, add both the current title and the station title if they differ
+ $form{'title'} = Slim::Music::Info::standardTitle(undef, $track, $form{'plugin_meta'}, $titleFormat) || $track->url;
+ my $title_only = Slim::Music::Info::standardTitle(undef, $track, $form{'plugin_meta'}, 'TITLE');
+ my $current_title = Slim::Music::Info::getCurrentTitle($client, $track->url, 'web', $form{'plugin_meta'});
+ if ( $current_title && $current_title ne $form{'title'} && $current_title ne $title_only ) {
+ $form{'current_title'} = $current_title;
+ }
+ } else {
+ $form{'title'} = Slim::Music::Info::standardTitle(undef, $track, $form{'plugin_meta'}) || $track->url;
+ }
+
+ } else {
+
+ $form{'currentsong'} = undef;
+ $form{'title'} = Slim::Music::TitleFormatter::infoFormat($track, $titleFormat, undef, $form{'plugin_meta'});
+ }
$form{'nextsongind'} = $currsongind + (($itemnum > $currsongind) ? 1 : 0);
push @{$params->{'playlist_items'}}, \%form;
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.