aboutsummaryrefslogtreecommitdiff
path: root/src/components/settings_modal/tabs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings_modal/tabs')
-rw-r--r--src/components/settings_modal/tabs/filtering_tab.js4
-rw-r--r--src/components/settings_modal/tabs/filtering_tab.vue44
-rw-r--r--src/components/settings_modal/tabs/general_tab.js4
-rw-r--r--src/components/settings_modal/tabs/general_tab.vue126
-rw-r--r--src/components/settings_modal/tabs/profile_tab.scss9
-rw-r--r--src/components/settings_modal/tabs/profile_tab.vue14
-rw-r--r--src/components/settings_modal/tabs/security_tab/security_tab.js3
7 files changed, 103 insertions, 101 deletions
diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js
index 5f38a5ae..6e95f7af 100644
--- a/src/components/settings_modal/tabs/filtering_tab.js
+++ b/src/components/settings_modal/tabs/filtering_tab.js
@@ -1,5 +1,5 @@
import { filter, trim } from 'lodash'
-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'
@@ -18,7 +18,7 @@ const FilteringTab = {
}
},
components: {
- Checkbox
+ BooleanSetting
},
computed: {
...SharedComputedObject(),
diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue
index 8f850c8b..402c2a4a 100644
--- a/src/components/settings_modal/tabs/filtering_tab.vue
+++ b/src/components/settings_modal/tabs/filtering_tab.vue
@@ -5,34 +5,34 @@
<span class="label">{{ $t('settings.notification_visibility') }}</span>
<ul class="option-list">
<li>
- <Checkbox v-model="notificationVisibility.likes">
+ <BooleanSetting path="notificationVisibility.likes">
{{ $t('settings.notification_visibility_likes') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="notificationVisibility.repeats">
+ <BooleanSetting path="notificationVisibility.repeats">
{{ $t('settings.notification_visibility_repeats') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="notificationVisibility.follows">
+ <BooleanSetting path="notificationVisibility.follows">
{{ $t('settings.notification_visibility_follows') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="notificationVisibility.mentions">
+ <BooleanSetting path="notificationVisibility.mentions">
{{ $t('settings.notification_visibility_mentions') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="notificationVisibility.moves">
+ <BooleanSetting path="notificationVisibility.moves">
{{ $t('settings.notification_visibility_moves') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="notificationVisibility.emojiReactions">
+ <BooleanSetting path="notificationVisibility.emojiReactions">
{{ $t('settings.notification_visibility_emoji_reactions') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</div>
@@ -60,14 +60,14 @@
</label>
</div>
<div>
- <Checkbox v-model="hidePostStats">
- {{ $t('settings.hide_post_stats') }} {{ $t('settings.instance_default', { value: hidePostStatsLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="hidePostStats">
+ {{ $t('settings.hide_post_stats') }}
+ </BooleanSetting>
</div>
<div>
- <Checkbox v-model="hideUserStats">
- {{ $t('settings.hide_user_stats') }} {{ $t('settings.instance_default', { value: hideUserStatsLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="hideUserStats">
+ {{ $t('settings.hide_user_stats') }}
+ </BooleanSetting>
</div>
</div>
<div class="setting-item">
@@ -75,14 +75,14 @@
<p>{{ $t('settings.filtering_explanation') }}</p>
<textarea
id="muteWords"
- class="resize-height"
v-model="muteWordsString"
+ class="resize-height"
/>
</div>
<div>
- <Checkbox v-model="hideFilteredStatuses">
- {{ $t('settings.hide_filtered_statuses') }} {{ $t('settings.instance_default', { value: hideFilteredStatusesLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="hideFilteredStatuses">
+ {{ $t('settings.hide_filtered_statuses') }}
+ </BooleanSetting>
</div>
</div>
</div>
diff --git a/src/components/settings_modal/tabs/general_tab.js b/src/components/settings_modal/tabs/general_tab.js
index 029ee7a1..2db523be 100644
--- a/src/components/settings_modal/tabs/general_tab.js
+++ b/src/components/settings_modal/tabs/general_tab.js
@@ -1,4 +1,4 @@
-import Checkbox from 'src/components/checkbox/checkbox.vue'
+import BooleanSetting from '../helpers/boolean_setting.vue'
import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'
import SharedComputedObject from '../helpers/shared_computed_object.js'
@@ -26,7 +26,7 @@ const GeneralTab = {
}
},
components: {
- Checkbox,
+ BooleanSetting,
InterfaceLanguageSwitcher
},
computed: {
diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue
index a9081793..f93f4ea0 100644
--- a/src/components/settings_modal/tabs/general_tab.vue
+++ b/src/components/settings_modal/tabs/general_tab.vue
@@ -7,14 +7,14 @@
<interface-language-switcher />
</li>
<li v-if="instanceSpecificPanelPresent">
- <Checkbox v-model="hideISP">
+ <BooleanSetting path="hideISP">
{{ $t('settings.hide_isp') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li v-if="instanceWallpaperUsed">
- <Checkbox v-model="hideInstanceWallpaper">
+ <BooleanSetting path="hideInstanceWallpaper">
{{ $t('settings.hide_wallpaper') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</div>
@@ -22,51 +22,51 @@
<h2>{{ $t('nav.timeline') }}</h2>
<ul class="setting-list">
<li>
- <Checkbox v-model="hideMutedPosts">
- {{ $t('settings.hide_muted_posts') }} {{ $t('settings.instance_default', { value: hideMutedPostsLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="hideMutedPosts">
+ {{ $t('settings.hide_muted_posts') }}
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="collapseMessageWithSubject">
- {{ $t('settings.collapse_subject') }} {{ $t('settings.instance_default', { value: collapseMessageWithSubjectLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="collapseMessageWithSubject">
+ {{ $t('settings.collapse_subject') }}
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="streaming">
+ <BooleanSetting path="streaming">
{{ $t('settings.streaming') }}
- </Checkbox>
+ </BooleanSetting>
<ul
class="setting-list suboptions"
:class="[{disabled: !streaming}]"
>
<li>
- <Checkbox
- v-model="pauseOnUnfocused"
+ <BooleanSetting
+ path="pauseOnUnfocused"
:disabled="!streaming"
>
{{ $t('settings.pause_on_unfocused') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</li>
<li>
- <Checkbox v-model="useStreamingApi">
+ <BooleanSetting path="useStreamingApi">
{{ $t('settings.useStreamingApi') }}
<br>
<small>
{{ $t('settings.useStreamingApiWarning') }}
</small>
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="emojiReactionsOnTimeline">
+ <BooleanSetting path="emojiReactionsOnTimeline">
{{ $t('settings.emoji_reactions_on_timeline') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="virtualScrolling">
+ <BooleanSetting path="virtualScrolling">
{{ $t('settings.virtual_scrolling') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</div>
@@ -75,14 +75,14 @@
<h2>{{ $t('settings.composing') }}</h2>
<ul class="setting-list">
<li>
- <Checkbox v-model="scopeCopy">
- {{ $t('settings.scope_copy') }} {{ $t('settings.instance_default', { value: scopeCopyLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="scopeCopy">
+ {{ $t('settings.scope_copy') }}
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="alwaysShowSubjectInput">
- {{ $t('settings.subject_input_always_show') }} {{ $t('settings.instance_default', { value: alwaysShowSubjectInputLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="alwaysShowSubjectInput">
+ {{ $t('settings.subject_input_always_show') }}
+ </BooleanSetting>
</li>
<li>
<div>
@@ -143,19 +143,19 @@
</div>
</li>
<li>
- <Checkbox v-model="minimalScopesMode">
- {{ $t('settings.minimal_scopes_mode') }} {{ $t('settings.instance_default', { value: minimalScopesModeLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="minimalScopesMode">
+ {{ $t('settings.minimal_scopes_mode') }} {{ minimalScopesModeDefaultValue }}
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="autohideFloatingPostButton">
+ <BooleanSetting path="autohideFloatingPostButton">
{{ $t('settings.autohide_floating_post_button') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="padEmoji">
+ <BooleanSetting path="padEmoji">
{{ $t('settings.pad_emoji') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</div>
@@ -164,14 +164,14 @@
<h2>{{ $t('settings.attachments') }}</h2>
<ul class="setting-list">
<li>
- <Checkbox v-model="hideAttachments">
+ <BooleanSetting path="hideAttachments">
{{ $t('settings.hide_attachments_in_tl') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="hideAttachmentsInConv">
+ <BooleanSetting path="hideAttachmentsInConv">
{{ $t('settings.hide_attachments_in_convo') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
<label for="maxThumbnails">
@@ -179,7 +179,7 @@
</label>
<input
id="maxThumbnails"
- v-model.number="maxThumbnails"
+ path.number="maxThumbnails"
class="number-input"
type="number"
min="0"
@@ -187,48 +187,48 @@
>
</li>
<li>
- <Checkbox v-model="hideNsfw">
+ <BooleanSetting path="hideNsfw">
{{ $t('settings.nsfw_clickthrough') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<ul class="setting-list suboptions">
<li>
- <Checkbox
- v-model="preloadImage"
+ <BooleanSetting
+ path="preloadImage"
:disabled="!hideNsfw"
>
{{ $t('settings.preload_images') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox
- v-model="useOneClickNsfw"
+ <BooleanSetting
+ path="useOneClickNsfw"
:disabled="!hideNsfw"
>
{{ $t('settings.use_one_click_nsfw') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
<li>
- <Checkbox v-model="stopGifs">
+ <BooleanSetting path="stopGifs">
{{ $t('settings.stop_gifs') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="loopVideo">
+ <BooleanSetting path="loopVideo">
{{ $t('settings.loop_video') }}
- </Checkbox>
+ </BooleanSetting>
<ul
class="setting-list suboptions"
:class="[{disabled: !streaming}]"
>
<li>
- <Checkbox
- v-model="loopVideoSilentOnly"
+ <BooleanSetting
+ path="loopVideoSilentOnly"
:disabled="!loopVideo || !loopSilentAvailable"
>
{{ $t('settings.loop_video_silent_only') }}
- </Checkbox>
+ </BooleanSetting>
<div
v-if="!loopSilentAvailable"
class="unavailable"
@@ -239,14 +239,14 @@
</ul>
</li>
<li>
- <Checkbox v-model="playVideosInModal">
+ <BooleanSetting path="playVideosInModal">
{{ $t('settings.play_videos_in_modal') }}
- </Checkbox>
+ </BooleanSetting>
</li>
<li>
- <Checkbox v-model="useContainFit">
+ <BooleanSetting path="useContainFit">
{{ $t('settings.use_contain_fit') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</div>
@@ -255,9 +255,9 @@
<h2>{{ $t('settings.notifications') }}</h2>
<ul class="setting-list">
<li>
- <Checkbox v-model="webPushNotifications">
+ <BooleanSetting path="webPushNotifications">
{{ $t('settings.enable_web_push_notifications') }}
- </Checkbox>
+ </BooleanSetting>
</li>
</ul>
</div>
@@ -266,9 +266,9 @@
<h2>{{ $t('settings.fun') }}</h2>
<ul class="setting-list">
<li>
- <Checkbox v-model="greentext">
- {{ $t('settings.greentext') }} {{ $t('settings.instance_default', { value: greentextLocalizedValue }) }}
- </Checkbox>
+ <BooleanSetting path="greentext">
+ {{ $t('settings.greentext') }}
+ </BooleanSetting>
</li>
</ul>
</div>
diff --git a/src/components/settings_modal/tabs/profile_tab.scss b/src/components/settings_modal/tabs/profile_tab.scss
index e821f952..111eaed3 100644
--- a/src/components/settings_modal/tabs/profile_tab.scss
+++ b/src/components/settings_modal/tabs/profile_tab.scss
@@ -111,16 +111,17 @@
.profile-fields {
display: flex;
- &>.emoji-input {
+ & > .emoji-input {
flex: 1 1 auto;
- margin: 0 .2em .5em;
+ margin: 0 0.2em 0.5em;
min-width: 0;
}
- &>.icon-container {
+ .delete-field {
width: 20px;
align-self: center;
- margin: 0 .2em .5em;
+ margin: 0 0.2em 0.5em;
+ padding: 0 0.5em;
}
}
}
diff --git a/src/components/settings_modal/tabs/profile_tab.vue b/src/components/settings_modal/tabs/profile_tab.vue
index b7ef21d7..175a0219 100644
--- a/src/components/settings_modal/tabs/profile_tab.vue
+++ b/src/components/settings_modal/tabs/profile_tab.vue
@@ -124,24 +124,24 @@
:placeholder="$t('settings.profile_fields.value')"
>
</EmojiInput>
- <div
- class="icon-container"
+ <button
+ class="delete-field button-unstyled -hover-highlight"
+ @click="deleteField(i)"
>
<FAIcon
v-show="newFields.length > 1"
icon="times"
- @click="deleteField(i)"
/>
- </div>
+ </button>
</div>
- <a
+ <button
v-if="newFields.length < maxFields"
- class="add-field faint"
+ class="add-field faint button-unstyled -hover-highlight"
@click="addField"
>
<FAIcon icon="plus" />
{{ $t("settings.profile_fields.add_field") }}
- </a>
+ </button>
</div>
<p>
<Checkbox v-model="bot">
diff --git a/src/components/settings_modal/tabs/security_tab/security_tab.js b/src/components/settings_modal/tabs/security_tab/security_tab.js
index 811161a5..65d20fc0 100644
--- a/src/components/settings_modal/tabs/security_tab/security_tab.js
+++ b/src/components/settings_modal/tabs/security_tab/security_tab.js
@@ -1,6 +1,7 @@
import ProgressButton from 'src/components/progress_button/progress_button.vue'
import Checkbox from 'src/components/checkbox/checkbox.vue'
import Mfa from './mfa.vue'
+import localeService from 'src/services/locale/locale.service.js'
const SecurityTab = {
data () {
@@ -37,7 +38,7 @@ const SecurityTab = {
return {
id: oauthToken.id,
appName: oauthToken.app_name,
- validUntil: new Date(oauthToken.valid_until).toLocaleDateString()
+ validUntil: new Date(oauthToken.valid_until).toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale))
}
})
}