logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: 551b8f3690bab1f53ec22ccf6963009a30fa45d0
parent 48178bdc5334376a58edfe2ba06a2ee6c33d7815
Author: Tusooa Zhu <tusooa@kazv.moe>
Date:   Mon,  7 Mar 2022 20:02:53 -0500

Fix "max depth in thread" setting

Diffstat:

Asrc/components/settings_modal/helpers/integer_setting.js37+++++++++++++++++++++++++++++++++++++
Asrc/components/settings_modal/helpers/integer_setting.vue20++++++++++++++++++++
Msrc/components/settings_modal/tabs/filtering_tab.js4+++-
Msrc/components/settings_modal/tabs/filtering_tab.vue15+++++----------
Msrc/components/settings_modal/tabs/general_tab.js2++
Msrc/components/settings_modal/tabs/general_tab.vue15+++++----------
6 files changed, 72 insertions(+), 21 deletions(-)

diff --git a/src/components/settings_modal/helpers/integer_setting.js b/src/components/settings_modal/helpers/integer_setting.js @@ -0,0 +1,37 @@ +import { get, set } from 'lodash' +import ModifiedIndicator from './modified_indicator.vue' +export default { + components: { + ModifiedIndicator + }, + props: { + path: String, + disabled: Boolean, + min: 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 + } + }, + 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 @@ -0,0 +1,20 @@ +<template> + <span class="IntegerSetting"> + <label :for="path"> + <slot /> + </label> + <input + :id="path" + class="number-input" + type="number" + step="1" + :disabled="disabled" + :min="min || 0" + :value="state" + @change="update" + > + <ModifiedIndicator :changed="isChanged" /> + </span> +</template> + +<script src="./integer_setting.js"></script> diff --git 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 @@ -60,17 +60,12 @@ </li> <h3>{{ $t('settings.attachments') }}</h3> <li> - <label for="maxThumbnails"> - {{ $t('settings.max_thumbnails') }} - </label> - <input - id="maxThumbnails" - path.number="maxThumbnails" - class="number-input" - type="number" - min="0" - step="1" + <IntegerSetting + path="maxThumbnails" + :min="0" > + {{ $t('settings.max_thumbnails') }} + </IntegerSetting> </li> <li> <BooleanSetting path="hideAttachments"> diff --git a/src/components/settings_modal/tabs/general_tab.js b/src/components/settings_modal/tabs/general_tab.js @@ -1,5 +1,6 @@ import BooleanSetting from '../helpers/boolean_setting.vue' import ChoiceSetting from '../helpers/choice_setting.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' @@ -47,6 +48,7 @@ const GeneralTab = { components: { BooleanSetting, ChoiceSetting, + IntegerSetting, InterfaceLanguageSwitcher }, computed: { diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue @@ -176,17 +176,12 @@ </BooleanSetting> </li> <li> - <label for="maxDepthInThread"> - {{ $t('settings.max_depth_in_thread') }} - </label> - <input - id="maxDepthInThread" - path.number="maxDepthInThread" - class="number-input" - type="number" - min="3" - step="1" + <IntegerSetting + path="maxDepthInThread" + :min="3" > + {{ $t('settings.max_depth_in_thread') }} + </IntegerSetting> </li> <li> <ChoiceSetting