Skip to content
Snippets Groups Projects
Verified Commit 341fb54c authored by Eliot Berriot's avatar Eliot Berriot
Browse files

See #872: moved signup and login form in separate components for reusability

parent 98c6e103
No related branches found
No related tags found
No related merge requests found
<template> <template>
<main class="main pusher" v-title="labels.title">
<section class="ui vertical stripe segment">
<div class="ui small text container">
<h2><translate translate-context="Content/Login/Title/Verb">Log in to your Funkwhale account</translate></h2>
<form class="ui form" @submit.prevent="submit()"> <form class="ui form" @submit.prevent="submit()">
<slot name="title"></slot>
<div v-if="error" class="ui negative message"> <div v-if="error" class="ui negative message">
<div class="header"><translate translate-context="Content/Login/Error message.Title">We cannot log you in</translate></div> <div class="header"><translate translate-context="Content/Login/Error message.Title">We cannot log you in</translate></div>
<ul class="list"> <ul class="list">
...@@ -43,9 +40,6 @@ ...@@ -43,9 +40,6 @@
<translate translate-context="*/Login/*/Verb">Login</translate> <translate translate-context="*/Login/*/Verb">Login</translate>
</button> </button>
</form> </form>
</div>
</section>
</main>
</template> </template>
<script> <script>
...@@ -81,10 +75,8 @@ export default { ...@@ -81,10 +75,8 @@ export default {
computed: { computed: {
labels() { labels() {
let usernamePlaceholder = this.$pgettext('Content/Login/Input.Placeholder', "Enter your username or email") let usernamePlaceholder = this.$pgettext('Content/Login/Input.Placeholder', "Enter your username or email")
let title = this.$pgettext('Head/Login/Title', "Log In")
return { return {
usernamePlaceholder, usernamePlaceholder,
title
} }
} }
}, },
......
<template> <template>
<main class="main pusher" v-title="labels.title">
<section class="ui vertical stripe segment">
<div class="ui small text container">
<h2><translate translate-context="Content/Signup/Title">Create a funkwhale account</translate></h2>
<form <form
:class="['ui', {'loading': isLoadingInstanceSetting}, 'form']" :class="['ui', {'loading': isLoadingInstanceSetting}, 'form']"
@submit.prevent="submit()"> @submit.prevent="submit()">
<slot name="title"></slot>
<p class="ui message" v-if="!$store.state.instance.settings.users.registration_enabled.value"> <p class="ui message" v-if="!$store.state.instance.settings.users.registration_enabled.value">
<translate translate-context="Content/Signup/Form/Paragraph">Registration are closed on this instance, you will need an invitation code to signup.</translate> <translate translate-context="Content/Signup/Form/Paragraph">Registration are closed on this instance, you will need an invitation code to signup.</translate>
</p> </p>
...@@ -54,9 +51,6 @@ ...@@ -54,9 +51,6 @@
<translate translate-context="Content/Signup/Button.Label">Create my account</translate> <translate translate-context="Content/Signup/Button.Label">Create my account</translate>
</button> </button>
</form> </form>
</div>
</section>
</main>
</template> </template>
<script> <script>
...@@ -94,7 +88,6 @@ export default { ...@@ -94,7 +88,6 @@ export default {
}, },
computed: { computed: {
labels() { labels() {
let title = this.$pgettext("*/Signup/Title", "Sign Up")
let placeholder = this.$pgettext( let placeholder = this.$pgettext(
"Content/Signup/Form/Placeholder", "Content/Signup/Form/Placeholder",
"Enter your invitation code (case insensitive)" "Enter your invitation code (case insensitive)"
...@@ -102,7 +95,6 @@ export default { ...@@ -102,7 +95,6 @@ export default {
let usernamePlaceholder = this.$pgettext("Content/Signup/Form/Placeholder", "Enter your username") let usernamePlaceholder = this.$pgettext("Content/Signup/Form/Placeholder", "Enter your username")
let emailPlaceholder = this.$pgettext("Content/Signup/Form/Placeholder", "Enter your email") let emailPlaceholder = this.$pgettext("Content/Signup/Form/Placeholder", "Enter your email")
return { return {
title,
usernamePlaceholder, usernamePlaceholder,
emailPlaceholder, emailPlaceholder,
placeholder placeholder
...@@ -140,7 +132,3 @@ export default { ...@@ -140,7 +132,3 @@ export default {
} }
} }
</script> </script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
...@@ -30,7 +30,7 @@ export default new Router({ ...@@ -30,7 +30,7 @@ export default new Router({
path: '/login', path: '/login',
name: 'login', name: 'login',
component: () => component: () =>
import(/* webpackChunkName: "core" */ "@/components/auth/Login"), import(/* webpackChunkName: "core" */ "@/views/auth/Login"),
props: (route) => ({ next: route.query.next || '/library' }) props: (route) => ({ next: route.query.next || '/library' })
}, },
{ {
...@@ -85,7 +85,7 @@ export default new Router({ ...@@ -85,7 +85,7 @@ export default new Router({
path: '/signup', path: '/signup',
name: 'signup', name: 'signup',
component: () => component: () =>
import(/* webpackChunkName: "core" */ "@/components/auth/Signup"), import(/* webpackChunkName: "core" */ "@/views/auth/Signup"),
props: (route) => ({ props: (route) => ({
defaultInvitation: route.query.invitation defaultInvitation: route.query.invitation
}) })
......
<template>
<main class="main pusher" v-title="labels.title">
<section class="ui vertical stripe segment">
<div class="ui small text container">
<h2 slot="title"><translate translate-context="Content/Login/Title/Verb">Log in to your Funkwhale account</translate></h2>
<login-form :next="next"></login-form>
</div>
</section>
</main>
</template>
<script>
import LoginForm from "@/components/auth/LoginForm"
import PasswordInput from "@/components/forms/PasswordInput"
export default {
components: {
LoginForm
},
props: {
next: { type: String, default: "/library" }
},
computed: {
labels() {
let title = this.$pgettext('Head/Login/Title', "Log In")
return {
title
}
}
},
}
</script>
<template>
<main class="main pusher" v-title="labels.title">
<section class="ui vertical stripe segment">
<div class="ui small text container">
<signup-form :default-invitation="defaultInvitation" :next="next">
<h2 slot="title"><translate translate-context="Content/Signup/Title">Create a funkwhale account</translate></h2>
</signup-form>
</div>
</section>
</main>
</template>
<script>
import axios from "axios"
import logger from "@/logging"
import SignupForm from "@/components/auth/SignupForm"
export default {
components: {
SignupForm
},
props: {
defaultInvitation: { type: String, required: false, default: null },
next: { type: String, default: "/" }
},
computed: {
labels() {
let title = this.$pgettext("*/Signup/Title", "Sign Up")
return {
title,
}
}
}
}
</script>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment