logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: 1d36ea5ec58c8df870a0c6c1ec267b78b8db28f0
parent d39de3022108c4a42d20fe2a38265179ae0062f9
Author: Tusooa Zhu <tusooa@kazv.moe>
Date:   Sat, 26 Mar 2022 13:03:23 -0400

Add email language option to registration form

Diffstat:

Msrc/components/interface_language_switcher/interface_language_switcher.vue2+-
Msrc/components/registration/registration.js14++++++++++++--
Msrc/components/registration/registration.vue12++++++++++++
3 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/src/components/interface_language_switcher/interface_language_switcher.vue b/src/components/interface_language_switcher/interface_language_switcher.vue @@ -37,7 +37,7 @@ export default { required: true }, setLanguage: { - type: String, + type: Function, required: true } }, diff --git a/src/components/registration/registration.js b/src/components/registration/registration.js @@ -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() diff --git a/src/components/registration/registration.vue b/src/components/registration/registration.vue @@ -163,6 +163,18 @@ </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" >