|
|
@@ -0,0 +1,74 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <h1>Login</h1>
|
|
|
+
|
|
|
+ <div v-if="!user">
|
|
|
+ <span>Username: </span>
|
|
|
+ <input @keyup.enter="usernameDone()" v-model="username" placeholder="username" ref="username"><br>
|
|
|
+
|
|
|
+ <span>Password: </span>
|
|
|
+ <input @keyup.enter="passwordDone()" v-model="password" placeholder="password" type="password" ref="password"><br>
|
|
|
+
|
|
|
+ <button @click="buttonDone()">Login</button><span class="error">{{ error }}</span><br>
|
|
|
+ </div>
|
|
|
+ <span v-else>You are logged in.</span>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ error: '',
|
|
|
+ username: '',
|
|
|
+ password: '',
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.$refs.username.focus()
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ user() {
|
|
|
+ return this.$store.state.user
|
|
|
+ },
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ usernameDone() {
|
|
|
+ if(this.username !== '' || this.validateData()) {
|
|
|
+ this.$refs.password.focus()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ passwordDone() {
|
|
|
+ if(this.validateData()) {
|
|
|
+ this.attemptLogin()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ buttonDone() {
|
|
|
+ if(this.validateData()) {
|
|
|
+ this.attemptLogin()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ validateData() {
|
|
|
+ if(this.username === '') {
|
|
|
+ this.error = 'Please input a username'
|
|
|
+ this.$refs.username.focus()
|
|
|
+ } else if(this.password === '') {
|
|
|
+ this.error = 'Please input a password'
|
|
|
+ this.$refs.password.focus()
|
|
|
+ } else {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ },
|
|
|
+ attemptLogin() {
|
|
|
+ this.core.lol(this.username, this.password)
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+ .error {
|
|
|
+ color: #d00;
|
|
|
+ }
|
|
|
+</style>
|