From 35db61f1b4f00640f26d31135b91d42543795825 Mon Sep 17 00:00:00 2001
From: MeiMei <30769358+mei23@users.noreply.github.com>
Date: Sat, 17 Nov 2018 13:21:40 +0900
Subject: [PATCH] To able to store local only visibilities (#3298)
---
.../desktop/views/components/post-form.vue | 25 +++++++++------
.../app/desktop/views/components/settings.vue | 3 ++
.../app/mobile/views/components/post-form.vue | 32 ++++++++-----------
.../app/mobile/views/pages/settings.vue | 3 ++
4 files changed, 36 insertions(+), 27 deletions(-)
diff --git a/src/client/app/desktop/views/components/post-form.vue b/src/client/app/desktop/views/components/post-form.vue
index 2a3b9c151..128470a0d 100644
--- a/src/client/app/desktop/views/components/post-form.vue
+++ b/src/client/app/desktop/views/components/post-form.vue
@@ -111,7 +111,7 @@ export default Vue.extend({
useCw: false,
cw: null,
geo: null,
- visibility: this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility,
+ visibility: 'public',
visibleUsers: [],
localOnly: false,
autocomplete: null,
@@ -195,6 +195,9 @@ export default Vue.extend({
});
}
+ // デフォルト公開範囲
+ this.applyVisibility(this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility);
+
// 公開以外へのリプライ時は元の公開範囲を引き継ぐ
if (this.reply && ['home', 'followers', 'specified', 'private'].includes(this.reply.visibility)) {
this.visibility = this.reply.visibility;
@@ -365,17 +368,21 @@ export default Vue.extend({
source: this.$refs.visibilityButton
});
w.$once('chosen', v => {
- const m = v.match(/^local-(.+)/);
- if (m) {
- this.localOnly = true;
- this.visibility = m[1];
- } else {
- this.localOnly = false;
- this.visibility = v;
- }
+ this.applyVisibility(v);
});
},
+ applyVisibility(v :string) {
+ const m = v.match(/^local-(.+)/);
+ if (m) {
+ this.localOnly = true;
+ this.visibility = m[1];
+ } else {
+ this.localOnly = false;
+ this.visibility = v;
+ }
+ },
+
addVisibleUser() {
this.$input({
title: this.$t('enter-username')
diff --git a/src/client/app/desktop/views/components/settings.vue b/src/client/app/desktop/views/components/settings.vue
index 1c3f0e8cc..62106768b 100644
--- a/src/client/app/desktop/views/components/settings.vue
+++ b/src/client/app/desktop/views/components/settings.vue
@@ -85,6 +85,9 @@
+
+
+
diff --git a/src/client/app/mobile/views/components/post-form.vue b/src/client/app/mobile/views/components/post-form.vue
index f941c59d9..de389baf6 100644
--- a/src/client/app/mobile/views/components/post-form.vue
+++ b/src/client/app/mobile/views/components/post-form.vue
@@ -100,7 +100,7 @@ export default Vue.extend({
files: [],
poll: false,
geo: null,
- visibility: this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility,
+ visibility: 'public',
visibleUsers: [],
localOnly: false,
useCw: false,
@@ -184,6 +184,9 @@ export default Vue.extend({
});
}
+ // デフォルト公開範囲
+ this.applyVisibility(this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility);
+
// 公開以外へのリプライ時は元の公開範囲を引き継ぐ
if (this.reply && ['home', 'followers', 'specified', 'private'].includes(this.reply.visibility)) {
this.visibility = this.reply.visibility;
@@ -275,26 +278,19 @@ export default Vue.extend({
compact: true
});
w.$once('chosen', v => {
- const m = v.match(/^local-(.+)/);
- if (m) {
- this.localOnly = true;
- this.visibility = m[1];
- } else {
- this.localOnly = false;
- this.visibility = v;
- }
+ this.applyVisibility(v);
});
},
- addVisibleUser() {
- this.$input({
- title: this.$t('username-prompt')
- }).then(acct => {
- if (acct.startsWith('@')) acct = acct.substr(1);
- this.$root.api('users/show', parseAcct(acct)).then(user => {
- this.visibleUsers.push(user);
- });
- });
+ applyVisibility(v :string) {
+ const m = v.match(/^local-(.+)/);
+ if (m) {
+ this.localOnly = true;
+ this.visibility = m[1];
+ } else {
+ this.localOnly = false;
+ this.visibility = v;
+ }
},
removeVisibleUser(user) {
diff --git a/src/client/app/mobile/views/pages/settings.vue b/src/client/app/mobile/views/pages/settings.vue
index 0d61f39bb..0f5493392 100644
--- a/src/client/app/mobile/views/pages/settings.vue
+++ b/src/client/app/mobile/views/pages/settings.vue
@@ -80,6 +80,9 @@
+
+
+