diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 89ff2f6fa..2ef2977af 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -145,8 +145,6 @@ const conversation = { return sortAndFilterConversation(conversation, this.status) }, - conversationDive () { - }, statusMap () { return this.conversation.reduce((res, s) => { res[s.id] = s diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue index 3e96fba21..7628ceaa5 100644 --- a/src/components/conversation/conversation.vue +++ b/src/components/conversation/conversation.vue @@ -194,7 +194,7 @@ .Conversation { .conversation-dive-to-top-level-box { - padding: $status-margin; + padding: var(--status-margin, $status-margin); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: var(--border, $fallback--border); @@ -206,7 +206,7 @@ } .thread-ancestors { - margin-left: $status-margin; + margin-left: var(--status-margin, $status-margin); border-left: 2px solid var(--border, $fallback--border); } @@ -216,7 +216,7 @@ color: var(--text); } .thread-ancestor-dive-box { - padding-left: $status-margin; + padding-left: var(--status-margin, $status-margin); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: var(--border, $fallback--border); @@ -229,8 +229,7 @@ } } .thread-ancestor-dive-box-inner { - padding: $status-margin; - //border-left: 2px solid var(--border, $fallback--border); + padding: var(--status-margin, $status-margin); } .conversation-status { @@ -263,10 +262,5 @@ border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius); border-bottom: 1px solid var(--border, $fallback--border); } - /* &.-expanded { */ - /* .conversation-status:last-child { */ - /* border-bottom: none; */ - /* } */ - /* } */ } diff --git a/src/components/settings_modal/helpers/integer_setting.js b/src/components/settings_modal/helpers/integer_setting.js new file mode 100644 index 000000000..4a19bd7cd --- /dev/null +++ b/src/components/settings_modal/helpers/integer_setting.js @@ -0,0 +1,41 @@ +import { get, set } from 'lodash' +import ModifiedIndicator from './modified_indicator.vue' +export default { + components: { + ModifiedIndicator + }, + props: { + path: String, + disabled: Boolean, + min: Number, + expert: Number + }, + computed: { + pathDefault () { + const [firstSegment, ...rest] = this.path.split('.') + return [firstSegment + 'DefaultValue', ...rest].join('.') + }, + state () { + const value = get(this.$parent, this.path) + if (value === undefined) { + return this.defaultState + } else { + return value + } + }, + defaultState () { + return get(this.$parent, this.pathDefault) + }, + isChanged () { + return this.state !== this.defaultState + }, + matchesExpertLevel () { + return (this.expert || 0) <= this.$parent.expertLevel + } + }, + methods: { + update (e) { + set(this.$parent, this.path, parseInt(e.target.value)) + } + } +} diff --git a/src/components/settings_modal/helpers/integer_setting.vue b/src/components/settings_modal/helpers/integer_setting.vue new file mode 100644 index 000000000..408b09256 --- /dev/null +++ b/src/components/settings_modal/helpers/integer_setting.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js index 4eaf4217f..73413b488 100644 --- a/src/components/settings_modal/tabs/filtering_tab.js +++ b/src/components/settings_modal/tabs/filtering_tab.js @@ -1,6 +1,7 @@ import { filter, trim } from 'lodash' import BooleanSetting from '../helpers/boolean_setting.vue' import ChoiceSetting from '../helpers/choice_setting.vue' +import IntegerSetting from '../helpers/integer_setting.vue' import SharedComputedObject from '../helpers/shared_computed_object.js' @@ -17,7 +18,8 @@ const FilteringTab = { }, components: { BooleanSetting, - ChoiceSetting + ChoiceSetting, + IntegerSetting }, computed: { ...SharedComputedObject(), diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue index 81e9543b0..dc48902f8 100644 --- a/src/components/settings_modal/tabs/filtering_tab.vue +++ b/src/components/settings_modal/tabs/filtering_tab.vue @@ -39,12 +39,6 @@ -
  • - -
  • {{ $t('settings.mute_bot_posts') }} @@ -91,6 +85,14 @@ step="1" >
  • +
  • + + {{ $t('settings.max_thumbnails') }} + +
  • {{ $t('settings.hide_attachments_in_tl') }} diff --git a/src/components/settings_modal/tabs/general_tab.js b/src/components/settings_modal/tabs/general_tab.js index fcbe87af7..62d86176d 100644 --- a/src/components/settings_modal/tabs/general_tab.js +++ b/src/components/settings_modal/tabs/general_tab.js @@ -1,6 +1,7 @@ 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 IntegerSetting from '../helpers/integer_setting.vue' import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue' import SharedComputedObject from '../helpers/shared_computed_object.js' @@ -49,6 +50,7 @@ const GeneralTab = { components: { BooleanSetting, ChoiceSetting, + IntegerSetting, InterfaceLanguageSwitcher, ScopeSelector, ServerSideIndicator diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue index 430cacd5b..e9c10c994 100644 --- a/src/components/settings_modal/tabs/general_tab.vue +++ b/src/components/settings_modal/tabs/general_tab.vue @@ -89,6 +89,52 @@

    {{ $t('settings.post_look_feel') }}

      +
    • + + {{ $t('settings.conversation_display') }} + +
    • +
        +
      • + + {{ $t('settings.tree_advanced') }} + +
      • +
      • + + {{ $t('settings.tree_fade_ancestors') }} + +
      • +
      • + + {{ $t('settings.max_depth_in_thread') }} + +
      • +
      • + + {{ $t('settings.conversation_other_replies_button') }} + +
      • +
    • {{ $t('settings.collapse_subject') }} diff --git a/src/components/status/status.scss b/src/components/status/status.scss index 80bc392da..3f647b252 100644 --- a/src/components/status/status.scss +++ b/src/components/status/status.scss @@ -27,7 +27,7 @@ } .gravestone { - padding: $status-margin; + padding: var(--status-margin, $status-margin); color: $fallback--faint; color: var(--faint, $fallback--faint); display: flex; @@ -40,7 +40,7 @@ .status-container { display: flex; - padding: $status-margin; + padding: var(--status-margin, $status-margin); &.-repeat { padding-top: 0; @@ -48,7 +48,7 @@ } .pin { - padding: $status-margin $status-margin 0; + padding: var(--status-margin, $status-margin) var(--status-margin, $status-margin) 0; display: flex; align-items: center; justify-content: flex-end; @@ -64,7 +64,7 @@ } .left-side { - margin-right: $status-margin; + margin-right: var(--status-margin, $status-margin); } .right-side { @@ -73,7 +73,7 @@ } .usercard { - margin-bottom: $status-margin; + margin-bottom: var(--status-margin, $status-margin); } .status-username { @@ -239,7 +239,7 @@ } .repeat-info { - padding: 0.4em $status-margin; + padding: 0.4em var(--status-margin, $status-margin); .repeat-icon { color: $fallback--cGreen; @@ -285,7 +285,7 @@ position: relative; width: 100%; display: flex; - margin-top: $status-margin; + margin-top: var(--status-margin, $status-margin); > * { max-width: 4em; @@ -353,7 +353,7 @@ } .favs-repeated-users { - margin-top: $status-margin; + margin-top: var(--status-margin, $status-margin); } .stats { @@ -380,7 +380,7 @@ } .stat-count { - margin-right: $status-margin; + margin-right: var(--status-margin, $status-margin); user-select: none; .stat-title { diff --git a/src/components/status_content/status_content.vue b/src/components/status_content/status_content.vue index 0a09cda48..9e7d79562 100644 --- a/src/components/status_content/status_content.vue +++ b/src/components/status_content/status_content.vue @@ -58,10 +58,6 @@