Browse Source

Condensed creating community stations on frontend and added verification that fields are filled in

theflametrooper 8 years ago
parent
commit
ea3c1a13af

+ 2 - 2
backend/logic/actions/stations.js

@@ -439,9 +439,9 @@ module.exports = {
 			}
 
 		], (err, station) => {
-			if (err) {console.log(err); return cb({ 'status': 'failure', 'message': 'Something went wrong.'});}
-			cache.pub('station.create', data._id);
+			if (err) console.log(err); return cb({ 'status': 'failure', 'message': 'Something went wrong.'});
 			return cb(null, { 'status': 'success', 'message': 'Successfully created station.' });
+			cache.pub('station.create', data._id);
 		});
 	}),
 

+ 4 - 19
frontend/App.vue

@@ -5,7 +5,7 @@
 		<what-is-new></what-is-new>
 		<login-modal v-if='isLoginActive'></login-modal>
 		<register-modal v-if='isRegisterActive'></register-modal>
-		<create-community-station v-if='isCCSActive'></create-community-station>
+		<create-community-station v-if='isCreateCommunityStationActive'></create-community-station>
 	</div>
 </template>
 
@@ -31,18 +31,13 @@
 					email: '',
 					password: ''
 				},
-				ccs: {
-					name: '',
-					displayName: '',
-					description: ''
-				},
 				loggedIn: false,
 				role: '',
 				username: '',
 				userId: '',
 				isRegisterActive: false,
 				isLoginActive: false,
-				isCCSActive: false,
+				isCreateCommunityStationActive: false,
 				serverDomain: ''
 			}
 		},
@@ -106,16 +101,6 @@
 					}
 				});
 			},
-			'ccs': function () {
-				let _this = this;
-				this.socket.emit('stations.createCommunity', {_id: _this.ccs.name, displayName: _this.ccs.displayName, description: _this.ccs.description}, result => {
-					if (result.status === 'success') {
-						Toast.methods.addToast(`You have added the station successfully`, 4000);
-					} else {
-						Toast.methods.addToast(result.message, 4000);
-					}
-				});
-			},
 			'toggleModal': function (type) {
 				switch(type) {
 					case 'register':
@@ -124,8 +109,8 @@
 					case 'login':
 						this.isLoginActive = !this.isLoginActive;
 						break;
-					case 'ccs':
-						this.isCCSActive = !this.isCCSActive;
+					case 'createCommunityStation':
+						this.isCreateCommunityStationActive = !this.isCreateCommunityStationActive;
 						break;
 				}
 			}

+ 27 - 7
frontend/components/Modals/CreateCommunityStation.vue

@@ -8,17 +8,17 @@
 			</header>
 			<section class='modal-card-body'>
 				<!-- validation to check if exists http://bulma.io/documentation/elements/form/ -->
-				<label class='label'>Name (lowercase, a-z, used in the url)</label>
+				<label class='label'>Unique ID (lowercase, a-z, used in the url)</label>
 				<p class='control'>
-					<input class='input' type='text' placeholder='Name...' v-model='$parent.ccs.name'>
+					<input class='input' type='text' placeholder='Name...' v-model='newCommunity._id'>
 				</p>
-				<label class='label'>Display name</label>
+				<label class='label'>Display Name</label>
 				<p class='control'>
-					<input class='input' type='text' placeholder='Display name...' v-model='$parent.ccs.displayName'>
+					<input class='input' type='text' placeholder='Display name...' v-model='newCommunity.displayName'>
 				</p>
 				<label class='label'>Description</label>
 				<p class='control'>
-					<input class='input' type='text' placeholder='Description...' v-model='$parent.ccs.description'>
+					<input class='input' type='text' placeholder='Description...' v-model='newCommunity.description'>
 				</p>
 			</section>
 			<footer class='modal-card-foot'>
@@ -30,12 +30,32 @@
 
 <script>
 	export default {
+		data() {
+			return {
+				newCommunity: {
+					_id: '',
+					displayName: '',
+					description: ''
+				}
+			}
+		},
 		methods: {
 			toggleModal: function () {
-				this.$dispatch('toggleModal', 'ccs');
+				this.$dispatch('toggleModal', 'createCommunityStation');
 			},
 			submitModal: function () {
-				this.$dispatch('ccs');
+				let _this = this;
+				if (_this.community._id == '') return Toast.methods.addToast('ID cannot be a blank field', 3000);
+				if (_this.community.displayName == '') return Toast.methods.addToast('Display Name cannot be a blank field', 3000);
+				if (_this.community.description == '') return Toast.methods.addToast('Description cannot be a blank field', 3000);
+				this.socket.emit('stations.createCommunity', {
+					_id: _this.community._id,
+					displayName: _this.community.displayName,
+					description: _this.community.description
+				}, res => {
+					if (res.status === 'success') Toast.methods.addToast(`You have added the station successfully`, 4000);
+					else Toast.methods.addToast(res.message, 4000);
+				});
 				this.toggleModal();
 			}
 		}