diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index 7cf65211..853775ed 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -790,16 +790,16 @@ const PostStatusForm = {
this.postStatus(finEvent, finNewStatus, finOpts)
},
handlePost (event, newStatus, opts = {}) {
- if (this.mergedConfig.modalOnPubPost) {
- if (newStatus.visibility === "public" || newStatus.visibility === "unlisted" || newStatus.visibility === "local") {
- finEvent = event
- finNewStatus = newStatus
- finOpts = opts
+ if ((newStatus.visibility === "direct" && this.mergedConfig.modalOnDirectPost)
+ || (newStatus.visibility === "private" && this.mergedConfig.modalOnPrivatePost)
+ || (newStatus.visibility === "unlisted" && this.mergedConfig.modalOnUnlistedPost)
+ || (newStatus.visibility === "public" && this.mergedConfig.modalOnPublicPost)
+ || (newStatus.visibility === "local" && this.mergedConfig.modalOnLocalPost)) {
+ finEvent = event
+ finNewStatus = newStatus
+ finOpts = opts
- this.showingPostConfirmDialog = true
- } else {
- this.postStatus(event, newStatus, opts = {})
- }
+ this.showingPostConfirmDialog = true
} else {
this.postStatus(event, newStatus, opts = {})
}
diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue
index 4b33ec63..46392eb5 100644
--- a/src/components/settings_modal/tabs/general_tab.vue
+++ b/src/components/settings_modal/tabs/general_tab.vue
@@ -320,9 +320,34 @@
{{ $t('settings.confirm_dialogs_deny_follow') }}
+
+
+
+ {{ $t('settings.confirm_visibility_dialogs') }}
+
-
-
- {{ $t('settings.confirm_dialogs_public_post') }}
+
+ {{ $t('settings.confirm_visibility_dialogs_direct_post') }}
+
+
+ -
+
+ {{ $t('settings.confirm_visibility_dialogs_private_post') }}
+
+
+ -
+
+ {{ $t('settings.confirm_visibility_dialogs_unlisted_post') }}
+
+
+ -
+
+ {{ $t('settings.confirm_visibility_dialogs_public_post') }}
+
+
+ -
+
+ {{ $t('settings.confirm_visibility_dialogs_local_post') }}
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 7b75fff5..c85d450e 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -395,7 +395,7 @@
"media_not_sensitive_warning": "You have a Content Warning, but the attachments are not marked as sensitive!",
"new_status": "New post",
"post": "Post",
- "post_confirm": "Are you sure you want to post this publicly?",
+ "post_confirm": "Are you sure you want to post this?",
"post_confirm_accept_button": "Yes, post",
"post_confirm_cancel_button": "No, cancel",
"post_confirm_title": "Confirm post visibility",
@@ -516,7 +516,12 @@
"confirm_dialogs_delete": "Deleting a post",
"confirm_dialogs_deny_follow": "Rejecting a follow request",
"confirm_dialogs_mute": "Muting someone",
- "confirm_dialogs_public_post": "Posting unlisted or publicly",
+ "confirm_visibility_dialogs": "Visibility confirmations:",
+ "confirm_visibility_dialogs_direct_post": "Posting with \"direct\" visibility",
+ "confirm_visibility_dialogs_private_post": "Posting with \"private\" visibility",
+ "confirm_visibility_dialogs_unlisted_post": "Posting with \"unlisted\" visibility",
+ "confirm_visibility_dialogs_public_post": "Posting with \"public\" visibility",
+ "confirm_visibility_dialogs_local_post": "Posting with \"local\" visibility",
"confirm_dialogs_repeat": "Boosting a post",
"confirm_dialogs_unfollow": "Unfollowing someone",
"confirm_new_password": "Confirm new password",
diff --git a/src/modules/config.js b/src/modules/config.js
index d18ee447..4dee4468 100644
--- a/src/modules/config.js
+++ b/src/modules/config.js
@@ -90,7 +90,11 @@ export const defaultState = {
modalOnLogout: undefined, // instance default
modalOnApproveFollow: undefined, // instance default
modalOnDenyFollow: undefined, // instance default
- modalOnPubPost: undefined, // instance default
+ modalOnDirectPost: undefined, // instance default
+ modalOnPrivatePost: undefined, // instance default
+ modalOnUnlistedPost: undefined, // instance default
+ modalOnPublicPost: undefined, // instance default
+ modalOnLocalPost: undefined, // instance default
playVideosInModal: false,
useOneClickNsfw: false,
useContainFit: true,
diff --git a/src/modules/instance.js b/src/modules/instance.js
index d33932bf..e75882b2 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -47,7 +47,11 @@ const defaultState = {
modalOnLogout: true,
modalOnApproveFollow: false,
modalOnDenyFollow: false,
- modalOnPubPost: false,
+ modalOnDirectPost: false,
+ modalOnPrivatePost: false,
+ modalOnUnlistedPost: false,
+ modalOnPublicPost: false,
+ modalOnLocalPost: false,
loginMethod: 'password',
logo: '/static/logo.svg',
logoMargin: '.2em',