show proper feedback that collection scanning is done and show the collection afterwards

This commit is contained in:
Robin Appelman 2012-01-20 01:41:37 +01:00
parent 6ccb1187df
commit 42ef44e1b4
2 changed files with 37 additions and 28 deletions

View 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);
}
}

View 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();