Index: Slim/Menu/TrackInfo.pm
===================================================================
--- Slim/Menu/TrackInfo.pm (revision 21532)
+++ Slim/Menu/TrackInfo.pm (working copy)
@@ -27,6 +27,7 @@
use Slim::Utils::Log;
use Slim::Utils::Strings qw(cstring);
+use POSIX qw(floor);
my $log = logger('menu.trackinfo');
@@ -1080,18 +1081,60 @@
return $items;
}
+sub changeRating {
+ my $client = shift;
+ my $callback = shift;
+ my $track = shift;
+
+ my $rating = Slim::Schema->rating($track) || 0;
+ my $currentRating = floor(($rating+10)/20)*20;
+
+ my @item = ();
+ for my $value (qw(0 20 40 60 80 100)) {
+ my $ratingValue = {
+ 'type' => 'link',
+ 'name' => cstring($client, 'RATING') . cstring($client, 'COLON') . ' ' .$value.'/100',
+ 'value' => $value,
+ 'url' => sub {
+ my $client = shift;
+ my $callback = shift;
+ my $passthrough = shift;
+
+ Slim::Schema->rating($track,$value);
+ $callback->({
+ 'type' => 'text',
+ 'refresh' => 1,
+ 'popback' => 2,
+ 'showBriefly' => 1,
+ 'name' => cstring($client, 'NEW_RATING').' '.$value,
+ });
+ },
+ };
+ push @item,$ratingValue;
+ }
+ $callback->(\@item);
+}
+
sub infoRating {
my ( $client, $url, $track ) = @_;
my $item;
- if ( my $rating = Slim::Schema->rating($track) ) {
- $item = {
- type => 'text',
- name => cstring($client, 'RATING') . cstring($client, 'COLON') . ' ' . $rating,
- };
- }
-
+ my $rating = Slim::Schema->rating($track) || 0;
+ $item = {
+ type => 'link',
+ name => cstring($client, 'RATING') . cstring($client, 'COLON') . ' ' . $rating.'/100',
+ url => \&changeRating,
+ passthrough => [$track],
+ web => {
+ type => 'htmltemplate',
+ value => "ratingcontrols.html",
+ params => {
+ 'currentRating' => $rating,
+ 'trackid' => $track->id,
+ },
+ },
+ };
return $item;
}
Index: HTML/EN/ratingcontrols.html
===================================================================
--- HTML/EN/ratingcontrols.html (revision 0)
+++ HTML/EN/ratingcontrols.html (revision 0)
@@ -0,0 +1,30 @@
+[% "RATING" | string %][% "COLON" | string %]
+
+[% FOR ratingstar IN [20,40,60,80,100] %]
+ [% ratingstarlow = ratingstar - 10 %]
+
+
+
+[% END %]
+
Index: strings.txt
===================================================================
--- strings.txt (revision 21532)
+++ strings.txt (working copy)
@@ -16047,3 +16047,6 @@
MOREINFO
EN More Info
+
+NEW_RATING
+ EN New rating