commit: c2b7aff3257530654e1e7aae39136d1d34d07c4f
parent: 9890e414402ce19ab012d3fc8046bd6af537fd5c
Author: Shpuld Shpludson <shp@cock.li>
Date: Thu, 21 Mar 2019 15:46:05 +0000
Merge branch 'issue-444-remote-follow' into 'develop'
#444 - show `remote follow` button when logged out
Closes #444
See merge request pleroma/pleroma-fe!692
Diffstat:
6 files changed, 51 insertions(+), 18 deletions(-)
diff --git a/src/components/follow_card/follow_card.js b/src/components/follow_card/follow_card.js
@@ -1,4 +1,5 @@
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
+import RemoteFollow from '../remote_follow/remote_follow.vue'
import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'
const FollowCard = {
@@ -14,13 +15,17 @@ const FollowCard = {
}
},
components: {
- BasicUserCard
+ BasicUserCard,
+ RemoteFollow
},
computed: {
isMe () { return this.$store.state.users.currentUser.id === this.user.id },
following () { return this.updated ? this.updated.following : this.user.following },
showFollow () {
return !this.following || this.updated && !this.updated.following
+ },
+ loggedIn () {
+ return this.$store.state.users.currentUser
}
},
methods: {
diff --git a/src/components/follow_card/follow_card.vue b/src/components/follow_card/follow_card.vue
@@ -4,9 +4,12 @@
<span class="faint" v-if="!noFollowsYou && user.follows_you">
{{ isMe ? $t('user_card.its_you') : $t('user_card.follows_you') }}
</span>
+ <div class="btn-follow" v-if="showFollow && !loggedIn">
+ <RemoteFollow :user="user" />
+ </div>
<button
- v-if="showFollow"
- class="btn btn-default"
+ v-if="showFollow && loggedIn"
+ class="btn btn-default btn-follow"
@click="followUser"
:disabled="inProgress"
:title="requestSent ? $t('user_card.follow_again') : ''"
@@ -44,7 +47,7 @@
flex-wrap: wrap;
line-height: 1.5em;
- .btn {
+ .btn-follow {
margin-top: 0.5em;
margin-left: auto;
width: 10em;
diff --git a/src/components/remote_follow/remote_follow.js b/src/components/remote_follow/remote_follow.js
@@ -0,0 +1,10 @@
+export default {
+ props: [ 'user' ],
+ computed: {
+ subscribeUrl () {
+ // eslint-disable-next-line no-undef
+ const serverUrl = new URL(this.user.statusnet_profile_url)
+ return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`
+ }
+ }
+}
diff --git a/src/components/remote_follow/remote_follow.vue b/src/components/remote_follow/remote_follow.vue
@@ -0,0 +1,24 @@
+<template>
+ <div class="remote-follow">
+ <form method="POST" :action='subscribeUrl'>
+ <input type="hidden" name="nickname" :value="user.screen_name">
+ <input type="hidden" name="profile" value="">
+ <button click="submit" class="remote-button">
+ {{ $t('user_card.remote_follow') }}
+ </button>
+ </form>
+ </div>
+</template>
+
+<script src="./remote_follow.js"></script>
+
+<style lang="scss">
+.remote-follow {
+ max-width: 220px;
+
+ .remote-button {
+ width: 100%;
+ min-height: 28px;
+ }
+}
+</style>
diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js
@@ -1,4 +1,5 @@
import UserAvatar from '../user_avatar/user_avatar.vue'
+import RemoteFollow from '../remote_follow/remote_follow.vue'
import { hex2rgb } from '../../services/color_convert/color_convert.js'
import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
@@ -99,7 +100,8 @@ export default {
}
},
components: {
- UserAvatar
+ UserAvatar,
+ RemoteFollow
},
methods: {
followUser () {
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
@@ -84,14 +84,8 @@
</button>
</span>
</div>
- <div class="remote-follow" v-if='!loggedIn && user.is_local'>
- <form method="POST" :action='subscribeUrl'>
- <input type="hidden" name="nickname" :value="user.screen_name">
- <input type="hidden" name="profile" value="">
- <button click="submit" class="remote-button">
- {{ $t('user_card.remote_follow') }}
- </button>
- </form>
+ <div v-if='!loggedIn && user.is_local'>
+ <RemoteFollow :user="user" />
</div>
<div class='block' v-if='isOtherUser && loggedIn'>
<span v-if='user.statusnet_blocking'>
@@ -375,11 +369,6 @@
min-height: 28px;
}
- .remote-follow {
- max-width: 220px;
- min-height: 28px;
- }
-
.follow {
max-width: 220px;
min-height: 28px;