summaryrefslogtreecommitdiffstats
path: root/apps/media/js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/media/js')
-rw-r--r--apps/media/js/collection.js17
-rw-r--r--apps/media/js/music.js19
-rw-r--r--apps/media/js/player.js4
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(){