2016-10-27 09:02:41 -07:00
|
|
|
<template>
|
2019-06-12 13:16:55 -07:00
|
|
|
<div class="login panel panel-default">
|
|
|
|
<!-- Default panel contents -->
|
|
|
|
|
|
|
|
<div class="panel-heading">{{$t('login.login')}}</div>
|
|
|
|
|
|
|
|
<div class="panel-body">
|
|
|
|
<form class='login-form' @submit.prevent='submit'>
|
|
|
|
<template v-if="isPasswordAuth">
|
2019-04-10 11:48:42 -07:00
|
|
|
<div class='form-group'>
|
|
|
|
<label for='username'>{{$t('login.username')}}</label>
|
2019-06-12 13:16:55 -07:00
|
|
|
<input :disabled="loggingIn" v-model='user.username'
|
|
|
|
class='form-control' id='username'
|
|
|
|
:placeholder="$t('login.placeholder')">
|
2018-11-07 07:56:12 -08:00
|
|
|
</div>
|
2019-04-10 11:48:42 -07:00
|
|
|
<div class='form-group'>
|
|
|
|
<label for='password'>{{$t('login.password')}}</label>
|
2019-06-12 13:16:55 -07:00
|
|
|
<input :disabled="loggingIn" v-model='user.password'
|
|
|
|
ref='passwordInput' class='form-control' id='password' type='password'>
|
2018-11-07 07:56:12 -08:00
|
|
|
</div>
|
2019-06-12 13:16:55 -07:00
|
|
|
</template>
|
2018-11-07 07:56:12 -08:00
|
|
|
|
2019-06-12 13:16:55 -07:00
|
|
|
<div class="form-group" v-if="isTokenAuth">
|
|
|
|
<p>{{$t('login.description')}}</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class='form-group'>
|
|
|
|
<div class='login-bottom'>
|
|
|
|
<div>
|
|
|
|
<router-link :to="{name: 'registration'}"
|
|
|
|
v-if='registrationOpen'
|
|
|
|
class='register'>
|
|
|
|
{{$t('login.register')}}
|
|
|
|
</router-link>
|
2018-11-06 12:48:05 -08:00
|
|
|
</div>
|
2019-06-12 13:16:55 -07:00
|
|
|
<button :disabled="loggingIn" type='submit' class='btn btn-default'>
|
|
|
|
{{$t('login.login')}}
|
|
|
|
</button>
|
2019-01-28 07:43:51 -08:00
|
|
|
</div>
|
|
|
|
</div>
|
2019-06-12 13:16:55 -07:00
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div v-if="error" class='form-group'>
|
|
|
|
<div class='alert error'>
|
|
|
|
{{error}}
|
|
|
|
<i class="button-icon icon-cancel" @click="clearError"></i>
|
2016-10-27 09:02:41 -07:00
|
|
|
</div>
|
|
|
|
</div>
|
2019-06-12 13:16:55 -07:00
|
|
|
</div>
|
2016-10-27 09:02:41 -07:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script src="./login_form.js" ></script>
|
2017-02-24 07:32:41 -08:00
|
|
|
|
|
|
|
<style lang="scss">
|
2018-03-31 19:28:20 -07:00
|
|
|
@import '../../_variables.scss';
|
2017-02-24 07:32:41 -08:00
|
|
|
|
|
|
|
.login-form {
|
2019-05-13 11:54:25 -07:00
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
padding: 0.6em;
|
|
|
|
|
2018-08-20 11:06:29 -07:00
|
|
|
.btn {
|
|
|
|
min-height: 28px;
|
|
|
|
width: 10em;
|
|
|
|
}
|
|
|
|
|
2018-04-07 09:30:27 -07:00
|
|
|
.register {
|
|
|
|
flex: 1 1;
|
|
|
|
}
|
2017-04-21 08:52:42 -07:00
|
|
|
|
2018-04-07 09:30:27 -07:00
|
|
|
.login-bottom {
|
|
|
|
margin-top: 1.0em;
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
}
|
2019-01-28 07:43:51 -08:00
|
|
|
|
2019-05-13 11:54:25 -07:00
|
|
|
.form-group {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
padding: 0.3em 0.5em 0.6em;
|
|
|
|
line-height:24px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.form-bottom {
|
|
|
|
display: flex;
|
|
|
|
padding: 0.5em;
|
|
|
|
height: 32px;
|
|
|
|
|
|
|
|
button {
|
|
|
|
width: 10em;
|
|
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
|
|
margin: 0.35em;
|
|
|
|
padding: 0.35em;
|
|
|
|
display: flex;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-01-28 07:43:51 -08:00
|
|
|
.error {
|
|
|
|
text-align: center;
|
|
|
|
|
|
|
|
animation-name: shakeError;
|
|
|
|
animation-duration: 0.4s;
|
|
|
|
animation-timing-function: ease-in-out;
|
|
|
|
}
|
|
|
|
}
|
2017-02-24 07:32:41 -08:00
|
|
|
</style>
|