aboutsummaryrefslogtreecommitdiffstats
path: root/apps/media/js/collection.js
blob: 0a6e0e4eb3f704a26fe6450a5d3b143cb6f7c7ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Collection={
	artists:[],
	loaded:false,
	loading:false,
	loadedListeners:[],
	load:function(ready){
		if(ready){
			Collection.loadedListeners.push(ready);
		}
		if(!Collection.loading){
			Collection.loading=true;
			$.ajax({
				url: OC.linkTo('media','ajax/api.php')+'?action=get_collection',
				dataType: 'json',
				success: function(collection){
					Collection.artists=collection;
					
					//set the album and artist fieds for the songs
					for(var i=0;i<collection.length;i++){
						var artist=collection[i];
						for(var j=0;j<artist.albums.length;j++){
							var album=artist.albums[j]
							for(var w=0;w<album.songs.length;w++){
								album.songs[w].album_name=album.album_name;
								album.songs[w].artist_name=artist.artist_name;
								album.songs[w].artist_name=artist.artist_name;
							}
						}
					}
					
					Collection.loaded=true;
					Collection.loading=false;
					for(var i=0;i<Collection.loadedListeners.length;i++){
						Collection.loadedListeners[i]();
					}
					
				}
			});
		}
	},
	display:function(){
		if(Collection.parent){
			Collection.parent.show();
		}
		if(!Collection.loaded){
			Collection.load(Collection.display)
		}else{
			if(Collection.parent){
				Collection.parent.children('li.artist').remove();
				var template=Collection.parent.children('li.template');
				for(var i=0;i<Collection.artists.length;i++){
					var artist=Collection.artists[i];
					var li=template.clone();
					li.data('artist',artist);
					li.removeClass('template');
					li.addClass('artist');
					li.children('span').text(artist.artist_name);
					li.children('button').click(function(){
						PlayList.add($(this).parent().data('artist'));
					})
					Collection.parent.append(li);
				}
			}
		}
	},
	parent:null,
	hide:function(){
		if(Collection.parent){
			Collection.parent.hide();
		}
	},
	showAlbums:function(artistLi){
		$('ul.albums').parent().removeClass('active');
		$('ul.albums').remove();
		var artist=artistLi.data('artist');
		if(artist){
			var template=Collection.parent.children('li.template');
			var ul=$('<ul class="albums"></ul>');
			for(var i=0;i<artist.albums.length;i++){
				var li=template.clone();
				var album=artist.albums[i];
				li.removeClass('template');
				li.addClass('album');
				li.data('album',album);
				li.children('span').text(album.album_name);
				li.children('button').click(function(){
					PlayList.add($(this).parent().data('album'));
				})
				ul.append(li);
			}
			artistLi.append(ul);
		}
	},
	showSongs:function(albumLi){
		$('ul.songs').parent().removeClass('active');
		$('ul.songs').remove();
		var album=albumLi.data('album');
		var template=Collection.parent.children('li.template');
		var ul=$('<ul class="songs"></ul>');
		for(var i=0;i<album.songs.length;i++){
			var li=template.clone();
			var song=album.songs[i];
			li.removeClass('template');
			li.addClass('song',song);
			li.children('span').text(song.song_name);
			li.children('button').click(function(){
				PlayList.add($(this).parent().data('span'));
			})
			ul.append(li);
		}
		albumLi.append(ul);
	}
}

$(document).ready(function(){
	Collection.parent=$('#collection');
	Collection.load();
	$('#collection li.artist>span').live('click',function(){
		$(this).parent().toggleClass('active');
		Collection.showAlbums($(this).parent());
	});
	$('#collection li.album>span').live('click',function(){
		$(this).parent().toggleClass('active');
		Collection.showSongs($(this).parent());
	});
});