forked from AkkomaGang/akkoma-fe
Merge remote-tracking branch 'upstream/develop' into push_fix
* upstream/develop: Add a translation to the captcha strings in the registration form Small UI improvements for the CAPTCHA field Add encrypted captcha_answer_data for stateless captcha fixes many problems related to user profile
This commit is contained in:
commit
e3cac42cc7
5 changed files with 18 additions and 8 deletions
|
@ -48,8 +48,10 @@ const registration = {
|
|||
async submit () {
|
||||
this.user.nickname = this.user.username
|
||||
this.user.token = this.token
|
||||
|
||||
this.user.captcha_solution = this.captcha.solution
|
||||
this.user.captcha_token = this.captcha.token
|
||||
this.user.captcha_answer_data = this.captcha.answer_data
|
||||
|
||||
this.$v.$touch()
|
||||
|
||||
|
|
|
@ -76,15 +76,16 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group" id="captcha-group" v-if="captcha.type != 'none'">
|
||||
<label class='form--label' for='captcha-label'>$t('captcha')</label>
|
||||
|
||||
<template v-if="captcha.type == 'kocaptcha'">
|
||||
<img v-bind:src="captcha.url" v-on:click="setCaptcha">
|
||||
|
||||
<sub>Click the image to get a new captcha</sub>
|
||||
<label class='form--label' for='captcha-label'>CAPTCHA</label>
|
||||
<sub>{{$t('registration.new_captcha')}}</sub>
|
||||
|
||||
<input :disabled="isPending"
|
||||
v-model='captcha.solution'
|
||||
class='form-control' id='captcha-answer' type='text'>
|
||||
class='form-control' id='captcha-answer' type='text' autocomplete="off">
|
||||
</template>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ import Timeline from '../timeline/timeline.vue'
|
|||
|
||||
const UserProfile = {
|
||||
created () {
|
||||
debugger
|
||||
this.$store.commit('clearTimeline', { timeline: 'user' })
|
||||
this.$store.dispatch('startFetching', ['user', this.fetchBy])
|
||||
if (!this.user) {
|
||||
|
@ -19,18 +18,24 @@ const UserProfile = {
|
|||
return this.$store.state.statuses.timelines.user
|
||||
},
|
||||
userId () {
|
||||
return this.$route.params.id
|
||||
return this.$route.params.id || this.user.id
|
||||
},
|
||||
userName () {
|
||||
return this.$route.params.name
|
||||
},
|
||||
friends () {
|
||||
return this.user.friends
|
||||
},
|
||||
followers () {
|
||||
return this.user.followers
|
||||
},
|
||||
user () {
|
||||
if (this.timeline.statuses[0]) {
|
||||
return this.timeline.statuses[0].user
|
||||
} else {
|
||||
return Object.values(this.$store.state.users.usersObject).filter(user => {
|
||||
return (this.isExternal ? user.id === this.userId : user.screen_name === this.userName)
|
||||
})[0] || false
|
||||
})[0] || {}
|
||||
}
|
||||
},
|
||||
fetchBy () {
|
||||
|
@ -68,7 +73,7 @@ const UserProfile = {
|
|||
this.$store.dispatch('startFetching', ['user', this.userId])
|
||||
},
|
||||
user () {
|
||||
if (!this.user.followers) {
|
||||
if (this.user.id && !this.user.followers) {
|
||||
this.fetchFollowers()
|
||||
this.fetchFriends()
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div>
|
||||
<div v-if="user" class="user-profile panel panel-default">
|
||||
<div v-if="user.id" class="user-profile panel panel-default">
|
||||
<user-card-content :user="user" :switcher="true" :selected="timeline.viewing"></user-card-content>
|
||||
<tab-switcher>
|
||||
<Timeline :label="$t('user_card.statuses')" :embedded="true" :title="$t('user_profile.timeline_title')" :timeline="timeline" :timeline-name="'user'" :user-id="userId"/>
|
||||
|
|
|
@ -74,6 +74,8 @@
|
|||
"password_confirm": "Password confirmation",
|
||||
"registration": "Registration",
|
||||
"token": "Invite token",
|
||||
"captcha": "CAPTCHA",
|
||||
"new_captcha": "Click the image to get a new captcha",
|
||||
"validations": {
|
||||
"username_required": "cannot be left blank",
|
||||
"fullname_required": "cannot be left blank",
|
||||
|
|
Loading…
Reference in a new issue