2017-04-15 16:12:23 +00:00
|
|
|
const registration = {
|
|
|
|
data: () => ({
|
|
|
|
user: {},
|
|
|
|
error: false,
|
|
|
|
registering: false
|
|
|
|
}),
|
2017-06-20 07:37:51 +00:00
|
|
|
created () {
|
2018-09-09 16:36:13 +00:00
|
|
|
if ((!this.$store.state.interface.registrationOpen && !this.token) || !!this.$store.state.users.currentUser) {
|
2017-06-20 07:37:51 +00:00
|
|
|
this.$router.push('/main/all')
|
|
|
|
}
|
2018-08-05 07:01:38 +00:00
|
|
|
// Seems like this doesn't work at first page open for some reason
|
2018-09-09 16:36:13 +00:00
|
|
|
if (this.$store.state.interface.registrationOpen && this.token) {
|
2018-08-05 07:01:38 +00:00
|
|
|
this.$router.push('/registration')
|
|
|
|
}
|
2017-06-20 07:37:51 +00:00
|
|
|
},
|
2017-06-19 13:35:35 +00:00
|
|
|
computed: {
|
2018-08-05 07:01:38 +00:00
|
|
|
termsofservice () { return this.$store.state.config.tos },
|
|
|
|
token () { return this.$route.params.token }
|
2017-06-19 13:35:35 +00:00
|
|
|
},
|
2017-04-15 16:12:23 +00:00
|
|
|
methods: {
|
|
|
|
submit () {
|
|
|
|
this.registering = true
|
|
|
|
this.user.nickname = this.user.username
|
2018-08-05 07:01:38 +00:00
|
|
|
this.user.token = this.token
|
2017-04-15 16:12:23 +00:00
|
|
|
this.$store.state.api.backendInteractor.register(this.user).then(
|
|
|
|
(response) => {
|
|
|
|
if (response.ok) {
|
|
|
|
this.$store.dispatch('loginUser', this.user)
|
|
|
|
this.$router.push('/main/all')
|
|
|
|
this.registering = false
|
|
|
|
} else {
|
|
|
|
this.registering = false
|
|
|
|
response.json().then((data) => {
|
|
|
|
this.error = data.error
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default registration
|