Index: HTML/Default/xmlbrowser.html
===================================================================
--- HTML/Default/xmlbrowser.html (revision 33244)
+++ HTML/Default/xmlbrowser.html (working copy)
@@ -160,11 +160,19 @@
[% IF item.favorites == 1 %]
[% WRAPPER favaddlink noTarget=1 %]
+ [% IF songinfo.favorites %]
+ onclick="SqueezeJS.Utils.toggleFavorite(this, '[% songinfo.favorites_url | replace("'", "%27") | uri %]', '[% crumb.values.-1 | html %]');"
+ [% ELSE %]
onclick="Browse.XMLBrowser.toggleFavorite(this, '[% (item.index || index _ (start + loop.index)) | replace("'", "%27") | uri %]', '[% pageinfo.startitem %]', '[% sess %]');"
+ [% END %]
[% END %]
[% ELSIF item.favorites == 2 %]
[% WRAPPER favdellink noTarget=1 %]
+ [% IF songinfo.favorites %]
+ onclick="SqueezeJS.Utils.toggleFavorite(this, '[% songinfo.favorites_url | replace("'", "%27") | uri %]', '[% crumb.values.-1 | html %]');"
+ [% ELSE %]
onclick="Browse.XMLBrowser.toggleFavorite(this, '[% (item.index || index _ (start + loop.index)) | replace("'", "%27") | uri %]', '[% pageinfo.startitem %]', '[% sess %]');"
+ [% END %]
[% END %]
[% END %]
@@ -189,6 +197,16 @@
[% END %]
[%- BLOCK allcontrol -%]
+ [% IF songinfo.favorites == 1 %]
+ [% WRAPPER favaddlink noTarget=1 %]
+ onclick="SqueezeJS.Utils.toggleFavorite(this, '[% songinfo.favorites_url | replace("'", "%27") | uri %]', '[% crumb.values.-1 | html %]');"
+ [% END %]
+ [% ELSIF songinfo.favorites == 2 %]
+ [% WRAPPER favdellink noTarget=1 %]
+ onclick="SqueezeJS.Utils.toggleFavorite(this, '[% songinfo.favorites_url | replace("'", "%27") | uri %]', '[% crumb.values.-1 | html %]');"
+ [% END %]
+ [% END %]
+
[% WRAPPER playlink %]onclick="Browse.XMLBrowser.playAllLink('[% multiquery %][% searchquery | replace("'", "%27") | uri %]', '[% currentIndex %]', '[% sess %]');"[% END %]
[% IF allLinks; WRAPPER insertlink %]onclick="Browse.XMLBrowser.insertLink('[% multiquery %][% searchquery | replace("'", "%27") | uri %]', '[% currentIndex %]', '[% sess %]');"[% END; END %]
[% WRAPPER addlink %]onclick="Browse.XMLBrowser.addAllLink('[% multiquery %][% searchquery | replace("'", "%27") | uri %]', '[% currentIndex %]', '[% sess %]');"[% END %]
Index: Slim/Menu/BrowseLibrary.pm
===================================================================
--- Slim/Menu/BrowseLibrary.pm (revision 33243)
+++ Slim/Menu/BrowseLibrary.pm (working copy)
@@ -1638,17 +1638,21 @@
my $albumMetadata;
my $image;
+ my $albumTitle;
if ($getMetadata) {
my ($albumId) = grep {/album_id:/} @searchTags;
$albumId =~ s/album_id:// if $albumId;
my $album = Slim::Schema->find( Album => $albumId );
- my $feed = Slim::Menu::AlbumInfo->menu( $client, $album->url, $album, undef ) if $album;
- $albumMetadata = $feed->{'items'} if $feed;
- $image = 'music/' . $album->artwork . '/cover' if $album && $album->artwork;
+ if ($album) {
+ $albumTitle = $album->name;
+ my $feed = Slim::Menu::AlbumInfo->menu( $client, $album->url, $album, undef );
+ $albumMetadata = $feed->{'items'} if $feed;
+ $image = 'music/' . $album->artwork . '/cover' if $album->artwork;
+ }
}
- return {items => $items, actions => \%actions, sorted => 0, albumData => $albumMetadata, cover => $image}, $extra;
+ return {items => $items, actions => \%actions, sorted => 0, albumData => $albumMetadata, albumTitle => $albumTitle, cover => $image}, $extra;
},
);
}
Index: Slim/Web/XMLBrowser.pm
===================================================================
--- Slim/Web/XMLBrowser.pm (revision 33243)
+++ Slim/Web/XMLBrowser.pm (working copy)
@@ -904,6 +904,13 @@
}
delete $details->{'unfold'};
}
+
+ if ($stash->{'playUrl'}) {
+ $details->{'favorites_url'} = $stash->{'playUrl'};
+ }
+ elsif ($feed->{'albumTitle'}) {
+ $details->{'favorites_url'} = 'db:album.title=' . URI::Escape::uri_escape_utf8( $feed->{albumTitle} );
+ }
if (scalar keys %$details) {
@@ -918,6 +925,10 @@
$details->{'removeLink'} = 'anyurl?p0=playlist&p1=deleteitem&p2=' .
Slim::Utils::Misc::escape($stash->{'playUrl'});
}
+
+ if ($details->{'favorites_url'} && $favs) {
+ $details->{'favorites'} = $favs->hasUrl($details->{'favorites_url'}) ? 2 : 1;
+ }
$stash->{'songinfo'} = $details;
}