diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-01-20 01:41:37 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-01-20 01:41:37 +0100 |
commit | 42ef44e1b48d753f51a72f71ca22cf283ecf39da (patch) | |
tree | e2dc6d615528326a86bc0815b4fdfe2610fb18bd /apps | |
parent | 6ccb1187df3c56db4b2b716f4ae03c96ee6067fa (diff) | |
download | nextcloud-server-42ef44e1b48d753f51a72f71ca22cf283ecf39da.tar.gz nextcloud-server-42ef44e1b48d753f51a72f71ca22cf283ecf39da.zip |
show proper feedback that collection scanning is done and show the collection afterwards
Diffstat (limited to 'apps')
-rw-r--r-- | apps/media/js/collection.js | 43 | ||||
-rw-r--r-- | apps/media/js/scanner.js | 22 |
2 files changed, 37 insertions, 28 deletions
diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js index efd7db8f6aa..2249acf3cc4 100644 --- a/apps/media/js/collection.js +++ b/apps/media/js/collection.js @@ -69,7 +69,6 @@ Collection={ Collection.loadedListeners[i](); } if(data.songs.length==0){ - $('#scan input.start').val(t('media','Scan Collection')); $('#scan input.start').click(); } @@ -318,33 +317,31 @@ Collection={ } }, addSong:function(song){ - var artist=false - var album=false; - for(var i=0;i<Collection.artists.length;i++){ - if(Collection.artists[i].artist_id==song.song_artist){ - artist=Collection.artists[i]; - for(var j=0;j<artist.albums.length;j++){ - if(artist.albums[j].album_id==song.song_album){ - album=artist.albums[j]; - break; - } - } - break; - } - } + var artist=Collection.findArtist(song.artist); if(!artist){ - artist={artist_id:song.song_artist,artist_name:song.artist,albums:[]}; + artist={name:song.artist,albums:[],songs:[]}; Collection.artists.push(artist); - if(!Collection.parent || Collection.parent.is(":visible")){ - Collection.display(); - } - + Collection.artistsById[song.song_artist]=artist; } + var album=Collection.findAlbum(song.artist,song.album); if(!album){ - album={album_id:song.song_album,album_name:song.album,album_artist:song.song_artist,songs:[]}; - artist.albums.push(album) + album={name:song.album,artist:song.song_artist,songs:[]}; + artist.albums.push(album); + Collection.albums.push(album); + Collection.albumsById[song.song_album]=album; } - album.songs.push(song) + var songData={ + name:song.song_name, + artist:Collection.artistsById[song.song_artist].name, + album:Collection.albumsById[song.song_album].name, + lastPlayed:song.song_lastplayed, + length:song.song_length, + path:song.song_path, + playCount:song.song_playcount, + }; + album.songs.push(songData) + artist.songs.push(songData); + Collection.songs.push(songData); } } diff --git a/apps/media/js/scanner.js b/apps/media/js/scanner.js index 0ebf408e702..ed2046dd7a6 100644 --- a/apps/media/js/scanner.js +++ b/apps/media/js/scanner.js @@ -5,13 +5,14 @@ Scanner={ startTime:null, endTime:null, stopScanning:false, - currentIndex:-1, + currentIndex:0, songs:[], findSongs:function(ready){ $.getJSON(OC.linkTo('media','ajax/api.php')+'?action=find_music',function(songs){ Scanner.songsFound=songs.length; Scanner.currentIndex=-1 if(ready){ + ready(songs) } }); @@ -37,12 +38,22 @@ Scanner={ $('#scanprogressbar').progressbar({ value:0, }); + $('#scanprogressbar').show(); Scanner.songsChecked=0; + Scanner.currentIndex=0; Scanner.songsScanned=0; Scanner.startTime=new Date().getTime()/1000; Scanner.findSongs(function(songs){ Scanner.songs=songs; - Scanner.start(); + Scanner.start(function(){ + $('#scan input.start').show(); + $('#scan input.stop').hide(); + $('#scanprogressbar').hide(); + Collection.display(); + if(ready){ + ready(); + } + }); }); }, stop:function(){ @@ -52,15 +63,16 @@ Scanner={ Scanner.stopScanning=false; $('#scancount').show(); var scanSong=function(){ - Scanner.currentIndex++; - if(!Scanner.stopScanning && Scanner.currentIndex<Scanner.songs.length){ + if(!Scanner.stopScanning && Scanner.currentIndex<=Scanner.songs.length){ Scanner.scanFile(Scanner.songs[Scanner.currentIndex],scanSong) - }else{ + }else if(!Scanner.stopScanning){ Scanner.endTime=new Date().getTime()/1000; if(ready){ ready(); + ready=null;//only call ready once } } + Scanner.currentIndex++; } scanSong(); scanSong(); |