]> source.dussan.org Git - nextcloud-server.git/commitdiff
show proper feedback that collection scanning is done and show the collection afterwards
authorRobin Appelman <icewind@owncloud.com>
Fri, 20 Jan 2012 00:41:37 +0000 (01:41 +0100)
committerRobin Appelman <icewind@owncloud.com>
Fri, 20 Jan 2012 00:41:37 +0000 (01:41 +0100)
apps/media/js/collection.js
apps/media/js/scanner.js

index efd7db8f6aa297531d8c7207a9f20076890fbf1d..2249acf3cc40164170befd142cc3feafc4ff2f97 100644 (file)
@@ -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);
        }
 }
 
index 0ebf408e702070d809bded61874aee436090dd3c..ed2046dd7a67e1420e0412666354543453c455aa 100644 (file)
@@ -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();