From 51e00d074cf4f1481c96f6a18da9c8ab7f412393 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind1991@gmail.com>
Date: Sat, 30 Jul 2011 04:15:09 +0200
Subject: [PATCH] add play button to collection overview to add songs to the
 playlist and play them imediatly

---
 apps/media/js/collection.js         | 27 ++++++++++++++++++---------
 apps/media/templates/collection.php |  3 ++-
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js
index 5aa0d058bd..b8fd515ba6 100644
--- a/apps/media/js/collection.js
+++ b/apps/media/js/collection.js
@@ -53,10 +53,9 @@ Collection={
 					li.data('artist',artist);
 					li.removeClass('template');
 					li.addClass('artist');
+					li.data('type','artist');
 					li.children('span').text(artist.artist_name);
-					li.children('button').click(function(){
-						PlayList.add($(this).parent().data('artist'));
-					})
+					Collection.addButtons(li);
 					Collection.parent.append(li);
 				}
 			}
@@ -81,10 +80,9 @@ Collection={
 				li.removeClass('template');
 				li.addClass('album');
 				li.data('album',album);
+				li.data('type','album');
 				li.children('span').text(album.album_name);
-				li.children('button').click(function(){
-					PlayList.add($(this).parent().data('album'));
-				})
+				Collection.addButtons(li);
 				ul.append(li);
 			}
 			artistLi.append(ul);
@@ -102,10 +100,9 @@ Collection={
 			li.removeClass('template');
 			li.addClass('song');
 			li.data('song',song);
+			li.data('type','song');
 			li.children('span').text(song.song_name);
-			li.children('button').click(function(){
-				PlayList.add($(this).parent().data('song'));
-			})
+			Collection.addButtons(li);
 			ul.append(li);
 		}
 		albumLi.append(ul);
@@ -124,6 +121,18 @@ Collection={
 				}
 			}
 		}
+	},
+	addButtons:function(parent){
+		parent.children('button.add').click(function(){
+			var type=$(this).parent().data('type');
+			PlayList.add($(this).parent().data(type));
+		});
+		parent.children('button.play').click(function(){
+			var type=$(this).parent().data('type');
+			var oldSize=PlayList.items.length;
+			PlayList.add($(this).parent().data(type));
+			PlayList.play(oldSize);
+		});
 	}
 }
 
diff --git a/apps/media/templates/collection.php b/apps/media/templates/collection.php
index e132eeae07..e2c256a648 100644
--- a/apps/media/templates/collection.php
+++ b/apps/media/templates/collection.php
@@ -4,6 +4,7 @@
 	</li>
 	<li class='template'>
 		<span></span>
-		<button>Add</button>
+		<button class='add'>Add</button>
+		<button class='play'>Play</button>
 	</li>
 </ul>
\ No newline at end of file
-- 
GitLab