aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2019-12-08 16:07:30 +0200
committerHenry Jameson <me@hjkos.com>2019-12-08 16:07:30 +0200
commit1b1620a7551293234d000022886c53e4520517a1 (patch)
tree15e272b21c7e2c9ea5758c05b3cbcd3cd4a06a97 /src
parentff95d865d223fed5bab2a4d72ff3a22f014d3c56 (diff)
parente60d9f2d5ae7de753cc9d3e74bd675ec79c9219e (diff)
Merge remote-tracking branch 'upstream/develop' into streaming
* upstream/develop: Remove whitespace hack on empty post content Change output directory of fontello add html-webpack-plugin to karma config use another fork of fontello-webpack-plugin add animate-spin class remove needless code use another approach for versioning font files versioning the font resources through webpack fix "can't find property of undefined" errors in mrf transparency panel move mention button right next to mute button restore muted users collapsing logic on other user’s profiles
Diffstat (limited to 'src')
-rw-r--r--src/App.scss15
-rw-r--r--src/components/account_actions/account_actions.js3
-rw-r--r--src/components/account_actions/account_actions.vue18
-rw-r--r--src/components/conversation/conversation.js3
-rw-r--r--src/components/conversation/conversation.vue1
-rw-r--r--src/components/mrf_transparency_panel/mrf_transparency_panel.js31
-rw-r--r--src/components/mrf_transparency_panel/mrf_transparency_panel.vue4
-rw-r--r--src/components/post_status_form/post_status_form.js4
-rw-r--r--src/components/status/status.js5
-rw-r--r--src/components/timeline/timeline.vue2
-rw-r--r--src/components/user_card/user_card.js3
-rw-r--r--src/components/user_card/user_card.vue8
12 files changed, 63 insertions, 34 deletions
diff --git a/src/App.scss b/src/App.scss
index 310962b8..925913f2 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -855,3 +855,18 @@ nav {
.btn.btn-default {
min-height: 28px;
}
+
+.animate-spin {
+ animation: spin 2s infinite linear;
+ display: inline-block;
+}
+
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(359deg);
+ }
+}
diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js
index 204d506a..d2153680 100644
--- a/src/components/account_actions/account_actions.js
+++ b/src/components/account_actions/account_actions.js
@@ -25,9 +25,6 @@ const AccountActions = {
},
reportUser () {
this.$store.dispatch('openUserReportingModal', this.user.id)
- },
- mentionUser () {
- this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })
}
}
}
diff --git a/src/components/account_actions/account_actions.vue b/src/components/account_actions/account_actions.vue
index 046cba93..d3235be1 100644
--- a/src/components/account_actions/account_actions.vue
+++ b/src/components/account_actions/account_actions.vue
@@ -9,17 +9,7 @@
>
<div slot="popover">
<div class="dropdown-menu">
- <button
- class="btn btn-default btn-block dropdown-item"
- @click="mentionUser"
- >
- {{ $t('user_card.mention') }}
- </button>
<template v-if="user.following">
- <div
- role="separator"
- class="dropdown-divider"
- />
<button
v-if="user.showing_reblogs"
class="btn btn-default dropdown-item"
@@ -34,11 +24,11 @@
>
{{ $t('user_card.show_repeats') }}
</button>
+ <div
+ role="separator"
+ class="dropdown-divider"
+ />
</template>
- <div
- role="separator"
- class="dropdown-divider"
- />
<button
v-if="user.statusnet_blocking"
class="btn btn-default btn-block dropdown-item"
diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js
index 72ee9c39..08283fff 100644
--- a/src/components/conversation/conversation.js
+++ b/src/components/conversation/conversation.js
@@ -43,7 +43,8 @@ const conversation = {
'collapsable',
'isPage',
'pinnedStatusIdsObject',
- 'inProfile'
+ 'inProfile',
+ 'profileUserId'
],
created () {
if (this.isPage) {
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue
index 0f1de55f..2e48240a 100644
--- a/src/components/conversation/conversation.vue
+++ b/src/components/conversation/conversation.vue
@@ -27,6 +27,7 @@
:highlight="getHighlight()"
:replies="getReplies(status.id)"
:in-profile="inProfile"
+ :profile-user-id="profileUserId"
class="status-fadein panel-body"
@goto="setHighlight"
@toggleExpanded="toggleExpanded"
diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.js b/src/components/mrf_transparency_panel/mrf_transparency_panel.js
index 20f8a08a..6a1baec8 100644
--- a/src/components/mrf_transparency_panel/mrf_transparency_panel.js
+++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.js
@@ -1,16 +1,27 @@
import { mapState } from 'vuex'
+import { get } from 'lodash'
const MRFTransparencyPanel = {
- computed: mapState({
- federationPolicy: state => state.instance.federationPolicy,
- mrfPolicies: state => state.instance.federationPolicy.mrf_policies,
- acceptInstances: state => state.instance.federationPolicy.mrf_simple.accept,
- rejectInstances: state => state.instance.federationPolicy.mrf_simple.reject,
- quarantineInstances: state => state.instance.federationPolicy.quarantined_instances,
- ftlRemovalInstances: state => state.instance.federationPolicy.mrf_simple.federated_timeline_removal,
- mediaNsfwInstances: state => state.instance.federationPolicy.mrf_simple.media_nsfw,
- mediaRemovalInstances: state => state.instance.federationPolicy.mrf_simple.media_removal
- })
+ computed: {
+ ...mapState({
+ federationPolicy: state => get(state, 'instance.federationPolicy'),
+ mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []),
+ quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []),
+ acceptInstances: state => get(state, 'instance.federationPolicy.mrf_simple.accept', []),
+ rejectInstances: state => get(state, 'instance.federationPolicy.mrf_simple.reject', []),
+ ftlRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),
+ mediaNsfwInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),
+ mediaRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_removal', [])
+ }),
+ hasInstanceSpecificPolicies () {
+ return this.quarantineInstances.length ||
+ this.acceptInstances.length ||
+ this.rejectInstances.length ||
+ this.ftlRemovalInstances.length ||
+ this.mediaNsfwInstances.length ||
+ this.mediaRemovalInstances.length
+ }
+ }
}
export default MRFTransparencyPanel
diff --git a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue
index 2640d68c..d6495dc6 100644
--- a/src/components/mrf_transparency_panel/mrf_transparency_panel.vue
+++ b/src/components/mrf_transparency_panel/mrf_transparency_panel.vue
@@ -22,7 +22,9 @@
/>
</ul>
- <h2>{{ $t("about.mrf_policy_simple") }}</h2>
+ <h2 v-if="hasInstanceSpecificPolicies">
+ {{ $t("about.mrf_policy_simple") }}
+ </h2>
<div v-if="acceptInstances.length">
<h4>{{ $t("about.mrf_policy_simple_accept") }}</h4>
diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index af6299e4..74067fef 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -169,9 +169,7 @@ const PostStatusForm = {
if (this.submitDisabled) { return }
if (this.newStatus.status === '') {
- if (this.newStatus.files.length > 0) {
- this.newStatus.status = '\u200b' // hack
- } else {
+ if (this.newStatus.files.length === 0) {
this.error = 'Cannot post an empty status with no files'
return
}
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 714ea6d2..c49e729c 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -33,7 +33,8 @@ const Status = {
'noHeading',
'inlineExpanded',
'showPinned',
- 'inProfile'
+ 'inProfile',
+ 'profileUserId'
],
data () {
return {
@@ -115,7 +116,7 @@ const Status = {
return hits
},
- muted () { return !this.unmuted && ((!this.inProfile && this.status.user.muted) || (!this.inConversation && this.status.thread_muted) || this.muteWordHits.length > 0) },
+ muted () { return !this.unmuted && ((!(this.inProfile && this.status.user.id === this.profileUserId) && this.status.user.muted) || (!this.inConversation && this.status.thread_muted) || this.muteWordHits.length > 0) },
hideFilteredStatuses () {
return this.mergedConfig.hideFilteredStatuses
},
diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue
index f1d3903a..93f6f570 100644
--- a/src/components/timeline/timeline.vue
+++ b/src/components/timeline/timeline.vue
@@ -37,6 +37,7 @@
:collapsable="true"
:pinned-status-ids-object="pinnedStatusIdsObject"
:in-profile="inProfile"
+ :profile-user-id="userId"
/>
</template>
<template v-for="status in timeline.visibleStatuses">
@@ -47,6 +48,7 @@
:status-id="status.id"
:collapsable="true"
:in-profile="inProfile"
+ :profile-user-id="userId"
/>
</template>
</div>
diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js
index a9278200..2f649910 100644
--- a/src/components/user_card/user_card.js
+++ b/src/components/user_card/user_card.js
@@ -149,6 +149,9 @@ export default {
}
this.$store.dispatch('setMedia', [attachment])
this.$store.dispatch('setCurrent', attachment)
+ },
+ mentionUser () {
+ this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })
}
}
}
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
index 96acf610..93d55fff 100644
--- a/src/components/user_card/user_card.vue
+++ b/src/components/user_card/user_card.vue
@@ -175,6 +175,14 @@
{{ $t('user_card.mute') }}
</button>
</div>
+ <div>
+ <button
+ class="btn btn-default btn-block"
+ @click="mentionUser"
+ >
+ {{ $t('user_card.mention') }}
+ </button>
+ </div>
<ModerationTools
v-if="loggedIn.role === &quot;admin&quot;"
:user="user"