forked from srxl/akkoma-fe
add reason field when approval is required
This commit is contained in:
parent
44bddf6cd2
commit
a636e53404
4 changed files with 33 additions and 4 deletions
|
@ -51,6 +51,7 @@ const getInstanceConfig = async ({ store }) => {
|
||||||
const vapidPublicKey = data.pleroma.vapid_public_key
|
const vapidPublicKey = data.pleroma.vapid_public_key
|
||||||
|
|
||||||
store.dispatch('setInstanceOption', { name: 'textlimit', value: textlimit })
|
store.dispatch('setInstanceOption', { name: 'textlimit', value: textlimit })
|
||||||
|
store.dispatch('setInstanceOption', { name: 'accountApprovalRequired', value: data.approval_required })
|
||||||
|
|
||||||
if (vapidPublicKey) {
|
if (vapidPublicKey) {
|
||||||
store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })
|
store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })
|
||||||
|
|
|
@ -10,7 +10,8 @@ const registration = {
|
||||||
fullname: '',
|
fullname: '',
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
confirm: ''
|
confirm: '',
|
||||||
|
reason: ''
|
||||||
},
|
},
|
||||||
captcha: {}
|
captcha: {}
|
||||||
}),
|
}),
|
||||||
|
@ -24,7 +25,8 @@ const registration = {
|
||||||
confirm: {
|
confirm: {
|
||||||
required,
|
required,
|
||||||
sameAsPassword: sameAs('password')
|
sameAsPassword: sameAs('password')
|
||||||
}
|
},
|
||||||
|
reason: { required: requiredIf(() => this.accountApprovalRequired) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -38,7 +40,10 @@ const registration = {
|
||||||
computed: {
|
computed: {
|
||||||
token () { return this.$route.params.token },
|
token () { return this.$route.params.token },
|
||||||
bioPlaceholder () {
|
bioPlaceholder () {
|
||||||
return this.$t('registration.bio_placeholder').replace(/\s*\n\s*/g, ' \n')
|
return this.replaceNewlines(this.$t('registration.bio_placeholder'))
|
||||||
|
},
|
||||||
|
reasonPlaceholder () {
|
||||||
|
return this.replaceNewlines(this.$t('registration.reason_placeholder'))
|
||||||
},
|
},
|
||||||
...mapState({
|
...mapState({
|
||||||
registrationOpen: (state) => state.instance.registrationOpen,
|
registrationOpen: (state) => state.instance.registrationOpen,
|
||||||
|
@ -46,7 +51,8 @@ const registration = {
|
||||||
isPending: (state) => state.users.signUpPending,
|
isPending: (state) => state.users.signUpPending,
|
||||||
serverValidationErrors: (state) => state.users.signUpErrors,
|
serverValidationErrors: (state) => state.users.signUpErrors,
|
||||||
termsOfService: (state) => state.instance.tos,
|
termsOfService: (state) => state.instance.tos,
|
||||||
accountActivationRequired: (state) => state.instance.accountActivationRequired
|
accountActivationRequired: (state) => state.instance.accountActivationRequired,
|
||||||
|
accountApprovalRequired: (state) => state.instance.accountApprovalRequired
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -73,6 +79,9 @@ const registration = {
|
||||||
},
|
},
|
||||||
setCaptcha () {
|
setCaptcha () {
|
||||||
this.getCaptcha().then(cpt => { this.captcha = cpt })
|
this.getCaptcha().then(cpt => { this.captcha = cpt })
|
||||||
|
},
|
||||||
|
replaceNewlines (str) {
|
||||||
|
return str.replace(/\s*\n\s*/g, ' \n')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,6 +162,23 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="accountApprovalRequired"
|
||||||
|
class="form-group"
|
||||||
|
>
|
||||||
|
<label
|
||||||
|
class="form--label"
|
||||||
|
for="reason"
|
||||||
|
>{{ $t('registration.reason') }}</label>
|
||||||
|
<textarea
|
||||||
|
id="reason"
|
||||||
|
v-model="user.reason"
|
||||||
|
:disabled="isPending"
|
||||||
|
class="form-control"
|
||||||
|
:placeholder="reasonPlaceholder"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="captcha.type != 'none'"
|
v-if="captcha.type != 'none'"
|
||||||
id="captcha-group"
|
id="captcha-group"
|
||||||
|
|
|
@ -228,6 +228,8 @@
|
||||||
"username_placeholder": "e.g. lain",
|
"username_placeholder": "e.g. lain",
|
||||||
"fullname_placeholder": "e.g. Lain Iwakura",
|
"fullname_placeholder": "e.g. Lain Iwakura",
|
||||||
"bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.",
|
"bio_placeholder": "e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired.",
|
||||||
|
"reason": "Reason to register",
|
||||||
|
"reason_placeholder": "This instance approves registrations manually.\nLet the administration know why you want to register.",
|
||||||
"validations": {
|
"validations": {
|
||||||
"username_required": "cannot be left blank",
|
"username_required": "cannot be left blank",
|
||||||
"fullname_required": "cannot be left blank",
|
"fullname_required": "cannot be left blank",
|
||||||
|
|
Loading…
Reference in a new issue