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