1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-22 20:32:24 +00:00
bramw_baserow/web-frontend/modules/core/pages/signup.vue

93 lines
2.5 KiB
Vue

<template>
<div>
<div class="box__head">
<h1 class="box__head-title">
{{ $t('signup.title') }}
</h1>
<LangPicker />
</div>
<template v-if="shouldShowAdminSignupPage">
<div class="alert">
<div class="alert__title">{{ $t('signup.requireFirstUser') }}</div>
<p class="alert__content">
{{ $t('signup.requireFirstUserMessage') }}
</p>
</div>
</template>
<template v-if="!isSignupEnabled">
<div class="alert alert--simple alert--error alert--has-icon">
<div class="alert__icon">
<i class="fas fa-exclamation"></i>
</div>
<div class="alert__title">{{ $t('signup.disabled') }}</div>
<p class="alert__content">
{{ $t('signup.disabledMessage') }}
</p>
</div>
<nuxt-link
:to="{ name: 'login' }"
class="button button--large button--primary"
>
<i class="fas fa-arrow-left"></i>
{{ $t('action.backToLogin') }}
</nuxt-link>
</template>
<AuthRegister v-else :invitation="invitation" @success="success">
<ul v-if="!shouldShowAdminSignupPage" class="action__links">
<li>
<nuxt-link :to="{ name: 'login' }">
<i class="fas fa-arrow-left"></i>
{{ $t('action.back') }}
</nuxt-link>
</li>
</ul>
</AuthRegister>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import groupInvitationToken from '@baserow/modules/core/mixins/groupInvitationToken'
import AuthRegister from '@baserow/modules/core/components/auth/AuthRegister'
import LangPicker from '@baserow/modules/core/components/LangPicker'
export default {
components: { AuthRegister, LangPicker },
mixins: [groupInvitationToken],
layout: 'login',
data() {
return {
shouldShowAdminSignupPage: false,
}
},
head() {
return {
title: this.$t('signup.headTitle'),
}
},
computed: {
isSignupEnabled() {
return (
this.settings.allow_new_signups ||
(this.settings.allow_signups_via_group_invitations &&
this.invitation?.id)
)
},
...mapGetters({
settings: 'settings/get',
}),
},
mounted() {
this.shouldShowAdminSignupPage = this.settings.show_admin_signup_page
},
methods: {
success() {
if (this.shouldShowAdminSignupPage) {
this.$store.dispatch('settings/hideAdminSignupPage')
}
this.$nuxt.$router.push({ name: 'dashboard' })
},
},
}
</script>