Browse Source

Added news page content.

KrisVos130 8 years ago
parent
commit
bdcc26f7f8
3 changed files with 76 additions and 25 deletions
  1. 3 1
      backend/logic/actions/news.js
  2. 19 15
      backend/logic/io.js
  3. 54 9
      frontend/components/pages/News.vue

+ 3 - 1
backend/logic/actions/news.js

@@ -4,8 +4,10 @@ const db = require('../db');
 
 module.exports = {
 
-	all: (session, cb) => {
+	index: (session, cb) => {
+		console.log(1234);
 		db.models.news.find({}).sort({ released: 'desc' }).exec((err, news) => {
+			console.log(123456, err);
 			if (err) throw err;
 			else cb({ status: 'success', data: news });
 		});

+ 19 - 15
backend/logic/io.js

@@ -95,21 +95,25 @@ module.exports = {
 				if (err && err !== true) {
 					socket.emit('ready', false);
 				} else if (session) {
-					if (!!session.userSessionId) cache.hget('userSessions', session.userSessionId, (err2, userSession) => {
-						if (err2 && err2 !== true) {
-							socket.emit('ready', false);
-						} else if (userSession) {
-							db.models.user.findOne({ _id: userSession.userId }, (err, user) => {
-								let role = 'default';
-								if (user) {
-									role = user.role;
-								}
-								socket.emit('ready', true, role);
-							});
-						} else {
-							socket.emit('ready', false);
-						}
-					});
+					if (!!session.userSessionId) {
+						cache.hget('userSessions', session.userSessionId, (err2, userSession) => {
+							if (err2 && err2 !== true) {
+								socket.emit('ready', false);
+							} else if (userSession) {
+								db.models.user.findOne({_id: userSession.userId}, (err, user) => {
+									let role = 'default';
+									if (user) {
+										role = user.role;
+									}
+									socket.emit('ready', true, role);
+								});
+							} else {
+								socket.emit('ready', false);
+							}
+						});
+					} else {
+						socket.emit('ready', false);
+					}
 				} else {
 					socket.emit('ready', false);
 				}

+ 54 - 9
frontend/components/pages/News.vue

@@ -1,9 +1,44 @@
 <template>
 	<div class="app">
 		<main-header></main-header>
-		<!--<article v-for="item in news">
-			<h1>{{ item.author }}</h1>
-		</article>-->
+		<div class="container">
+			<div class="card is-fullwidth" v-for="item in news">
+				<header class="card-header">
+					<p class="card-header-title">
+						{{item.title}} - {{formatDate(item.createdAt)}}
+					</p>
+				</header>
+				<div class="card-content">
+					<div class="content">
+						<p>{{item.description}}</p>
+					</div>
+					<div class="content" v-show="item.features.length > 0">
+						<div class="tile notification is-success">Features</div>
+						<ul>
+							<li v-for="li in item.features">{{li}}</li>
+						</ul>
+					</div>
+					<div class="content" v-show="item.changes.length > 0">
+						<div class="tile notification is-info">Changes</div>
+						<ul>
+							<li v-for="li in item.changes">{{li}}</li>
+						</ul>
+					</div>
+					<div class="content" v-show="item.fixes.length > 0">
+						<div class="tile notification is-danger">Bug fixes</div>
+						<ul>
+							<li v-for="li in item.fixes">{{li}}</li>
+						</ul>
+					</div>
+					<div class="content" v-show="item.upcoming.length > 0">
+						<div class="tile notification is-primary">Upcoming</div>
+						<ul>
+							<li v-for="li in item.upcoming">{{li}}</li>
+						</ul>
+					</div>
+				</div>
+			</div>
+		</div>
 		<main-footer></main-footer>
 	</div>
 </template>
@@ -14,19 +49,29 @@
 
 	export default {
 		components: { MainHeader, MainFooter },
+		methods: {
+			formatDate: (unix) => {
+				return moment(unix).format("DD-MM-YYYY");
+			},
+		},
 		data() {
 			return {
 				news: []
 			}
 		},
 		ready: function () {
-			// let socket = this.socket = this.$parent.socket;
-			// socket.emit("news.all", function(res) {
-			// 	this.news = res.data;
-			// 	console.log(this.news)
-			// });
+			let _this = this;
+			let socket = this.socket = this.$parent.socket;
+			socket.emit("news.index", function(result) {
+				_this.news = result.data;
+				console.log(_this.news)
+			});
 		}
 	}
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+	.card {
+		margin-top: 50px;
+	}
+</style>