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 () {
|
async submit () {
|
||||||
this.user.nickname = this.user.username
|
this.user.nickname = this.user.username
|
||||||
this.user.token = this.token
|
this.user.token = this.token
|
||||||
|
|
||||||
this.user.captcha_solution = this.captcha.solution
|
this.user.captcha_solution = this.captcha.solution
|
||||||
this.user.captcha_token = this.captcha.token
|
this.user.captcha_token = this.captcha.token
|
||||||
|
this.user.captcha_answer_data = this.captcha.answer_data
|
||||||
|
|
||||||
this.$v.$touch()
|
this.$v.$touch()
|
||||||
|
|
||||||
|
|
|
@ -76,15 +76,16 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group" id="captcha-group" v-if="captcha.type != 'none'">
|
<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'">
|
<template v-if="captcha.type == 'kocaptcha'">
|
||||||
<img v-bind:src="captcha.url" v-on:click="setCaptcha">
|
<img v-bind:src="captcha.url" v-on:click="setCaptcha">
|
||||||
|
|
||||||
<sub>Click the image to get a new captcha</sub>
|
<sub>{{$t('registration.new_captcha')}}</sub>
|
||||||
<label class='form--label' for='captcha-label'>CAPTCHA</label>
|
|
||||||
|
|
||||||
<input :disabled="isPending"
|
<input :disabled="isPending"
|
||||||
v-model='captcha.solution'
|
v-model='captcha.solution'
|
||||||
class='form-control' id='captcha-answer' type='text'>
|
class='form-control' id='captcha-answer' type='text' autocomplete="off">
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ import Timeline from '../timeline/timeline.vue'
|
||||||
|
|
||||||
const UserProfile = {
|
const UserProfile = {
|
||||||
created () {
|
created () {
|
||||||
debugger
|
|
||||||
this.$store.commit('clearTimeline', { timeline: 'user' })
|
this.$store.commit('clearTimeline', { timeline: 'user' })
|
||||||
this.$store.dispatch('startFetching', ['user', this.fetchBy])
|
this.$store.dispatch('startFetching', ['user', this.fetchBy])
|
||||||
if (!this.user) {
|
if (!this.user) {
|
||||||
|
@ -19,18 +18,24 @@ const UserProfile = {
|
||||||
return this.$store.state.statuses.timelines.user
|
return this.$store.state.statuses.timelines.user
|
||||||
},
|
},
|
||||||
userId () {
|
userId () {
|
||||||
return this.$route.params.id
|
return this.$route.params.id || this.user.id
|
||||||
},
|
},
|
||||||
userName () {
|
userName () {
|
||||||
return this.$route.params.name
|
return this.$route.params.name
|
||||||
},
|
},
|
||||||
|
friends () {
|
||||||
|
return this.user.friends
|
||||||
|
},
|
||||||
|
followers () {
|
||||||
|
return this.user.followers
|
||||||
|
},
|
||||||
user () {
|
user () {
|
||||||
if (this.timeline.statuses[0]) {
|
if (this.timeline.statuses[0]) {
|
||||||
return this.timeline.statuses[0].user
|
return this.timeline.statuses[0].user
|
||||||
} else {
|
} else {
|
||||||
return Object.values(this.$store.state.users.usersObject).filter(user => {
|
return Object.values(this.$store.state.users.usersObject).filter(user => {
|
||||||
return (this.isExternal ? user.id === this.userId : user.screen_name === this.userName)
|
return (this.isExternal ? user.id === this.userId : user.screen_name === this.userName)
|
||||||
})[0] || false
|
})[0] || {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fetchBy () {
|
fetchBy () {
|
||||||
|
@ -68,7 +73,7 @@ const UserProfile = {
|
||||||
this.$store.dispatch('startFetching', ['user', this.userId])
|
this.$store.dispatch('startFetching', ['user', this.userId])
|
||||||
},
|
},
|
||||||
user () {
|
user () {
|
||||||
if (!this.user.followers) {
|
if (this.user.id && !this.user.followers) {
|
||||||
this.fetchFollowers()
|
this.fetchFollowers()
|
||||||
this.fetchFriends()
|
this.fetchFriends()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<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>
|
<user-card-content :user="user" :switcher="true" :selected="timeline.viewing"></user-card-content>
|
||||||
<tab-switcher>
|
<tab-switcher>
|
||||||
<Timeline :label="$t('user_card.statuses')" :embedded="true" :title="$t('user_profile.timeline_title')" :timeline="timeline" :timeline-name="'user'" :user-id="userId"/>
|
<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",
|
"password_confirm": "Password confirmation",
|
||||||
"registration": "Registration",
|
"registration": "Registration",
|
||||||
"token": "Invite token",
|
"token": "Invite token",
|
||||||
|
"captcha": "CAPTCHA",
|
||||||
|
"new_captcha": "Click the image to get a new captcha",
|
||||||
"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