From 33662e9f723e102292160110d06aa2e876f8ba48 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Sun, 24 Jul 2011 16:22:44 +0100
Subject: [PATCH] hopefully fix addChunk / 4

---
 server/djrandom/frontend/static/player.js | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/server/djrandom/frontend/static/player.js b/server/djrandom/frontend/static/player.js
index 09fa4bf..31b1dcc 100644
--- a/server/djrandom/frontend/static/player.js
+++ b/server/djrandom/frontend/static/player.js
@@ -117,7 +117,7 @@ djr.Playlist.prototype.addChunk = function(playlist_chunk) {
   var songs = [], i;
   for (i = 0; i < playlist_chunk.songs.length; i++) {
     var song = playlist_chunk.songs[i];
-    if (this.song_map[song]) {
+    if (this.song_map[song] != null) {
       continue;
     }
     songs.push(song);
@@ -133,6 +133,11 @@ djr.Playlist.prototype.addChunk = function(playlist_chunk) {
   }
 };
 
+// Return the songs for a specific chunk.
+djr.Playlist.prototype.getChunkSongs = function(chunk_id) {
+  return this.chunk_map[chunk_id].songs;
+};
+
 // Remove a chunk (by ID).
 djr.Playlist.prototype.removeChunk = function(chunk_id) {
   djr.debug('removing chunk ' + chunk_id);
@@ -221,7 +226,12 @@ djr.Player.prototype.search = function(query) {
     }
 
     var chunk_id = player.playlist.addChunk(new djr.PlaylistChunk(songs));
-    djr.debug('search: new chunk ' + chunk_id);
+    if (chunk_id < 0) {
+      djr.debug('All the results are already in the playlist.');
+      return;
+    }
+    songs = player.playlist.getChunkSongs(chunk_id);
+    djr.debug('search: new chunk ' + chunk_id + ', ' + songs.length + ' songs');
 
     player.backend.getHtmlForSongs(songs, function(songs_html) {
       var chunk_div = 'chunk_' + chunk_id;
-- 
GitLab