Minor fixes
This commit is contained in:
@@ -55,10 +55,11 @@ class window.Player
|
||||
if not autoplay?
|
||||
autoplay = false
|
||||
initial_count = $('.playlist li').length
|
||||
$('.playlist').append this.generateTrackHtml track
|
||||
c = this.generateTrackHtml track
|
||||
$('.playlist').append c.html
|
||||
$('.playlist').sortable "refresh"
|
||||
if initial_count == 0 and not _player.hasTrack()
|
||||
_player.setTrack($('.playlist li').first().attr('id').split('i')[1])
|
||||
unless _player.currentTrack()?
|
||||
_player.setTrack(c.uid)
|
||||
false
|
||||
|
||||
generateTrackHtml: (track) ->
|
||||
@@ -67,12 +68,16 @@ class window.Player
|
||||
s = len - Math.floor(len / 60) * 60
|
||||
duration = m + ':' + (if s < 10 then '0' else '') + s
|
||||
item_class = (if track.available == false then 'unavailable' else '')
|
||||
"<li id='i#{Math.round(Math.random() * 999999)}' data-id='#{track.id}' class='#{item_class}'>
|
||||
<div class='song-duration'>#{duration}</div>
|
||||
<div class='label important remove'>remove</div>
|
||||
<div class='artist-name'><a class='data artist'>#{track.artist}</a></div>
|
||||
<div class='song-title'>#{track.name}</div>
|
||||
</li>"
|
||||
uid = Math.round(Math.random() * 999999)
|
||||
{
|
||||
html: "<li id='i#{uid}' data-id='#{track.id}' class='#{item_class}'>
|
||||
<div class='song-duration'>#{duration}</div>
|
||||
<div class='label important remove'>remove</div>
|
||||
<div class='artist-name'><a class='data artist'>#{track.artist}</a></div>
|
||||
<div class='song-title'>#{track.name}</div>
|
||||
</li>"
|
||||
uid: uid
|
||||
}
|
||||
|
||||
getDataFromLi: (obj) ->
|
||||
id = $(obj).attr 'data-id'
|
||||
@@ -91,13 +96,18 @@ class window.Player
|
||||
$obj.addClass 'now'
|
||||
_vk_music.search track.artist, track.name, track.length, (audio) ->
|
||||
if audio is null
|
||||
_session.query '/track/report', { id: track.id }, (r) ->
|
||||
if r.result is 'success'
|
||||
_session.query '/track/report_available', { id: track.id, available: false }, (r) ->
|
||||
if r.result is 'success' or r.status is 'success'
|
||||
$(".playlist li[data-id='#{track.id}']").addClass("unavailable")
|
||||
$($(".album div[data-id='#{track.id}']").siblings()[0]).addClass("unavailable")
|
||||
$(".s-add[data-id='#{track.id}']").parent().parent().addClass("unavailable")
|
||||
_player.setTrack _player.nextTrack()
|
||||
else
|
||||
_player.playSource audio.url
|
||||
if track.available == false
|
||||
_session.query '/track/report_available', { id: track.id, available: true }, (r) ->
|
||||
if r.result is 'success' or r.status is 'success'
|
||||
$(".playlist li[data-id='#{track.id}']").removeClass("unavailable")
|
||||
$(".s-add[data-id='#{track.id}']").parent().parent().removeClass("unavailable")
|
||||
if track.length == 0
|
||||
len = parseInt(audio.duration, 10)
|
||||
m = Math.floor(len / 60)
|
||||
@@ -128,6 +138,11 @@ class window.Player
|
||||
true
|
||||
false
|
||||
|
||||
currentTrack: ->
|
||||
current_track = $('.playlist li.now')
|
||||
false unless current_track?
|
||||
@library[$(current_track).data('id')]
|
||||
|
||||
playSource: (url) ->
|
||||
@scrobbled = false
|
||||
$('#jplayer').jPlayer 'setMedia', mp3: url
|
||||
@@ -253,7 +268,8 @@ $ ->
|
||||
cursor: 'move'
|
||||
stop: (e, ui) ->
|
||||
if $(ui.item).prop("tagName") == "TR"
|
||||
ui.item.replaceWith(_player.generateTrackHtml(_player.library[$(ui.item).find('.s-add').data('id')]))
|
||||
c = _player.generateTrackHtml(_player.library[$(ui.item).find('.s-add').data('id')])
|
||||
ui.item.replaceWith(c.html)
|
||||
false
|
||||
$('.playlist').droppable
|
||||
accept: '.track'
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
.playlist {
|
||||
margin: 20px 0 0 0;
|
||||
min-height: 300px;
|
||||
padding-bottom: 200px;
|
||||
li {
|
||||
list-style: none;
|
||||
background-color: #ffffff;
|
||||
|
||||
@@ -15,10 +15,11 @@ class TrackController < ApplicationController
|
||||
render :json => { :result => :failed }
|
||||
end
|
||||
|
||||
def report_unavailable
|
||||
def report_available
|
||||
track = Track.find(params[:id])
|
||||
unless track.nil? or track.available
|
||||
track.available = false
|
||||
available = params[:available] == "false" ? false : true
|
||||
unless track.nil?
|
||||
track.available = available
|
||||
track.save
|
||||
return render :json => { :status => :success }
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user