improve login screen
This commit is contained in:
parent
18d70f5c2e
commit
764ae899a0
@ -1,28 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<b-modal title="Login" hide-footer no-close-on-esc :visible="showModal">
|
<b-modal size="sm" hide-header hide-footer no-close-on-esc :visible="showModal">
|
||||||
<form @submit.prevent="login">
|
<form @submit.prevent="login">
|
||||||
<fieldset :disabled="busy">
|
<div style="font-size: 4rem; color: #fff;" class="text-center">
|
||||||
|
<Icon icon="person-circle"/>
|
||||||
|
</div>
|
||||||
<b-form-group label="Server">
|
<b-form-group label="Server">
|
||||||
<b-form-input name="server" type="text" v-model="server" required></b-form-input>
|
<b-form-input name="server" type="text" v-model="server" :state="valid"/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group label="Username">
|
<b-form-group label="Username">
|
||||||
<b-form-input name="username" type="text" v-model="username" required></b-form-input>
|
<b-form-input name="username" type="text" v-model="username" :state="valid"/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group label="Password">
|
<b-form-group label="Password">
|
||||||
<b-form-input name="password" type="password" v-model="password" required></b-form-input>
|
<b-form-input name="password" type="password" v-model="password" :state="valid"/>
|
||||||
</b-form-group>
|
</b-form-group>
|
||||||
<b-form-group>
|
<b-alert :show="error != null" variant="danger">
|
||||||
<b-form-checkbox v-model="rememberLogin">Remember</b-form-checkbox>
|
<template v-if="error != null">
|
||||||
</b-form-group>
|
Could not log in. ({{ error.message }})
|
||||||
<b-alert :show="!!error" variant="danger">
|
</template>
|
||||||
Login failed.
|
|
||||||
</b-alert>
|
</b-alert>
|
||||||
<button class="btn btn-primary" @click="login">
|
<button class="btn btn-primary btn-block" @click="login" :disabled="busy">
|
||||||
<b-spinner v-show="busy" small type="grow"/>
|
<b-spinner v-show="busy" small type="grow"/> Log in
|
||||||
Login
|
|
||||||
</button>
|
</button>
|
||||||
</fieldset>
|
|
||||||
</form>
|
</form>
|
||||||
</b-modal>
|
</b-modal>
|
||||||
</div>
|
</div>
|
||||||
@ -40,9 +39,9 @@ export default Vue.extend({
|
|||||||
server: "",
|
server: "",
|
||||||
username: "",
|
username: "",
|
||||||
password: "",
|
password: "",
|
||||||
rememberLogin: false,
|
rememberLogin: true,
|
||||||
busy: false,
|
busy: false,
|
||||||
error: false,
|
error: null,
|
||||||
showModal: false,
|
showModal: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -60,8 +59,14 @@ export default Vue.extend({
|
|||||||
this.showModal = true;
|
this.showModal = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
valid(): false | null {
|
||||||
|
return this.error == null ? null : false
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
login() {
|
login() {
|
||||||
|
this.error = null;
|
||||||
this.busy = true;
|
this.busy = true;
|
||||||
this.$auth.loginWithPassword(this.server, this.username, this.password, this.rememberLogin)
|
this.$auth.loginWithPassword(this.server, this.username, this.password, this.rememberLogin)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@ -72,7 +77,7 @@ export default Vue.extend({
|
|||||||
this.$router.push(this.returnTo);
|
this.$router.push(this.returnTo);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
this.error = true;
|
this.error = err;
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
this.busy = false;
|
this.busy = false;
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
BIconMusicNoteBeamed,
|
BIconMusicNoteBeamed,
|
||||||
BIconBoxArrowRight,
|
BIconBoxArrowRight,
|
||||||
BIconPersonFill,
|
BIconPersonFill,
|
||||||
|
BIconPersonCircle,
|
||||||
} from 'bootstrap-vue'
|
} from 'bootstrap-vue'
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
@ -38,6 +39,7 @@
|
|||||||
BIconMusicNoteBeamed,
|
BIconMusicNoteBeamed,
|
||||||
BIconBoxArrowRight,
|
BIconBoxArrowRight,
|
||||||
BIconPersonFill,
|
BIconPersonFill,
|
||||||
|
BIconPersonCircle,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
icon: { type: String }
|
icon: { type: String }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user