Merge branch 'passwordreset'
This commit is contained in:
@@ -65,6 +65,21 @@ export default new Vuex.Store({
|
|||||||
commit('logout');
|
commit('logout');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
resetPassword({ commit }, email) {
|
||||||
|
commit('loadingBegin');
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append('email', email);
|
||||||
|
return axios({
|
||||||
|
url: '/api/reset-password',
|
||||||
|
data: formData,
|
||||||
|
method: 'post'
|
||||||
|
}).then(() => {
|
||||||
|
commit('loadingFinish');
|
||||||
|
}).catch((error) => {
|
||||||
|
commit('loadingFinish');
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
},
|
||||||
loadCountries ({ commit }) {
|
loadCountries ({ commit }) {
|
||||||
axios({
|
axios({
|
||||||
url: '/api/countries',
|
url: '/api/countries',
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="button button--active">
|
<button type="submit" class="button button--active" :disabled="loading">
|
||||||
Speichern
|
Speichern
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,26 +1,31 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="form-wrapper form--border col-xs-12 col-md-6" id="myep-main">
|
<div class="form-wrapper form--border col-xs-12 col-md-6" id="myep-main">
|
||||||
<h1>Login MyE&P<img :src="loaderUrl" alt="" v-if="loading"></h1>
|
<h1>Login MyE&P<img :src="loaderUrl" alt="" v-if="loading"></h1>
|
||||||
<div v-if="message" class="alert alert-danger">
|
<div v-if="message" class="alert" :class="messageClass">
|
||||||
{{ message }}
|
{{ message }}
|
||||||
</div>
|
</div>
|
||||||
<form @submit.prevent="login()">
|
<form @submit.prevent="submit()">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="email" class="control-label">
|
<label for="email" class="control-label">
|
||||||
E-Mail
|
E-Mail
|
||||||
</label>
|
</label>
|
||||||
<input id="email" type="text" v-model="email" class="form-control">
|
<input id="email" type="text" v-model="email" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group" v-if="loginMode">
|
||||||
<label for="password" class="control-label">
|
<label for="password" class="control-label">
|
||||||
Passwort
|
Passwort
|
||||||
</label>
|
</label>
|
||||||
<input id="password" type="password" v-model="password" class="form-control">
|
<input id="password" type="password" v-model="password" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="button button--active">
|
<div class="btn-group">
|
||||||
Login
|
<button type="submit" class="button" :disabled="loading">
|
||||||
</button>
|
{{ loginMode ? 'Login' : 'Zurücksetzen' }}
|
||||||
|
</button>
|
||||||
|
<button class="button button--secondary" @click.prevent="toggleMode()">
|
||||||
|
{{ loginMode ? 'Passwort vergessen?' : 'Zum Login' }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@@ -32,15 +37,29 @@
|
|||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
mode: 'login',
|
||||||
|
messageClass: '',
|
||||||
message: '',
|
message: '',
|
||||||
email: '',
|
email: '',
|
||||||
password: ''
|
password: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
toggleMode () {
|
||||||
|
this.mode = this.mode === 'login' ? 'reset' : 'login';
|
||||||
|
},
|
||||||
|
submit () {
|
||||||
|
this.message = '';
|
||||||
|
if (this.mode === 'login') {
|
||||||
|
this.login();
|
||||||
|
} else {
|
||||||
|
this.resetPassword();
|
||||||
|
}
|
||||||
|
},
|
||||||
login () {
|
login () {
|
||||||
if (!this.email || !this.password) {
|
if (!this.email || !this.password) {
|
||||||
this.message = 'Bitte E-Mail und Passwort angeben';
|
this.message = 'Bitte E-Mail und Passwort angeben';
|
||||||
|
this.messageClass = 'alert-danger';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.$store.dispatch('login', {
|
this.$store.dispatch('login', {
|
||||||
@@ -50,6 +69,23 @@
|
|||||||
this.$router.push({ name: 'address' });
|
this.$router.push({ name: 'address' });
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.message = 'Der Login ist fehlgeschlagen :(';
|
this.message = 'Der Login ist fehlgeschlagen :(';
|
||||||
|
this.messageClass = 'alert-danger';
|
||||||
|
}).then(() => {
|
||||||
|
EventBus.$emit('scrollTo', '#myep-main');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
resetPassword () {
|
||||||
|
if (!this.email) {
|
||||||
|
this.message = 'Bitte E-Mail Adresse angeben';
|
||||||
|
this.messageClass = 'alert-danger';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$store.dispatch('resetPassword',
|
||||||
|
this.email
|
||||||
|
).then(() => {
|
||||||
|
this.email = '';
|
||||||
|
this.message = 'Du erhälts in Kürze eine E-Mail mit einem Link zum (Zurück)setzen deines Passworts';
|
||||||
|
this.messageClass = 'alert-success';
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
EventBus.$emit('scrollTo', '#myep-main');
|
EventBus.$emit('scrollTo', '#myep-main');
|
||||||
});
|
});
|
||||||
@@ -61,6 +97,9 @@
|
|||||||
},
|
},
|
||||||
loading () {
|
loading () {
|
||||||
return this.$store.state.loading;
|
return this.$store.state.loading;
|
||||||
|
},
|
||||||
|
loginMode () {
|
||||||
|
return this.mode === 'login';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
.button {
|
.button,
|
||||||
|
button:active,
|
||||||
|
button:focus {
|
||||||
background-color: $color-button-background;
|
background-color: $color-button-background;
|
||||||
color: $color-button-foreground;
|
color: $color-button-foreground;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
@@ -15,9 +17,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&--active,
|
&--active,
|
||||||
&:active,
|
&--secondary {
|
||||||
&:focus {
|
background-color: $color-brand-primary;
|
||||||
background-color: $color-brand-secondary;
|
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user