Login UI improvements

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2020-06-18 16:01:14 +02:00
parent b61d12b5fd
commit 0658651d7f
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773
5 changed files with 51 additions and 14 deletions

View file

@ -317,7 +317,6 @@
"Registration is currently closed.": "Registration is currently closed.", "Registration is currently closed.": "Registration is currently closed.",
"Registrations are restricted by whitelisting.": "Registrations are restricted by whitelisting.", "Registrations are restricted by whitelisting.": "Registrations are restricted by whitelisting.",
"Reject": "Reject", "Reject": "Reject",
"Rejected participations": "Rejected participations",
"Rejected": "Rejected", "Rejected": "Rejected",
"Reopen": "Reopen", "Reopen": "Reopen",
"Reply": "Reply", "Reply": "Reply",
@ -330,7 +329,6 @@
"Reported identity": "Reported identity", "Reported identity": "Reported identity",
"Reported": "Reported", "Reported": "Reported",
"Reports": "Reports", "Reports": "Reports",
"Requests": "Requests",
"Resend confirmation email": "Resend confirmation email", "Resend confirmation email": "Resend confirmation email",
"Reset my password": "Reset my password", "Reset my password": "Reset my password",
"Resolved": "Resolved", "Resolved": "Resolved",
@ -343,8 +341,6 @@
"Search": "Search", "Search": "Search",
"Searching…": "Searching…", "Searching…": "Searching…",
"Send email": "Send email", "Send email": "Send email",
"Send me an email to reset my password": "Send me an email to reset my password",
"Send me the confirmation email once again": "Send me the confirmation email once again",
"Send the report": "Send the report", "Send the report": "Send the report",
"Set an URL to a page with your own terms.": "Set an URL to a page with your own terms.", "Set an URL to a page with your own terms.": "Set an URL to a page with your own terms.",
"Settings": "Settings", "Settings": "Settings",
@ -419,7 +415,6 @@
"View page on {hostname} (in a new window)": "View page on {hostname} (in a new window)", "View page on {hostname} (in a new window)": "View page on {hostname} (in a new window)",
"Visible everywhere on the web (public)": "Visible everywhere on the web (public)", "Visible everywhere on the web (public)": "Visible everywhere on the web (public)",
"Waiting for organization team approval.": "Waiting for organization team approval.", "Waiting for organization team approval.": "Waiting for organization team approval.",
"Waiting list": "Waiting list",
"Warning": "Warning", "Warning": "Warning",
"We just sent an email to {email}": "We just sent an email to {email}", "We just sent an email to {email}": "We just sent an email to {email}",
"We want to develop a <b>digital common</b>, that everyone can make their own, which respects <b>privacy and activism by design</b>.": "We want to develop a <b>digital common</b>, that everyone can make their own, which respects <b>privacy and activism by design</b>.", "We want to develop a <b>digital common</b>, that everyone can make their own, which respects <b>privacy and activism by design</b>.": "We want to develop a <b>digital common</b>, that everyone can make their own, which respects <b>privacy and activism by design</b>.",
@ -647,5 +642,14 @@
"Change timezone": "Change timezone", "Change timezone": "Change timezone",
"Select a language": "Select a language", "Select a language": "Select a language",
"This event is accessible only through it's link. Be careful where you post this link.": "This event is accessible only through it's link. Be careful where you post this link.", "This event is accessible only through it's link. Be careful where you post this link.": "This event is accessible only through it's link. Be careful where you post this link.",
"This event has been cancelled.": "This event has been cancelled." "This event has been cancelled.": "This event has been cancelled.",
"Actions": "Actions",
"Everything": "Everything",
"Not approved": "Not approved",
"No participant matches the filters": "No participant matches the filters",
"Send the confirmation email again": "Send the confirmation email again",
"Forgot your password?": "Forgot your password?",
"Enter your email address below, and we'll email you instructions on how to change your password.": "Enter your email address below, and we'll email you instructions on how to change your password.",
"Submit": "Submit",
"Email address": "Email address"
} }

View file

@ -670,5 +670,14 @@
"Change timezone": "Changer de fuseau horaire", "Change timezone": "Changer de fuseau horaire",
"Select a language": "Choisissez une langue", "Select a language": "Choisissez une langue",
"This event is accessible only through it's link. Be careful where you post this link.": "Cet événement est accessible uniquement à travers son lien. Faites attention où vous le diffusez.", "This event is accessible only through it's link. Be careful where you post this link.": "Cet événement est accessible uniquement à travers son lien. Faites attention où vous le diffusez.",
"This event has been cancelled.": "Cet événement a été annulé." "This event has been cancelled.": "Cet événement a été annulé.",
"Actions": "Actions",
"Everything": "Tous",
"Not approved": "Non approuvé·es",
"No participant matches the filters": "Aucun·e participant·e ne correspond aux filtres",
"Send the confirmation email again": "Envoyer l'email de confirmation à nouveau",
"Forgot your password?": "Mot de passe oublié ?",
"Enter your email address below, and we'll email you instructions on how to change your password.": "Indiquez votre adresse e-mail ci-dessous. Nous vous enverrons des instructions concernant la modification de votre mot de passe.",
"Submit": "Valider",
"Email address": "Adresse email"
} }

View file

@ -67,6 +67,11 @@
>{{ $t("Forgot your password ?") }}</router-link >{{ $t("Forgot your password ?") }}</router-link
> >
</p> </p>
<router-link
class="button is-text"
:to="{ name: RouteName.RESEND_CONFIRMATION, params: { email: credentials.email } }"
>{{ $t("Didn't receive the instructions ?") }}</router-link
>
<p class="control" v-if="config && config.registrationsOpen"> <p class="control" v-if="config && config.registrationsOpen">
<router-link <router-link
class="button is-text" class="button is-text"

View file

@ -6,13 +6,16 @@
{{ $t("Resend confirmation email") }} {{ $t("Resend confirmation email") }}
</h1> </h1>
<form v-if="!validationSent" @submit="resendConfirmationAction"> <form v-if="!validationSent" @submit="resendConfirmationAction">
<b-field label="Email"> <b-field :label="$t('Email address')">
<b-input aria-required="true" required type="email" v-model="credentials.email" /> <b-input aria-required="true" required type="email" v-model="credentials.email" />
</b-field> </b-field>
<p class="control has-text-centered"> <p class="control">
<b-button type="is-primary" native-type="submit"> <b-button type="is-primary" native-type="submit">
{{ $t("Send me the confirmation email once again") }} {{ $t("Send the confirmation email again") }}
</b-button> </b-button>
<router-link :to="{ name: RouteName.LOGIN }" class="button is-text">{{
$t("Cancel")
}}</router-link>
</p> </p>
</form> </form>
<div v-else> <div v-else>
@ -37,6 +40,7 @@
import { Component, Prop, Vue } from "vue-property-decorator"; import { Component, Prop, Vue } from "vue-property-decorator";
import { validateEmailField, validateRequiredField } from "../../utils/validators"; import { validateEmailField, validateRequiredField } from "../../utils/validators";
import { RESEND_CONFIRMATION_EMAIL } from "../../graphql/auth"; import { RESEND_CONFIRMATION_EMAIL } from "../../graphql/auth";
import RouteName from "../../router/name";
@Component @Component
export default class ResendConfirmation extends Vue { export default class ResendConfirmation extends Vue {
@ -50,6 +54,8 @@ export default class ResendConfirmation extends Vue {
error = false; error = false;
RouteName = RouteName;
state = { state = {
email: { email: {
status: null, status: null,

View file

@ -3,8 +3,15 @@
<div class="columns is-mobile is-centered"> <div class="columns is-mobile is-centered">
<div class="column is-half-desktop"> <div class="column is-half-desktop">
<h1 class="title"> <h1 class="title">
{{ $t("Password reset") }} {{ $t("Forgot your password?") }}
</h1> </h1>
<p>
{{
$t(
"Enter your email address below, and we'll email you instructions on how to change your password."
)
}}
</p>
<b-message <b-message
title="Error" title="Error"
type="is-danger" type="is-danger"
@ -15,13 +22,16 @@
{{ error }} {{ error }}
</b-message> </b-message>
<form @submit="sendResetPasswordTokenAction" v-if="!validationSent"> <form @submit="sendResetPasswordTokenAction" v-if="!validationSent">
<b-field label="Email"> <b-field :label="$t('Email address')">
<b-input aria-required="true" required type="email" v-model="credentials.email" /> <b-input aria-required="true" required type="email" v-model="credentials.email" />
</b-field> </b-field>
<p class="control has-text-centered"> <p class="control">
<b-button type="is-primary" native-type="submit"> <b-button type="is-primary" native-type="submit">
{{ $t("Send me an email to reset my password") }} {{ $t("Submit") }}
</b-button> </b-button>
<router-link :to="{ name: RouteName.LOGIN }" class="button is-text">{{
$t("Cancel")
}}</router-link>
</p> </p>
</form> </form>
<div v-else> <div v-else>
@ -41,6 +51,7 @@
import { Component, Prop, Vue } from "vue-property-decorator"; import { Component, Prop, Vue } from "vue-property-decorator";
import { validateEmailField, validateRequiredField } from "../../utils/validators"; import { validateEmailField, validateRequiredField } from "../../utils/validators";
import { SEND_RESET_PASSWORD } from "../../graphql/auth"; import { SEND_RESET_PASSWORD } from "../../graphql/auth";
import RouteName from "../../router/name";
@Component @Component
export default class SendPasswordReset extends Vue { export default class SendPasswordReset extends Vue {
@ -52,6 +63,8 @@ export default class SendPasswordReset extends Vue {
validationSent = false; validationSent = false;
RouteName = RouteName;
errors: string[] = []; errors: string[] = [];
state = { state = {