Merge branch 'feature/locked-accounts' into 'develop'
Feature/locked accounts See merge request pleroma/pleroma-fe!274
This commit is contained in:
commit
6ea5cfe71e
14 changed files with 135 additions and 13 deletions
src/components
follow_requests
nav_panel
user_card
user_card_content
user_settings
23
src/components/follow_requests/follow_requests.js
Normal file
23
src/components/follow_requests/follow_requests.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
import UserCard from '../user_card/user_card.vue'
|
||||
|
||||
const FollowRequests = {
|
||||
components: {
|
||||
UserCard
|
||||
},
|
||||
created () {
|
||||
this.updateRequests()
|
||||
},
|
||||
computed: {
|
||||
requests () {
|
||||
return this.$store.state.api.followRequests
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateRequests () {
|
||||
this.$store.state.api.backendInteractor.fetchFollowRequests()
|
||||
.then((requests) => { this.$store.commit('setFollowRequests', requests) })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default FollowRequests
|
12
src/components/follow_requests/follow_requests.vue
Normal file
12
src/components/follow_requests/follow_requests.vue
Normal file
|
@ -0,0 +1,12 @@
|
|||
<template>
|
||||
<div class="settings panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{$t('nav.friend_requests')}}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<user-card v-for="request in requests" :key="request.id" :user="request" :showFollows="false" :showApproval="true"></user-card>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./follow_requests.js"></script>
|
|
@ -12,6 +12,11 @@
|
|||
{{ $t("nav.mentions") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li v-if='currentUser && currentUser.locked'>
|
||||
<router-link to='/friend-requests'>
|
||||
{{ $t("nav.friend_requests") }}
|
||||
</router-link>
|
||||
</li>
|
||||
<li>
|
||||
<router-link to='/main/public'>
|
||||
{{ $t("nav.public_tl") }}
|
||||
|
|
|
@ -3,7 +3,8 @@ import UserCardContent from '../user_card_content/user_card_content.vue'
|
|||
const UserCard = {
|
||||
props: [
|
||||
'user',
|
||||
'showFollows'
|
||||
'showFollows',
|
||||
'showApproval'
|
||||
],
|
||||
data () {
|
||||
return {
|
||||
|
@ -16,6 +17,14 @@ const UserCard = {
|
|||
methods: {
|
||||
toggleUserExpanded () {
|
||||
this.userExpanded = !this.userExpanded
|
||||
},
|
||||
approveUser () {
|
||||
this.$store.state.api.backendInteractor.approveUser(this.user.id)
|
||||
this.$store.dispatch('removeFollowRequest', this.user)
|
||||
},
|
||||
denyUser () {
|
||||
this.$store.state.api.backendInteractor.denyUser(this.user.id)
|
||||
this.$store.dispatch('removeFollowRequest', this.user)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,10 @@
|
|||
</div>
|
||||
<a :href="user.statusnet_profile_url" target="blank"><div class="user-screen-name">@{{ user.screen_name }}</div></a>
|
||||
</div>
|
||||
<div class="approval" v-if="showApproval">
|
||||
<button class="btn btn-default" @click="approveUser">{{ $t('user_card.approve') }}</button>
|
||||
<button class="btn btn-default" @click="denyUser">{{ $t('user_card.deny') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -75,4 +79,11 @@
|
|||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.approval {
|
||||
button {
|
||||
width: 100%;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<div class="name-and-screen-name">
|
||||
<div :title="user.name" class='user-name'>{{user.name}}</div>
|
||||
<router-link class='user-screen-name':to="{ name: 'user-profile', params: { id: user.id } }">
|
||||
<span>@{{user.screen_name}}</span>
|
||||
<span>@{{user.screen_name}}</span><span v-if="user.locked"><i class="icon icon-lock"></i></span>
|
||||
<span class="dailyAvg">{{dailyAvg}} {{ $t('user_card.per_day') }}</span>
|
||||
</router-link>
|
||||
</div>
|
||||
|
|
|
@ -5,6 +5,7 @@ const UserSettings = {
|
|||
return {
|
||||
newname: this.$store.state.users.currentUser.name,
|
||||
newbio: this.$store.state.users.currentUser.description,
|
||||
newlocked: this.$store.state.users.currentUser.locked,
|
||||
followList: null,
|
||||
followImportError: false,
|
||||
followsImported: false,
|
||||
|
@ -34,7 +35,8 @@ const UserSettings = {
|
|||
updateProfile () {
|
||||
const name = this.newname
|
||||
const description = this.newbio
|
||||
this.$store.state.api.backendInteractor.updateProfile({params: {name, description}}).then((user) => {
|
||||
const locked = this.newlocked
|
||||
this.$store.state.api.backendInteractor.updateProfile({params: {name, description, locked}}).then((user) => {
|
||||
if (!user.error) {
|
||||
this.$store.commit('addNewUsers', [user])
|
||||
this.$store.commit('setCurrentUser', user)
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
<input class='name-changer' id='username' v-model="newname"></input>
|
||||
<p>{{$t('settings.bio')}}</p>
|
||||
<textarea class="bio" v-model="newbio"></textarea>
|
||||
<div class="setting-item">
|
||||
<input type="checkbox" v-model="newlocked" id="account-locked">
|
||||
<label for="account-locked">{{$t('settings.lock_account_description')}}</label>
|
||||
</div>
|
||||
<button :disabled='newname.length <= 0' class="btn btn-default" @click="updateProfile">{{$t('general.submit')}}</button>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue