| 
					
				 | 
			
			
				@@ -0,0 +1,92 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<modal title='Add Song To Playlist'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<div slot='body'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<aside class="menu"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<p class="menu-label"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Playlists 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<ul class="menu-list"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<li v-for='playlist in playlists'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<div class='playlist'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<span class='icon is-small' @click='removeSongFromPlaylist(playlist._id)' v-if='playlistContains(playlist._id)'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<i class="material-icons">playlist_add_check</i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<span class='icon is-small' @click='addSongToPlaylist(playlist._id)' v-else> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<i class="material-icons">playlist_add</i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							{{ playlist.displayName }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					</li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</aside> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	</modal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import { Toast } from 'vue-roaster'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import Modal from './Modal.vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import io from '../../io'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import auth from '../../auth'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				playlists: {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			playlistContains: function (playlistId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let _this = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let toReturn = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let playlist = this.playlists.filter(playlist => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				    return playlist._id === playlistId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				})[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for (let i = 0; i < playlist.songs.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (playlist.songs[i].songId === _this.$parent.currentSong.songId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						toReturn = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return toReturn; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			addSongToPlaylist: function (playlistId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let _this = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.socket.emit('playlists.addSongToPlaylist', this.$parent.currentSong.songId, playlistId, res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Toast.methods.addToast(res.message, 4000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$parent.modals.addSongToPlaylist = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			removeSongFromPlaylist: function (playlistId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let _this = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.socket.emit('playlists.removeSongFromPlaylist', this.$parent.currentSong.songId, playlistId, res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Toast.methods.addToast(res.message, 4000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$parent.modals.addSongToPlaylist = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ready: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			let _this = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			io.getSocket((socket) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_this.socket = socket; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				_this.socket.emit('playlists.indexForUser', res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (res.status === 'success') _this.playlists = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		events: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			closeModal: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.$parent.modals.addSongToPlaylist = !this.$parent.modals.addSongToPlaylist; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		components: { Modal } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style type='scss' scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.icon.is-small { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		margin-right: 10px !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |