diff options
Diffstat (limited to 'src/components/settings_modal/tabs')
| -rw-r--r-- | src/components/settings_modal/tabs/filtering_tab.vue | 46 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/general_tab.js | 11 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/general_tab.vue | 122 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/notifications_tab.js | 8 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/notifications_tab.vue | 72 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/profile_tab.js | 23 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/profile_tab.vue | 124 |
7 files changed, 208 insertions, 198 deletions
diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue index 50ee20e0..cd7f0bc4 100644 --- a/src/components/settings_modal/tabs/filtering_tab.vue +++ b/src/components/settings_modal/tabs/filtering_tab.vue @@ -38,7 +38,7 @@ </ul> </li> <li> - <BooleanSetting path="hidePostStats"> + <BooleanSetting path="hidePostStats" expert="1"> {{ $t('settings.hide_post_stats') }} </BooleanSetting> </li> @@ -59,7 +59,7 @@ <div>{{ $t('settings.filtering_explanation') }}</div> </li> <h3>{{ $t('settings.attachments') }}</h3> - <li> + <li v-if="expertLevel > 0"> <label for="maxThumbnails"> {{ $t('settings.max_thumbnails') }} </label> @@ -84,7 +84,7 @@ </li> </ul> </div> - <div class="setting-item"> + <div class="setting-item" v-if="expertLevel > 0"> <h2>{{ $t('settings.user_profiles') }}</h2> <ul class="setting-list"> <li> @@ -94,46 +94,6 @@ </li> </ul> </div> - <div class="setting-item"> - <h2>{{ $t('settings.notifications') }}</h2> - <ul class="setting-list"> - <li class="select-multiple"> - <span class="label">{{ $t('settings.notification_visibility') }}</span> - <ul class="option-list"> - <li> - <BooleanSetting path="notificationVisibility.likes"> - {{ $t('settings.notification_visibility_likes') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="notificationVisibility.repeats"> - {{ $t('settings.notification_visibility_repeats') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="notificationVisibility.follows"> - {{ $t('settings.notification_visibility_follows') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="notificationVisibility.mentions"> - {{ $t('settings.notification_visibility_mentions') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="notificationVisibility.moves"> - {{ $t('settings.notification_visibility_moves') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="notificationVisibility.emojiReactions"> - {{ $t('settings.notification_visibility_emoji_reactions') }} - </BooleanSetting> - </li> - </ul> - </li> - </ul> - </div> </div> </template> <script src="./filtering_tab.js"></script> diff --git a/src/components/settings_modal/tabs/general_tab.js b/src/components/settings_modal/tabs/general_tab.js index 952c328d..9e4e282f 100644 --- a/src/components/settings_modal/tabs/general_tab.js +++ b/src/components/settings_modal/tabs/general_tab.js @@ -1,8 +1,10 @@ import BooleanSetting from '../helpers/boolean_setting.vue' import ChoiceSetting from '../helpers/choice_setting.vue' +import ScopeSelector from 'src/components/scope_selector/scope_selector.vue' import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue' import SharedComputedObject from '../helpers/shared_computed_object.js' +import ServerSideIndicator from '../helpers/server_side_indicator.vue' import { library } from '@fortawesome/fontawesome-svg-core' import { faGlobe @@ -37,7 +39,9 @@ const GeneralTab = { components: { BooleanSetting, ChoiceSetting, - InterfaceLanguageSwitcher + InterfaceLanguageSwitcher, + ScopeSelector, + ServerSideIndicator, }, computed: { postFormats () { @@ -57,6 +61,11 @@ const GeneralTab = { }, instanceShoutboxPresent () { return this.$store.state.instance.shoutAvailable }, ...SharedComputedObject() + }, + methods: { + changeDefaultScope (value) { + this.$store.dispatch('setServerSideOption', { name: 'defaultScope', value }) + } } } diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue index eba3b268..4accf0c1 100644 --- a/src/components/settings_modal/tabs/general_tab.vue +++ b/src/components/settings_modal/tabs/general_tab.vue @@ -27,7 +27,7 @@ </BooleanSetting> </li> <li> - <BooleanSetting path="streaming"> + <BooleanSetting path="streaming" expert="1"> {{ $t('settings.streaming') }} </BooleanSetting> <ul @@ -38,6 +38,7 @@ <BooleanSetting path="pauseOnUnfocused" :disabled="!streaming" + expert="1" > {{ $t('settings.pause_on_unfocused') }} </BooleanSetting> @@ -45,7 +46,7 @@ </ul> </li> <li> - <BooleanSetting path="useStreamingApi"> + <BooleanSetting path="useStreamingApi" expert="1"> {{ $t('settings.useStreamingApi') }} <br> <small> @@ -54,17 +55,22 @@ </BooleanSetting> </li> <li> - <BooleanSetting path="virtualScrolling"> + <BooleanSetting path="virtualScrolling" expert="1"> {{ $t('settings.virtual_scrolling') }} </BooleanSetting> </li> <li> - <BooleanSetting path="autohideFloatingPostButton"> + <BooleanSetting path="alwaysShowNewPostButton" expert="1"> + {{ $t('settings.always_show_post_button') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="autohideFloatingPostButton" expert="1"> {{ $t('settings.autohide_floating_post_button') }} </BooleanSetting> </li> <li v-if="instanceShoutboxPresent"> - <BooleanSetting path="hideShoutbox"> + <BooleanSetting path="hideShoutbox" expert="1"> {{ $t('settings.hide_shoutbox') }} </BooleanSetting> </li> @@ -79,13 +85,18 @@ </BooleanSetting> </li> <li> - <BooleanSetting path="emojiReactionsOnTimeline"> + <BooleanSetting path="emojiReactionsOnTimeline" expert="1"> {{ $t('settings.emoji_reactions_on_timeline') }} </BooleanSetting> </li> + <li> + <BooleanSetting path="serverSide_stripRichContent" expert="1" v-if="user"> + {{ $t('settings.no_rich_text_description') }} + </BooleanSetting> + </li> <h3>{{ $t('settings.attachments') }}</h3> <li> - <BooleanSetting path="useContainFit"> + <BooleanSetting path="useContainFit" expert="1"> {{ $t('settings.use_contain_fit') }} </BooleanSetting> </li> @@ -97,7 +108,7 @@ <ul class="setting-list suboptions"> <li> <BooleanSetting - path="preloadImage" + path="preloadImage" expert="1" :disabled="!hideNsfw" > {{ $t('settings.preload_images') }} @@ -105,7 +116,7 @@ </li> <li> <BooleanSetting - path="useOneClickNsfw" + path="useOneClickNsfw" expert="1" :disabled="!hideNsfw" > {{ $t('settings.use_one_click_nsfw') }} @@ -113,7 +124,7 @@ </li> </ul> <li> - <BooleanSetting path="loopVideo"> + <BooleanSetting path="loopVideo" expert="1"> {{ $t('settings.loop_video') }} </BooleanSetting> <ul @@ -122,7 +133,7 @@ > <li> <BooleanSetting - path="loopVideoSilentOnly" + path="loopVideoSilentOnly" expert="1" :disabled="!loopVideo || !loopSilentAvailable" > {{ $t('settings.loop_video_silent_only') }} @@ -137,21 +148,11 @@ </ul> </li> <li> - <BooleanSetting path="playVideosInModal"> + <BooleanSetting path="playVideosInModal" expert="1"> {{ $t('settings.play_videos_in_modal') }} </BooleanSetting> </li> - <h3>{{ $t('settings.fun') }}</h3> - <li> - <BooleanSetting path="greentext"> - {{ $t('settings.greentext') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="mentionLinkShowYous"> - {{ $t('settings.show_yous') }} - </BooleanSetting> - </li> + <h3>{{ $t('settings.mention_links') }}</h3> <li> <ChoiceSetting id="mentionLinkDisplay" @@ -164,15 +165,14 @@ <ul class="setting-list suboptions" > - <li - v-if="mentionLinkDisplay === 'short'" - > - <BooleanSetting path="mentionLinkShowTooltip"> + <li v-if="mentionLinkDisplay === 'short'"> + <BooleanSetting path="mentionLinkShowTooltip" expert="1"> {{ $t('settings.mention_link_show_tooltip') }} </BooleanSetting> </li> + </ul> <li> - <BooleanSetting path="useAtIcon"> + <BooleanSetting path="useAtIcon" expert="1"> {{ $t('settings.use_at_icon') }} </BooleanSetting> </li> @@ -182,29 +182,56 @@ </BooleanSetting> </li> <li> - <BooleanSetting path="mentionLinkFadeDomain"> + <BooleanSetting path="mentionLinkFadeDomain" expert="1"> {{ $t('settings.mention_link_fade_domain') }} </BooleanSetting> </li> - <li> - <BooleanSetting path="mentionLinkBoldenYou"> + <li v-if="user"> + <BooleanSetting path="mentionLinkBoldenYou" expert="1"> {{ $t('settings.mention_link_bolden_you') }} </BooleanSetting> </li> - </ul> + <h3 v-if="expertLevel > 0">{{ $t('settings.fun') }}</h3> + <li> + <BooleanSetting path="greentext" expert="1"> + {{ $t('settings.greentext') }} + </BooleanSetting> + </li> + <li v-if="user"> + <BooleanSetting path="mentionLinkShowYous" expert="1"> + {{ $t('settings.show_yous') }} + </BooleanSetting> + </li> </ul> </div> - <div class="setting-item"> + <div class="setting-item" v-if="user"> <h2>{{ $t('settings.composing') }}</h2> <ul class="setting-list"> <li> - <BooleanSetting path="scopeCopy"> + <label for="default-vis"> + {{ $t('settings.default_vis') }} <ServerSideIndicator :serverSide="true"/> + <ScopeSelector + class="scope-selector" + :show-all="true" + :user-default="serverSide_defaultScope" + :initial-scope="serverSide_defaultScope" + :on-scope-change="changeDefaultScope" + /> + </label> + </li> + <li> + <BooleanSetting path="serverSide_defaultNSFW"> + {{ $t('settings.sensitive_by_default') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="scopeCopy" expert="1"> {{ $t('settings.scope_copy') }} </BooleanSetting> </li> <li> - <BooleanSetting path="alwaysShowSubjectInput"> + <BooleanSetting path="alwaysShowSubjectInput" expert="1"> {{ $t('settings.subject_input_always_show') }} </BooleanSetting> </li> @@ -213,6 +240,7 @@ id="subjectLineBehavior" path="subjectLineBehavior" :options="subjectLineOptions" + expert="1" > {{ $t('settings.subject_line_behavior') }} </ChoiceSetting> @@ -227,43 +255,27 @@ </ChoiceSetting> </li> <li> - <BooleanSetting path="minimalScopesMode"> + <BooleanSetting path="minimalScopesMode" expert="1"> {{ $t('settings.minimal_scopes_mode') }} </BooleanSetting> </li> <li> - <BooleanSetting path="sensitiveByDefault"> - {{ $t('settings.sensitive_by_default') }} - </BooleanSetting> - </li> - <li> - <BooleanSetting path="alwaysShowNewPostButton"> + <BooleanSetting path="alwaysShowNewPostButton" expert="1"> {{ $t('settings.always_show_post_button') }} </BooleanSetting> </li> <li> - <BooleanSetting path="autohideFloatingPostButton"> + <BooleanSetting path="autohideFloatingPostButton" expert="1"> {{ $t('settings.autohide_floating_post_button') }} </BooleanSetting> </li> <li> - <BooleanSetting path="padEmoji"> + <BooleanSetting path="padEmoji" expert="1"> {{ $t('settings.pad_emoji') }} </BooleanSetting> </li> </ul> </div> - - <div class="setting-item"> - <h2>{{ $t('settings.notifications') }}</h2> - <ul class="setting-list"> - <li> - <BooleanSetting path="webPushNotifications"> - {{ $t('settings.enable_web_push_notifications') }} - </BooleanSetting> - </li> - </ul> - </div> </div> </template> diff --git a/src/components/settings_modal/tabs/notifications_tab.js b/src/components/settings_modal/tabs/notifications_tab.js index 3e44c95d..3c6ab87f 100644 --- a/src/components/settings_modal/tabs/notifications_tab.js +++ b/src/components/settings_modal/tabs/notifications_tab.js @@ -1,4 +1,5 @@ -import Checkbox from 'src/components/checkbox/checkbox.vue' +import BooleanSetting from '../helpers/boolean_setting.vue' +import SharedComputedObject from '../helpers/shared_computed_object.js' const NotificationsTab = { data () { @@ -9,12 +10,13 @@ const NotificationsTab = { } }, components: { - Checkbox + BooleanSetting }, computed: { user () { return this.$store.state.users.currentUser - } + }, + ...SharedComputedObject() }, methods: { updateNotificationSettings () { diff --git a/src/components/settings_modal/tabs/notifications_tab.vue b/src/components/settings_modal/tabs/notifications_tab.vue index 7e0568ea..5e9ce91e 100644 --- a/src/components/settings_modal/tabs/notifications_tab.vue +++ b/src/components/settings_modal/tabs/notifications_tab.vue @@ -2,30 +2,68 @@ <div :label="$t('settings.notifications')"> <div class="setting-item"> <h2>{{ $t('settings.notification_setting_filters') }}</h2> - <p> - <Checkbox v-model="notificationSettings.block_from_strangers"> - {{ $t('settings.notification_setting_block_from_strangers') }} - </Checkbox> - </p> + <ul class="setting-list"> + <li> + <BooleanSetting path="serverSide_blockNotificationsFromStrangers"> + {{ $t('settings.notification_setting_block_from_strangers') }} + </BooleanSetting> + </li> + <li class="select-multiple"> + <span class="label">{{ $t('settings.notification_visibility') }}</span> + <ul class="option-list"> + <li> + <BooleanSetting path="notificationVisibility.likes"> + {{ $t('settings.notification_visibility_likes') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="notificationVisibility.repeats"> + {{ $t('settings.notification_visibility_repeats') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="notificationVisibility.follows"> + {{ $t('settings.notification_visibility_follows') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="notificationVisibility.mentions"> + {{ $t('settings.notification_visibility_mentions') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="notificationVisibility.moves"> + {{ $t('settings.notification_visibility_moves') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="notificationVisibility.emojiReactions"> + {{ $t('settings.notification_visibility_emoji_reactions') }} + </BooleanSetting> + </li> + </ul> + </li> + </ul> </div> - <div class="setting-item"> + <div class="setting-item" v-if="expertLevel > 0"> <h2>{{ $t('settings.notification_setting_privacy') }}</h2> - <p> - <Checkbox v-model="notificationSettings.hide_notification_contents"> - {{ $t('settings.notification_setting_hide_notification_contents') }} - </Checkbox> - </p> + <ul class="setting-list"> + <li> + <BooleanSetting path="webPushNotifications" expert="1"> + {{ $t('settings.enable_web_push_notifications') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="serverSide_webPushHideContents" expert="1"> + {{ $t('settings.notification_setting_hide_notification_contents') }} + </BooleanSetting> + </li> + </ul> </div> <div class="setting-item"> <p>{{ $t('settings.notification_mutes') }}</p> <p>{{ $t('settings.notification_blocks') }}</p> - <button - class="btn button-default" - @click="updateNotificationSettings" - > - {{ $t('settings.save') }} - </button> </div> </div> </template> diff --git a/src/components/settings_modal/tabs/profile_tab.js b/src/components/settings_modal/tabs/profile_tab.js index 64079fcd..bee8a7bb 100644 --- a/src/components/settings_modal/tabs/profile_tab.js +++ b/src/components/settings_modal/tabs/profile_tab.js @@ -8,6 +8,9 @@ import EmojiInput from 'src/components/emoji_input/emoji_input.vue' import suggestor from 'src/components/emoji_input/suggestor.js' import Autosuggest from 'src/components/autosuggest/autosuggest.vue' import Checkbox from 'src/components/checkbox/checkbox.vue' +import BooleanSetting from '../helpers/boolean_setting.vue' +import SharedComputedObject from '../helpers/shared_computed_object.js' + import { library } from '@fortawesome/fontawesome-svg-core' import { faTimes, @@ -27,18 +30,10 @@ const ProfileTab = { newName: this.$store.state.users.currentUser.name_unescaped, newBio: unescape(this.$store.state.users.currentUser.description), newLocked: this.$store.state.users.currentUser.locked, - newNoRichText: this.$store.state.users.currentUser.no_rich_text, - newDefaultScope: this.$store.state.users.currentUser.default_scope, newFields: this.$store.state.users.currentUser.fields.map(field => ({ name: field.name, value: field.value })), - hideFollows: this.$store.state.users.currentUser.hide_follows, - hideFollowers: this.$store.state.users.currentUser.hide_followers, - hideFollowsCount: this.$store.state.users.currentUser.hide_follows_count, - hideFollowersCount: this.$store.state.users.currentUser.hide_followers_count, showRole: this.$store.state.users.currentUser.show_role, role: this.$store.state.users.currentUser.role, - discoverable: this.$store.state.users.currentUser.discoverable, bot: this.$store.state.users.currentUser.bot, - allowFollowingMove: this.$store.state.users.currentUser.allow_following_move, pickAvatarBtnVisible: true, bannerUploading: false, backgroundUploading: false, @@ -54,12 +49,14 @@ const ProfileTab = { EmojiInput, Autosuggest, ProgressButton, - Checkbox + Checkbox, + BooleanSetting }, computed: { user () { return this.$store.state.users.currentUser }, + ...SharedComputedObject(), emojiUserSuggestor () { return suggestor({ emoji: [ @@ -123,15 +120,7 @@ const ProfileTab = { /* eslint-disable camelcase */ display_name: this.newName, fields_attributes: this.newFields.filter(el => el != null), - default_scope: this.newDefaultScope, - no_rich_text: this.newNoRichText, - hide_follows: this.hideFollows, - hide_followers: this.hideFollowers, - discoverable: this.discoverable, bot: this.bot, - allow_following_move: this.allowFollowingMove, - hide_follows_count: this.hideFollowsCount, - hide_followers_count: this.hideFollowersCount, show_role: this.showRole /* eslint-enable camelcase */ } }).then((user) => { diff --git a/src/components/settings_modal/tabs/profile_tab.vue b/src/components/settings_modal/tabs/profile_tab.vue index bb3c301d..2cf3e8be 100644 --- a/src/components/settings_modal/tabs/profile_tab.vue +++ b/src/components/settings_modal/tabs/profile_tab.vue @@ -25,61 +25,6 @@ class="bio resize-height" /> </EmojiInput> - <p> - <Checkbox v-model="newLocked"> - {{ $t('settings.lock_account_description') }} - </Checkbox> - </p> - <div> - <label for="default-vis">{{ $t('settings.default_vis') }}</label> - <div - id="default-vis" - class="visibility-tray" - > - <scope-selector - :show-all="true" - :user-default="newDefaultScope" - :initial-scope="newDefaultScope" - :on-scope-change="changeVis" - /> - </div> - </div> - <p> - <Checkbox v-model="newNoRichText"> - {{ $t('settings.no_rich_text_description') }} - </Checkbox> - </p> - <p> - <Checkbox v-model="hideFollows"> - {{ $t('settings.hide_follows_description') }} - </Checkbox> - </p> - <p class="setting-subitem"> - <Checkbox - v-model="hideFollowsCount" - :disabled="!hideFollows" - > - {{ $t('settings.hide_follows_count_description') }} - </Checkbox> - </p> - <p> - <Checkbox v-model="hideFollowers"> - {{ $t('settings.hide_followers_description') }} - </Checkbox> - </p> - <p class="setting-subitem"> - <Checkbox - v-model="hideFollowersCount" - :disabled="!hideFollowers" - > - {{ $t('settings.hide_followers_count_description') }} - </Checkbox> - </p> - <p> - <Checkbox v-model="allowFollowingMove"> - {{ $t('settings.allow_following_move') }} - </Checkbox> - </p> <p v-if="role === 'admin' || role === 'moderator'"> <Checkbox v-model="showRole"> <template v-if="role === 'admin'"> @@ -90,11 +35,6 @@ </template> </Checkbox> </p> - <p> - <Checkbox v-model="discoverable"> - {{ $t('settings.discoverable') }} - </Checkbox> - </p> <div v-if="maxFields > 0"> <p>{{ $t('settings.profile_fields.label') }}</p> <div @@ -161,8 +101,7 @@ <p class="visibility-notice"> {{ $t('settings.avatar_size_instruction') }} </p> - <div class="current-avatar-container"> - <img + <div class="current-avatar-container"> <img :src="user.profile_image_url_original" class="current-avatar" > @@ -269,6 +208,67 @@ {{ $t('settings.save') }} </button> </div> + <div class="setting-item"> + <h2>{{ $t('settings.account_privacy') }}</h2> + <ul class="setting-list"> + <li> + <BooleanSetting path="serverSide_locked"> + {{ $t('settings.lock_account_description') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="serverSide_discoverable"> + {{ $t('settings.discoverable') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="serverSide_allowFollowingMove"> + {{ $t('settings.allow_following_move') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="serverSide_hideFavorites"> + {{ $t('settings.hide_favorites_description') }} + </BooleanSetting> + </li> + <li> + <BooleanSetting path="serverSide_hideFollowers"> + {{ $t('settings.hide_followers_description') }} + </BooleanSetting> + <ul + class="setting-list suboptions" + :class="[{disabled: !serverSide_hideFollowers}]" + > + <li> + <BooleanSetting + path="serverSide_hideFollowersCount" + :disabled="!severSide_hideFollowers" + > + {{ $t('settings.hide_followers_count_description') }} + </BooleanSetting> + </li> + </ul> + </li> + <li> + <BooleanSetting path="serverSide_hideFollows"> + {{ $t('settings.hide_follows_description') }} + </BooleanSetting> + <ul + class="setting-list suboptions" + :class="[{disabled: !serverSide_hideFollows}]" + > + <li> + <BooleanSetting + path="serverSide_hideFollowsCount" + :disabled="!severSide_hideFollows" + > + {{ $t('settings.hide_follows_count_description') }} + </BooleanSetting> + </li> + </ul> + </li> + </ul> + </div> </div> </template> |
