Add email language option to registration form

This commit is contained in:
Tusooa Zhu 2022-03-26 13:03:23 -04:00
parent d39de30221
commit 1d36ea5ec5
No known key found for this signature in database
GPG Key ID: 7B467EDE43A08224
3 changed files with 25 additions and 3 deletions

View File

@ -37,7 +37,7 @@ export default {
required: true
},
setLanguage: {
type: String,
type: Function,
required: true
}
},

View File

@ -1,6 +1,8 @@
import useVuelidate from '@vuelidate/core'
import { required, requiredIf, sameAs } from '@vuelidate/validators'
import { mapActions, mapState } from 'vuex'
import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'
import localeService from '../../services/locale/locale.service.js'
const registration = {
setup () { return { v$: useVuelidate() } },
@ -11,10 +13,14 @@ const registration = {
username: '',
password: '',
confirm: '',
reason: ''
reason: '',
language: '',
},
captcha: {}
}),
components: {
InterfaceLanguageSwitcher
},
validations () {
return {
user: {
@ -26,7 +32,8 @@ const registration = {
required,
sameAs: sameAs(this.user.password)
},
reason: { required: requiredIf(() => this.accountApprovalRequired) }
reason: { required: requiredIf(() => this.accountApprovalRequired) },
language: {}
}
}
},
@ -64,6 +71,9 @@ const registration = {
this.user.captcha_solution = this.captcha.solution
this.user.captcha_token = this.captcha.token
this.user.captcha_answer_data = this.captcha.answer_data
if (this.user.language) {
this.user.language = localeService.internalToBackendLocale(this.user.language)
}
this.v$.$touch()

View File

@ -162,6 +162,18 @@
</ul>
</div>
<div
class="form-group"
:class="{ 'form-group--error': $v.user.language.$error }"
>
<interface-language-switcher
for="email-language"
:prompt-text="$t('registration.email_language')"
:language="$v.user.language.$model"
:set-language="val => $v.user.language.$model = val"
/>
</div>
<div
v-if="accountApprovalRequired"
class="form-group"