Bläddra i källkod

Small cleanup, added vue-roaster (toasts)

theflametrooper 8 år sedan
förälder
incheckning
174927549a

+ 3 - 3
backend/app.js

@@ -1,9 +1,9 @@
 'use strict';
 
 // nodejs modules
-const path = require('path'),
-      fs   = require('fs'),
-      os   = require('os');
+const path = require('path');
+const fs   = require('fs');
+const os   = require('os');
 
 process.env.NODE_CONFIG_DIR = `${__dirname}/config`;
 

+ 1 - 1
backend/logic/socketHandler.js

@@ -17,7 +17,7 @@ module.exports = (core, io) => {
 
 		socket.on('error', err => console.log(err));
 
-		socket.on('/u/:username', (cb) => core['/u/:username'](result => cb(result)));
+		socket.on('/u/:username', (username, cb) => core['/u/:username'](username, result => cb(result)));
 
 		socket.on('/stations', (cb) => core['/stations'](result => cb(result)));
 		socket.on('/stations/join/:id', (id, cb) => core['/stations/join/:id'](id, result => cb(result)));

+ 21 - 4
frontend/components/User/Show.vue

@@ -1,7 +1,12 @@
 <template>
+	<toast></toast>
 	<div class="container">
 		<img class="avatar" src="https://avatars2.githubusercontent.com/u/11198912?v=3&s=460"/>
-		<h1 class="has-text-centered">@{{user.username}}</h1>
+		<h2 class="has-text-centered">@{{user.username}}</h2>
+		<div class="admin-functionality">
+			<a class="button is-small is-info is-outlined" @click="changeRank('admin')">Promote to Admin</a>
+			<a class="button is-small is-danger is-outlined" @click="changeRank('user')">Demote to User</a>
+		</div>
 		<nav class="level">
 			<div class="level-item has-text-centered">
 				<p class="heading">Rank</p>
@@ -24,6 +29,8 @@
 </template>
 
 <script>
+	import { Toast } from 'vue-roaster';
+
 	export default {
 		data() {
 			return {
@@ -34,22 +41,27 @@
 			}
 		},
 		methods: {
-
+			changeRank(newRank) {
+				console.log(rank);
+				Toast.methods.addToast(`User ${this.$route.params.username} has been promoted to the rank of ${rank}`, 200000);
+			}
 		},
 		ready: function() {
 			let local = this;
 			local.socket = local.$parent.socket;
 			local.socket.emit("/u/:username", local.$route.params.username, results => {
 				local.user = results.data;
+				console.log(local.user)
 				local.liked = results.data.statistics.songsLiked.length;
 				local.disliked = local.user.statistics.songsDisliked.length;
 				local.requested = local.user.statistics.songsRequested;
 			});
-		}
+		},
+		components: { Toast }
 	}
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
 	.avatar {
 		border-radius: 50%;
 		width: 250px;
@@ -60,4 +72,9 @@
 	.level {
 		margin-top: 40px;
 	}
+
+	.admin-functionality {
+		text-align: center;
+		margin: 0 auto;
+	}
 </style>

+ 2 - 2
frontend/package.json

@@ -34,7 +34,7 @@
   },
   "dependencies": {
     "vue": "^1.0.26",
-    "vue-roaster": "^1.0.4",
-    "vue-router": "^0.7.13"
+    "vue-router": "^0.7.13",
+	"vue-roaster": "^1.0.7"
   }
 }

+ 0 - 1
frontend/webpack.config.js

@@ -1,4 +1,3 @@
-// webpack.config.js
 module.exports = {
 	entry: './main.js',
 	output: {