refactor: better errors, introduce email constants

This commit is contained in:
roschaefer 2019-10-07 23:25:49 +02:00 committed by mattwr18
parent 4c7cc0a9cf
commit b1e01cb65a
4 changed files with 31 additions and 12 deletions

View File

@ -1,10 +1,23 @@
<template> <template>
<ds-space v-if="success"> <div v-if="response === 'success'">
<sweetalert-icon icon="success" /> <sweetalert-icon icon="success" />
<ds-text align="center" bold color="success"> <ds-text align="center" bold color="success">
{{ $t('registration.create-user-account.success') }} {{ $t('components.registration.create-user-account.success') }}
</ds-text> </ds-text>
</ds-space> </div>
<div v-else-if="response === 'error'">
<sweetalert-icon icon="error" />
<ds-text align="center" bold color="danger">
{{ $t('components.registration.create-user-account.error') }}
</ds-text>
<ds-text align="center">
{{ $t('components.registration.create-user-account.help') }}
<a :href="supportEmail.href">{{ supportEmail.label }}</a>
</ds-text>
<ds-space centered>
<nuxt-link to="/login">{{ $t('site.back-to-login') }}</nuxt-link>
</ds-space>
</div>
<div v-else class="create-account-card"> <div v-else class="create-account-card">
<ds-space margin-top="large"> <ds-space margin-top="large">
<ds-heading size="h3"> <ds-heading size="h3">
@ -57,9 +70,6 @@
v-html="$t('termsAndConditions.termsAndConditionsConfirmed')" v-html="$t('termsAndConditions.termsAndConditionsConfirmed')"
></label> ></label>
</ds-text> </ds-text>
<ds-space class="backendErrors" v-if="backendErrors">
<ds-text align="center" bold color="danger">{{ backendErrors.message }}</ds-text>
</ds-space>
<ds-button <ds-button
style="float: right;" style="float: right;"
icon="check" icon="check"
@ -79,6 +89,7 @@
import PasswordStrength from '../Password/Strength' import PasswordStrength from '../Password/Strength'
import { SweetalertIcon } from 'vue-sweetalert-icons' import { SweetalertIcon } from 'vue-sweetalert-icons'
import PasswordForm from '~/components/utils/PasswordFormHelper' import PasswordForm from '~/components/utils/PasswordFormHelper'
import { SUPPORT_EMAIL } from '~/constants/emails.js'
import { VERSION } from '~/constants/terms-and-conditions-version.js' import { VERSION } from '~/constants/terms-and-conditions-version.js'
import { SignupVerificationMutation } from '~/graphql/Registration.js' import { SignupVerificationMutation } from '~/graphql/Registration.js'
@ -90,6 +101,7 @@ export default {
data() { data() {
const passwordForm = PasswordForm({ translate: this.$t }) const passwordForm = PasswordForm({ translate: this.$t })
return { return {
supportEmail: SUPPORT_EMAIL,
formData: { formData: {
name: '', name: '',
about: '', about: '',
@ -108,8 +120,7 @@ export default {
...passwordForm.formSchema, ...passwordForm.formSchema,
}, },
disabled: true, disabled: true,
success: null, response: null,
backendErrors: null,
// TODO: Our styleguide does not support checkmarks. // TODO: Our styleguide does not support checkmarks.
// Integrate termsAndConditionsConfirmed into `this.formData` once we // Integrate termsAndConditionsConfirmed into `this.formData` once we
// have checkmarks available. // have checkmarks available.
@ -130,7 +141,7 @@ export default {
mutation: SignupVerificationMutation, mutation: SignupVerificationMutation,
variables: { name, password, about, email, nonce, termsAndConditionsAgreedVersion }, variables: { name, password, about, email, nonce, termsAndConditionsAgreedVersion },
}) })
this.success = true this.response = 'success'
setTimeout(() => { setTimeout(() => {
this.$emit('userCreated', { this.$emit('userCreated', {
email, email,
@ -138,7 +149,7 @@ export default {
}) })
}, 3000) }, 3000)
} catch (err) { } catch (err) {
this.backendErrors = err this.response = 'error'
} }
}, },
}, },

View File

@ -0,0 +1,4 @@
export const SUPPORT_EMAIL = {
href: 'mailto:support@human-connection.org',
label: 'support@human-connection.org',
}

View File

@ -40,7 +40,9 @@
}, },
"create-user-account": { "create-user-account": {
"title": "Benutzerkonto anlegen", "title": "Benutzerkonto anlegen",
"success": "Dein Benutzerkonto wurde erstellt!" "success": "Dein Benutzerkonto wurde erstellt!",
"error": "Es konnte kein Benutzerkonto erstellt werden!",
"help": "Vielleicht war der Bestätigungscode falsch oder abgelaufen? Wenn das Problem weiterhin besteht, schick uns gerne eine E-Mail an:"
} }
} }
}, },

View File

@ -41,7 +41,9 @@
}, },
"create-user-account": { "create-user-account": {
"title": "Create user account", "title": "Create user account",
"success": "Your account has been created!" "success": "Your account has been created!",
"error": "No user account could be created!",
"help": " Maybe the confirmation was invalid? In case of problems, feel free to ask for help by sending us a mail to:"
} }
} }
}, },