Marks currently playin track in tracklist
This commit is contained in:
@@ -8,7 +8,7 @@ Pages = (function() {
|
||||
<div class="pic">\
|
||||
<img src="' + data.artist.pic + '" alt="' + data.artist.name + '" width="250" />\
|
||||
</div>\
|
||||
<h1 class="name">' + data.artist.name + '</h1>\
|
||||
<h1 class="name" data-id="' + data.artist.id + '">' + data.artist.name + '</h1>\
|
||||
<div class="info">\
|
||||
' + data.artist.desc + '\
|
||||
</div>\
|
||||
@@ -19,7 +19,7 @@ Pages = (function() {
|
||||
if (album.year != null) {
|
||||
album_info = $('\
|
||||
<div class="album">\
|
||||
<h2 class="name">' + album.name + ' (' + album.year + ')</h2>\
|
||||
<h2 class="name" data-id="' + album.id + '">' + album.name + ' (' + album.year + ')</h2>\
|
||||
<div class="pic">\
|
||||
<img src="' + (album.pic ? album.pic : '/images/kitteh.png') + '" alt="' + album.name + ' by ' + data.artist.name + '" width="250" height="250"/>\
|
||||
<div class="add-album-button-container">\
|
||||
@@ -32,7 +32,7 @@ Pages = (function() {
|
||||
$.each(album.tracks.album, function(i, track) {
|
||||
var track_info;
|
||||
track_info = $('\
|
||||
<li>\
|
||||
<li data-id="' + track.id + '">\
|
||||
<div class="add-track button gray">+</div>\
|
||||
<div class="track-container">\
|
||||
<div class="fade"></div>\
|
||||
|
||||
@@ -52,26 +52,29 @@ Player = (function() {
|
||||
});
|
||||
return false;
|
||||
};
|
||||
Player.prototype.addTrack = function(artist, album, track, length, autoplay) {
|
||||
var initial_count;
|
||||
Player.prototype.addTracks = function(tracks, autoplay) {
|
||||
var initial_count, item, _i, _len;
|
||||
if (!(autoplay != null)) {
|
||||
autoplay = false;
|
||||
}
|
||||
initial_count = $('.playlist-tracks li').length;
|
||||
$('.playlist-tracks').append('\
|
||||
<li id="i' + Math.round(Math.random() * 999999) + '" data-id="" data-artist="' + artist.trim() + '" data-album="' + album.trim() + '" data-track="' + track.trim() + '" data-length="' + length + '">\
|
||||
<div class="item">\
|
||||
<div class="fade"></div>\
|
||||
<div class="dragbox"></div>\
|
||||
<span class="title">\
|
||||
<span class="data artist" title="Open ' + artist.htmlsafe() + '\'s page">' + artist + '</span>\
|
||||
—\
|
||||
<span class="playtrack" title="Play ' + track.htmlsafe() + ' by ' + artist.htmlsafe() + '">' + track + '</span>\
|
||||
</span>\
|
||||
<span class="duration">' + length + '</span>\
|
||||
<div class="remove">remove</div>\
|
||||
</div>\
|
||||
</li>');
|
||||
for (_i = 0, _len = tracks.length; _i < _len; _i++) {
|
||||
item = tracks[_i];
|
||||
$('.playlist-tracks').append('\
|
||||
<li id="i' + Math.round(Math.random() * 999999) + '" data-id="' + item.id + '" data-artist="' + item.artist.trim() + '" data-album="' + item.album.trim() + '" data-track="' + item.name.trim() + '" data-length="' + item.length + '">\
|
||||
<div class="item">\
|
||||
<div class="fade"></div>\
|
||||
<div class="dragbox"></div>\
|
||||
<span class="title">\
|
||||
<span class="data artist" title="Open ' + item.artist.htmlsafe() + '\'s page">' + item.artist + '</span>\
|
||||
—\
|
||||
<span class="playtrack" title="Play ' + item.name.htmlsafe() + ' by ' + item.artist.htmlsafe() + '">' + item.name + '</span>\
|
||||
</span>\
|
||||
<span class="duration">' + item.length + '</span>\
|
||||
<div class="remove">remove</div>\
|
||||
</div>\
|
||||
</li>');
|
||||
}
|
||||
$('.playlist').html($('.playlist-tracks')).scrollbar;
|
||||
$('.playlist-tracks').sortable({
|
||||
axis: 'y',
|
||||
@@ -83,14 +86,27 @@ Player = (function() {
|
||||
return _player.setTrack($('.playlist-tracks li').first().attr('id').split('i')[1]);
|
||||
}
|
||||
};
|
||||
Player.prototype.getDataFromLi = function(obj) {
|
||||
var id, length, track_name;
|
||||
id = $(obj).attr('data-id');
|
||||
track_name = $(obj).find('.trackname').html();
|
||||
length = $(obj).find('.length').html();
|
||||
return {
|
||||
id: id,
|
||||
name: track_name,
|
||||
length: length
|
||||
};
|
||||
};
|
||||
Player.prototype.setTrack = function(id) {
|
||||
var $obj, query;
|
||||
$obj = $('#i' + id);
|
||||
query = $obj.attr('data-artist') + ' — ' + $obj.attr('data-track');
|
||||
$('.player .loaded, .player .played').width(0);
|
||||
$('.player .now-playing').html(query + '<div class="fade"></div>');
|
||||
$('.playlist-tracks li').removeClass('now');
|
||||
$obj.addClass('now');
|
||||
$('.player .loaded, .player .played').width(0);
|
||||
$('.tracklist li').removeClass('now');
|
||||
$('.tracklist li[data-id="' + $obj.attr('data-id') + '"]').addClass('now');
|
||||
_vkontakte.loadTracksData($obj.attr('data-artist'), $obj.attr('data-track'), $obj.attr('data-length'), function(url) {
|
||||
return _player.playSource(url);
|
||||
});
|
||||
@@ -244,25 +260,27 @@ $('.playlist-tracks li .title .playtrack').live('click', function() {
|
||||
return false;
|
||||
});
|
||||
$('.add-album').live('click', function() {
|
||||
var album, artist, item, length, track_name, _i, _len, _ref;
|
||||
var album, artist, item, track, tracks, _i, _len, _ref;
|
||||
artist = $('.artist-info .name').html();
|
||||
album = $(this).parent().parent().parent().find('h2.name').text().replace(/\s\([\d]{4}\)$/, '');
|
||||
tracks = [];
|
||||
_ref = $(this).parent().parent().parent().find('.tracklist li');
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
item = _ref[_i];
|
||||
track_name = $(item).find('.trackname').html();
|
||||
length = $(item).find('.length').html();
|
||||
_player.addTrack(artist, album, track_name, length);
|
||||
track = _player.getDataFromLi(item);
|
||||
track['artist'] = artist;
|
||||
track['album'] = album;
|
||||
tracks.push(track);
|
||||
}
|
||||
_player.addTracks(tracks);
|
||||
return false;
|
||||
});
|
||||
$('.add-track').live('click', function() {
|
||||
var album, artist, length, track_name;
|
||||
artist = $('.artist-info .name').html();
|
||||
album = $(this).parent().parent().parent().parent().find('h2.name').text().replace(/\s\([\d]{4}\)$/, '');
|
||||
track_name = $(this).parent().find('.trackname').html();
|
||||
length = $(this).parent().find('.length').html();
|
||||
_player.addTrack(artist, album, track_name, length);
|
||||
var track;
|
||||
track = _player.getDataFromLi($(this).parent());
|
||||
track['artist'] = $('.artist-info .name').html();
|
||||
track['album'] = $(this).parent().parent().parent().parent().find('h2.name').text().replace(/\s\([\d]{4}\)$/, '');
|
||||
_player.addTracks([track]);
|
||||
return false;
|
||||
});
|
||||
$('.tracklist li').live('mouseover mouseout', function(e) {
|
||||
@@ -274,11 +292,10 @@ $('.tracklist li').live('mouseover mouseout', function(e) {
|
||||
return false;
|
||||
});
|
||||
$('.tracklist li').live('click', function(e) {
|
||||
var album, artist, length, track_name;
|
||||
artist = $('.artist-info .name').html();
|
||||
album = $(this).parent().parent().parent().find('h2.name').text().replace(/\s\([\d]{4}\)$/, '');
|
||||
track_name = $(this).find('.trackname').html();
|
||||
length = $(this).find('.length').html();
|
||||
_player.addTrack(artist, album, track_name, length, true);
|
||||
var track;
|
||||
track = _player.getDataFromLi(this);
|
||||
track['artist'] = $('.artist-info .name').html();
|
||||
track['album'] = $(this).parent().parent().parent().find('h2.name').text().replace(/\s\([\d]{4}\)$/, '');
|
||||
_player.addTracks([track], true);
|
||||
return false;
|
||||
});
|
||||
Reference in New Issue
Block a user