logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe
commit: cdbcf569f8a5544b1c2d86e8adb616860f99c478
parent: 7ab7ac7be63603f4637c75ed5424c045d4566b1f
Author: lambda <pleromagit@rogerbraun.net>
Date:   Wed,  8 Nov 2017 07:02:16 +0000

Merge branch 'feature/blocks' into 'develop'

Add blocks.

See merge request pleroma/pleroma-fe!130

Diffstat:

Msrc/components/user_card_content/user_card_content.vue22++++++++++++++++++++++
Msrc/i18n/messages.js2++
Msrc/services/api/api.service.js20++++++++++++++++++++
Msrc/services/backend_interactor_service/backend_interactor_service.js10++++++++++
4 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue @@ -46,6 +46,18 @@ </button> </span> </div> + <div class='block' v-if='isOtherUser'> + <span v-if='user.statusnet_blocking'> + <button @click="unblockUser" class="base04 base00-background pressed"> + {{ $t('user_card.blocked') }} + </button> + </span> + <span v-if='!user.statusnet_blocking'> + <button @click="blockUser" class="base05 base02-background"> + {{ $t('user_card.block') }} + </button> + </span> + </div> </div> </div> </div> @@ -113,6 +125,16 @@ store.state.api.backendInteractor.unfollowUser(this.user.id) .then((unfollowedUser) => store.commit('addNewUsers', [unfollowedUser])) }, + blockUser () { + const store = this.$store + store.state.api.backendInteractor.blockUser(this.user.id) + .then((blockedUser) => store.commit('addNewUsers', [blockedUser])) + }, + unblockUser () { + const store = this.$store + store.state.api.backendInteractor.unblockUser(this.user.id) + .then((unblockedUser) => store.commit('addNewUsers', [unblockedUser])) + }, toggleMute () { const store = this.$store store.commit('setMuted', {user: this.user, muted: !this.user.muted}) diff --git a/src/i18n/messages.js b/src/i18n/messages.js @@ -125,6 +125,8 @@ const en = { follows_you: 'Follows you!', following: 'Following!', follow: 'Follow', + blocked: 'Blocked!', + block: 'Block', statuses: 'Statuses', mute: 'Mute', muted: 'Muted', diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js @@ -26,6 +26,8 @@ const BANNER_UPDATE_URL = '/api/account/update_profile_banner.json' const PROFILE_UPDATE_URL = '/api/account/update_profile.json' const EXTERNAL_PROFILE_URL = '/api/externalprofile/show.json' const QVITTER_USER_TIMELINE_URL = '/api/qvitter/statuses/user_timeline.json' +const BLOCKING_URL = '/api/blocks/create.json' +const UNBLOCKING_URL = '/api/blocks/destroy.json' // const USER_URL = '/api/users/show.json' import { each, map } from 'lodash' @@ -184,6 +186,22 @@ const unfollowUser = ({id, credentials}) => { }).then((data) => data.json()) } +const blockUser = ({id, credentials}) => { + let url = `${BLOCKING_URL}?user_id=${id}` + return fetch(url, { + headers: authHeaders(credentials), + method: 'POST' + }).then((data) => data.json()) +} + +const unblockUser = ({id, credentials}) => { + let url = `${UNBLOCKING_URL}?user_id=${id}` + return fetch(url, { + headers: authHeaders(credentials), + method: 'POST' + }).then((data) => data.json()) +} + const fetchFriends = ({id, credentials}) => { let url = `${FRIENDS_URL}?user_id=${id}` return fetch(url, { headers: authHeaders(credentials) }) @@ -343,6 +361,8 @@ const apiService = { fetchFollowers, followUser, unfollowUser, + blockUser, + unblockUser, favorite, unfavorite, retweet, diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js @@ -30,6 +30,14 @@ const backendInteractorService = (credentials) => { return apiService.unfollowUser({credentials, id}) } + const blockUser = (id) => { + return apiService.blockUser({credentials, id}) + } + + const unblockUser = (id) => { + return apiService.unblockUser({credentials, id}) + } + const startFetching = ({timeline, store, userId = false}) => { return timelineFetcherService.startFetching({timeline, store, credentials, userId}) } @@ -55,6 +63,8 @@ const backendInteractorService = (credentials) => { fetchFollowers, followUser, unfollowUser, + blockUser, + unblockUser, fetchAllFollowing, verifyCredentials: apiService.verifyCredentials, startFetching,