| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
							- <template>
 
- 	<div class='container'>
 
- 		<table class='table is-striped'>
 
- 			<thead>
 
- 			<tr>
 
- 				<td>Profile Picture</td>
 
- 				<td>User ID</td>
 
- 				<td>GitHub ID</td>
 
- 				<td>Password</td>
 
- 				<td>Username</td>
 
- 				<td>Role</td>
 
- 				<td>Email Address</td>
 
- 				<td>Email Verified</td>
 
- 				<td>Likes</td>
 
- 				<td>Dislikes</td>
 
- 				<td>Songs Requested</td>
 
- 				<td>Options</td>
 
- 			</tr>
 
- 			</thead>
 
- 			<tbody>
 
- 			<tr v-for='(index, user) in users' track-by='$index'>
 
- 				<td>
 
- 					<img class='user-avatar' src='/assets/notes-transparent.png'>
 
- 				</td>
 
- 				<td>{{ user._id }}</td>
 
- 				<td v-if='user.services.github'>{{ user.services.github.id }}</td>
 
- 				<td v-else>Not Linked</td>
 
- 				<td v-if='user.hasPassword'>Yes</td>
 
- 				<td v-else>Not Linked</td>
 
- 				<td>{{ user.username }}</td>
 
- 				<td>{{ user.role }}</td>
 
- 				<td>{{ user.email.address }}</td>
 
- 				<td>{{ user.email.verified }}</td>
 
- 				<td>{{ user.liked.length }}</td>
 
- 				<td>{{ user.disliked.length }}</td>
 
- 				<td>{{ user.songsRequested }}</td>
 
- 				<td>
 
- 					<button class='button is-primary' @click='edit(user)'>Edit</button>
 
- 				</td>
 
- 			</tr>
 
- 			</tbody>
 
- 		</table>
 
- 	</div>
 
- 	<edit-user v-show='modals.editUser'></edit-user>
 
- </template>
 
- <script>
 
- 	import EditUser from '../Modals/EditUser.vue';
 
- 	import io from '../../io';
 
- 	export default {
 
- 		components: { EditUser },
 
- 		data() {
 
- 			return {
 
- 				users: [],
 
- 				modals: { editUser: false }
 
- 			}
 
- 		},
 
- 		methods: {
 
- 			toggleModal: function () {
 
- 				this.modals.editUser = !this.modals.editUser;
 
- 			},
 
- 			edit: function (user) {
 
- 				this.$broadcast('editUser', user);
 
- 			},
 
- 			init: function () {
 
- 				let _this = this;
 
- 				_this.socket.emit('users.index', result => {
 
- 					if (result.status === 'success') _this.users = result.data;
 
- 				});
 
- 				_this.socket.emit('apis.joinAdminRoom', 'users', () => {});
 
- 				_this.socket.on('event:user.username.changed', username => {
 
- 					_this.$parent.$parent.username = username;
 
- 				});
 
- 			}
 
- 		},
 
- 		ready: function () {
 
- 			let _this = this;
 
- 			io.getSocket(socket => {
 
- 				_this.socket = socket;
 
- 				if (_this.socket.connected) _this.init();
 
- 				io.onConnect(() => _this.init());
 
- 			});
 
- 		}
 
- 	}
 
- </script>
 
- <style lang='scss' scoped>
 
- 	body { font-family: 'Roboto', sans-serif; }
 
- 	.user-avatar {
 
- 		display: block;
 
- 		max-width: 50px;
 
- 		margin: 0 auto;
 
- 	}
 
- 	td { vertical-align: middle; }
 
- 	.is-primary:focus { background-color: #029ce3 !important; }
 
- </style>
 
 
  |