From 6184c88ac70b33e66a87222142344f693406bd87 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 3 Mar 2019 15:15:41 +0200 Subject: Initial work on deprecating scopeModesEnabled in favor of minimalScopeMode --- .../post_status_form/post_status_form.js | 27 ++++++++++++---------- .../post_status_form/post_status_form.vue | 13 ++++++----- 2 files changed, 22 insertions(+), 18 deletions(-) (limited to 'src/components/post_status_form') diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index c28c51bf..b0882f70 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -1,5 +1,6 @@ import statusPoster from '../../services/status_poster/status_poster.service.js' import MediaUpload from '../media_upload/media_upload.vue' +import ScopeSelector from '../scope_selector/scope_selector.vue' import fileTypeService from '../../services/file_type/file_type.service.js' import Completion from '../../services/completion/completion.js' import { take, filter, reject, map, uniqBy } from 'lodash' @@ -28,7 +29,8 @@ const PostStatusForm = { 'subject' ], components: { - MediaUpload + MediaUpload, + ScopeSelector }, mounted () { this.resize(this.$refs.textarea) @@ -78,14 +80,6 @@ const PostStatusForm = { } }, computed: { - vis () { - return { - public: { selected: this.newStatus.visibility === 'public' }, - unlisted: { selected: this.newStatus.visibility === 'unlisted' }, - private: { selected: this.newStatus.visibility === 'private' }, - direct: { selected: this.newStatus.visibility === 'direct' } - } - }, candidates () { const firstchar = this.textAtCaret.charAt(0) if (firstchar === '@') { @@ -133,6 +127,15 @@ const PostStatusForm = { users () { return this.$store.state.users.users }, + userDefaultScope () { + return this.$store.state.users.currentUser.default_scope + }, + showAllScopes () { + const minimalScopesMode = typeof this.$store.state.config.minimalScopesMode === 'undefined' + ? this.$store.state.instance.minimalScopesMode + : this.$store.state.config.minimalScopesMode + return !minimalScopesMode + }, emoji () { return this.$store.state.instance.emoji || [] }, @@ -157,8 +160,8 @@ const PostStatusForm = { isOverLengthLimit () { return this.hasStatusLengthLimit && (this.charactersLeft < 0) }, - scopeOptionsEnabled () { - return this.$store.state.instance.scopeOptionsEnabled + scopeOptionsMinimal () { + return this.$store.state.instance.scopeOptionsMinimal }, alwaysShowSubject () { if (typeof this.$store.state.config.alwaysShowSubjectInput !== 'undefined') { @@ -166,7 +169,7 @@ const PostStatusForm = { } else if (typeof this.$store.state.instance.alwaysShowSubjectInput !== 'undefined') { return this.$store.state.instance.alwaysShowSubjectInput } else { - return this.$store.state.instance.scopeOptionsEnabled + return true } }, formattingOptionsEnabled () { diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 5085570b..b3d731cd 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -44,12 +44,13 @@ -
- - - - -
+
-- cgit v1.2.3-70-g09d2 From bf927122df94853593a000ae873e8c840674258f Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sat, 30 Mar 2019 12:25:23 +0200 Subject: Review --- BREAKING_CHANGES.md | 6 ++++++ src/components/post_status_form/post_status_form.vue | 1 - src/components/scope_selector/scope_selector.js | 3 +-- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 BREAKING_CHANGES.md (limited to 'src/components/post_status_form') diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md new file mode 100644 index 00000000..915aa74c --- /dev/null +++ b/BREAKING_CHANGES.md @@ -0,0 +1,6 @@ +# v1.0 +## Removed features/radically changed behavior +* As of !633, `scopeOptions` is no longer available and instead is changed for `scopeOptionsMinimal` (default: `false`) +Reasoning is that scopeOptions option originally existed mostly as a backwards-compatibility with GNU Social which only had `public` scope available and using scope selector would''t work. Since at some point we dropped GNU Social support, this option was mostly a nuisance (being default `false`'), however some people think scopes are an annoyance to a certain degree and want as less of that feature as possible. +Solution - to only show minimal set among: *Direct*, *User default* and *Scope of post replying to*. This also makes it impossible to reply to a DM with a non-DM post from UI. +*This setting is admin-default, user-configurable. Admin can choose different default for their instance but user can override it.* diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index b3d731cd..8beb73a9 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -46,7 +46,6 @@ Date: Sat, 30 Mar 2019 12:41:42 +0200 Subject: aaaaggghh --- BREAKING_CHANGES.md | 4 ++-- src/components/features_panel/features_panel.js | 2 +- src/components/post_status_form/post_status_form.js | 4 ++-- src/components/user_settings/user_settings.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/components/post_status_form') diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index 45f7c74b..924c38da 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -1,7 +1,7 @@ # v1.0 ## Removed features/radically changed behavior -### scopeOptionsMinimal -As of !633, `scopeOptions` is no longer available and instead is changed for `scopeOptionsMinimal` (default: `false`) +### minimalScopesMode +As of !633, `scopeOptions` is no longer available and instead is changed for `minimalScopesMode` (default: `false`) Reasoning is that scopeOptions option originally existed mostly as a backwards-compatibility with GNU Social which only had `public` scope available and using scope selector would''t work. Since at some point we dropped GNU Social support, this option was mostly a nuisance (being default `false`'), however some people think scopes are an annoyance to a certain degree and want as less of that feature as possible. diff --git a/src/components/features_panel/features_panel.js b/src/components/features_panel/features_panel.js index 0a7234cc..5f0b7b25 100644 --- a/src/components/features_panel/features_panel.js +++ b/src/components/features_panel/features_panel.js @@ -6,7 +6,7 @@ const FeaturesPanel = { gopher: function () { return this.$store.state.instance.gopherAvailable }, whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled }, mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable }, - scopeOptionsMinimal: function () { return this.$store.state.instance.scopeOptionsMinimal }, + minimalScopesMode: function () { return this.$store.state.instance.minimalScopesMode }, textlimit: function () { return this.$store.state.instance.textlimit } } } diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 499cbbfb..40e2610e 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -162,8 +162,8 @@ const PostStatusForm = { isOverLengthLimit () { return this.hasStatusLengthLimit && (this.charactersLeft < 0) }, - scopeOptionsMinimal () { - return this.$store.state.instance.scopeOptionsMinimal + minimalScopesMode () { + return this.$store.state.instance.minimalScopesMode }, alwaysShowSubject () { if (typeof this.$store.state.config.alwaysShowSubjectInput !== 'undefined') { diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js index 4b277b6c..b6a0479d 100644 --- a/src/components/user_settings/user_settings.js +++ b/src/components/user_settings/user_settings.js @@ -82,8 +82,8 @@ const UserSettings = { pleromaBackend () { return this.$store.state.instance.pleromaBackend }, - scopeOptionsMinimal () { - return this.$store.state.instance.scopeOptionsMinimal + minimalScopesMode () { + return this.$store.state.instance.minimalScopesMode }, vis () { return { -- cgit v1.2.3-70-g09d2 From c9a9b3122db9c2c089e36930ed2a252f80de71cd Mon Sep 17 00:00:00 2001 From: dave Date: Tue, 2 Apr 2019 10:26:14 -0400 Subject: #469 - DM warning text should vary based on BE setting --- src/boot/after_store.js | 3 ++- src/components/post_status_form/post_status_form.js | 4 ++++ src/components/post_status_form/post_status_form.vue | 2 +- src/modules/instance.js | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src/components/post_status_form') diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 862a534d..f2c1aa0f 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -9,12 +9,13 @@ const getStatusnetConfig = async ({ store }) => { const res = await window.fetch('/api/statusnet/config.json') if (res.ok) { const data = await res.json() - const { name, closed: registrationClosed, textlimit, uploadlimit, server, vapidPublicKey } = data.site + const { name, closed: registrationClosed, textlimit, uploadlimit, server, vapidPublicKey, safeDMMentionsEnabled } = data.site store.dispatch('setInstanceOption', { name: 'name', value: name }) store.dispatch('setInstanceOption', { name: 'registrationOpen', value: (registrationClosed === '0') }) store.dispatch('setInstanceOption', { name: 'textlimit', value: parseInt(textlimit) }) store.dispatch('setInstanceOption', { name: 'server', value: server }) + store.dispatch('setInstanceOption', { name: 'safeDM', value: safeDMMentionsEnabled !== '0' }) // TODO: default values for this stuff, added if to not make it break on // my dev config out of the box. diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 40e2610e..d52abeee 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -179,6 +179,10 @@ const PostStatusForm = { }, postFormats () { return this.$store.state.instance.postFormats || [] + }, + showDirectWarning () { + console.log(this.$store.state.instance) + return this.$store.state.instance.safeDM && this.newStatus.visibility === 'direct' } }, methods: { diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 3d3a1082..2f70a2ad 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -9,7 +9,7 @@ class="visibility-notice"> {{ $t('post_status.account_not_locked_warning_link') }} -

{{ $t('post_status.direct_warning') }}

+

{{ $t('post_status.direct_warning') }}

Date: Tue, 2 Apr 2019 10:28:38 -0400 Subject: #469 - clean up --- src/components/post_status_form/post_status_form.js | 1 - 1 file changed, 1 deletion(-) (limited to 'src/components/post_status_form') diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index d52abeee..e0bb191c 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -181,7 +181,6 @@ const PostStatusForm = { return this.$store.state.instance.postFormats || [] }, showDirectWarning () { - console.log(this.$store.state.instance) return this.$store.state.instance.safeDM && this.newStatus.visibility === 'direct' } }, -- cgit v1.2.3-70-g09d2 From 67258571c59c9e037d121b807f0a75c26e612c01 Mon Sep 17 00:00:00 2001 From: dave Date: Tue, 2 Apr 2019 11:19:45 -0400 Subject: #469 - update behavior of safe_dm --- src/components/post_status_form/post_status_form.js | 4 ++-- src/components/post_status_form/post_status_form.vue | 7 +++++-- src/i18n/en.json | 3 ++- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src/components/post_status_form') diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index e0bb191c..c65c27e2 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -180,8 +180,8 @@ const PostStatusForm = { postFormats () { return this.$store.state.instance.postFormats || [] }, - showDirectWarning () { - return this.$store.state.instance.safeDM && this.newStatus.visibility === 'direct' + safeDMEnabled () { + return this.$store.state.instance.safeDM } }, methods: { diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 2f70a2ad..1ce2b647 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -3,13 +3,16 @@
{{ $t('post_status.account_not_locked_warning_link') }} -

{{ $t('post_status.direct_warning') }}

+

+ {{ $t('post_status.direct_warning_to_first_only') }} + {{ $t('post_status.direct_warning_to_all') }} +