diff options
Diffstat (limited to 'apps/media/js')
-rw-r--r-- | apps/media/js/collection.js | 17 | ||||
-rw-r--r-- | apps/media/js/music.js | 19 | ||||
-rw-r--r-- | apps/media/js/player.js | 4 |
3 files changed, 29 insertions, 11 deletions
diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js index 576f567faef..6525df55c71 100644 --- a/apps/media/js/collection.js +++ b/apps/media/js/collection.js @@ -132,7 +132,7 @@ Collection={ }, showArtist:function(artist){ var tr=Collection.parent.find('tr[data-artist="'+artist+'"]'); - var nextRow=tr.next(); + var lastRow=tr; var artist=tr.data('artistData'); var first=true; $.each(artist.albums,function(j,album){ @@ -185,9 +185,10 @@ Collection={ newRow.attr('data-artist',artist.name); newRow.data('albumData',album); if(!first){ - nextRow.before(newRow); + lastRow.after(newRow); } first=false; + lastRow=newRow; }); }); tr.removeClass('collapsed'); @@ -215,11 +216,11 @@ Collection={ }, showAlbum:function(artist,album){ var tr = Collection.parent.find('tr[data-artist="'+artist+'"][data-album="'+album+'"]'); + var lastRow=tr; var albumData=tr.data('albumData'); tr.find('td.album a.expander').data('expanded',true); tr.find('td.album a.expander').addClass('expanded'); tr.find('td.album a.expander').text('v'); - var nextRow=tr.next(); $.each(albumData.songs,function(i,song){ if(i>0){ var newRow=tr.clone(); @@ -230,9 +231,17 @@ Collection={ var newRow=tr; } newRow.find('td.title a').text(song.name); + newRow.find('td.title a').click(function(event){ + event.preventDefault(); + PlayList.add(song); + PlayList.play(0); + Collection.parent.find('tr').removeClass('active'); + $('tr[data-title="'+song.name+'"]').addClass('active'); + }); if(i>0){ - nextRow.before(newRow); + lastRow.after(newRow); } + lastRow=newRow; }); }, hideAlbum:function(artist,album){ diff --git a/apps/media/js/music.js b/apps/media/js/music.js index bf082207829..3373cbac257 100644 --- a/apps/media/js/music.js +++ b/apps/media/js/music.js @@ -26,18 +26,25 @@ $(document).ready(function(){ button.tipsy({gravity:'n', fade:true, delayIn: 400, live:true}); } Collection.display(); + + Collection.load(function(){ + var urlVars=getUrlVars(); + if(urlVars.artist){ + var song=Collection.find(urlVars.artist,urlVars.album,urlVars.song); + PlayList.add(song); + PlayList.play(0); + } + }) }); function getUrlVars(){ - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('#') + 1).split('&'); - for(var i = 0; i < hashes.length; i++) - { + var vars = {}, hash; + var hashes = window.location.hash.substr(1).split('&'); + for(var i = 0; i < hashes.length; i++){ hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1].replace(/\+/g,' '); + vars[hash[0]] = decodeURIComponent(hash[1]).replace(/\+/g,' '); } return vars; } diff --git a/apps/media/js/player.js b/apps/media/js/player.js index 3c022e9f8c4..1f76356fd97 100644 --- a/apps/media/js/player.js +++ b/apps/media/js/player.js @@ -93,9 +93,11 @@ var PlayList={ ended:PlayList.next, pause:function(){ localStorage.setItem(oc_current_user+'oc_playlist_playing','false'); + document.title = "ownCloud"; }, - play:function(){ + play:function(event){ localStorage.setItem(oc_current_user+'oc_playlist_playing','true'); + document.title = "\u25b8 " + event.jPlayer.status.media.name + " - " + event.jPlayer.status.media.artist + " - ownCloud"; }, supplied:type, ready:function(){ |