diff --git a/src/components/settings_modal/admin_tabs/emoji_tab.js b/src/components/settings_modal/admin_tabs/emoji_tab.js index 7f575bcb4..585254a9b 100644 --- a/src/components/settings_modal/admin_tabs/emoji_tab.js +++ b/src/components/settings_modal/admin_tabs/emoji_tab.js @@ -8,7 +8,6 @@ import Popover from 'components/popover/popover.vue' import ConfirmModal from 'components/confirm_modal/confirm_modal.vue' import ModifiedIndicator from '../helpers/modified_indicator.vue' import EmojiEditingPopover from '../helpers/emoji_editing_popover.vue' -import { useInterfaceStore } from 'src/stores/interface' const EmojiTab = { components: { @@ -233,7 +232,7 @@ const EmojiTab = { }) }, displayError (msg) { - useInterfaceStore().pushGlobalNotice({ + this.$store.useInterfaceStore().pushGlobalNotice({ messageKey: 'admin_dash.emoji.error', messageArgs: [msg], level: 'error' diff --git a/src/components/settings_modal/admin_tabs/frontends_tab.js b/src/components/settings_modal/admin_tabs/frontends_tab.js index a9a4777da..6d983104b 100644 --- a/src/components/settings_modal/admin_tabs/frontends_tab.js +++ b/src/components/settings_modal/admin_tabs/frontends_tab.js @@ -5,7 +5,6 @@ import StringSetting from '../helpers/string_setting.vue' import GroupSetting from '../helpers/group_setting.vue' import Popover from 'src/components/popover/popover.vue' import PanelLoading from 'src/components/panel_loading/panel_loading.vue' -import { useInterfaceStore } from 'src/stores/interface' import SharedComputedObject from '../helpers/shared_computed_object.js' import { library } from '@fortawesome/fontawesome-svg-core' @@ -81,7 +80,7 @@ const FrontendsTab = { this.$store.dispatch('loadFrontendsStuff') if (response.error) { const reason = await response.error.json() - useInterfaceStore().pushGlobalNotice({ + this.$store.useInterfaceStore().pushGlobalNotice({ level: 'error', messageKey: 'admin_dash.frontend.failure_installing_frontend', messageArgs: { @@ -91,7 +90,7 @@ const FrontendsTab = { timeout: 5000 }) } else { - useInterfaceStore().pushGlobalNotice({ + this.$store.useInterfaceStore().pushGlobalNotice({ level: 'success', messageKey: 'admin_dash.frontend.success_installing_frontend', messageArgs: { diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js index fd18b91e5..da72c8f55 100644 --- a/src/components/settings_modal/tabs/appearance_tab.js +++ b/src/components/settings_modal/tabs/appearance_tab.js @@ -315,7 +315,7 @@ const AppearanceTab = { }, onImportFailure (result) { console.error('Failure importing theme:', result) - useInterfaceStore().pushGlobalNotice({ messageKey: 'settings.invalid_theme_imported', level: 'error' }) + this.$store.useInterfaceStore().pushGlobalNotice({ messageKey: 'settings.invalid_theme_imported', level: 'error' }) }, importValidator (parsed, filename) { if (filename.endsWith('.json')) { diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js index 3345cb0c9..34ade4dfc 100644 --- a/src/components/settings_modal/tabs/filtering_tab.js +++ b/src/components/settings_modal/tabs/filtering_tab.js @@ -1,14 +1,7 @@ import { cloneDeep } from 'lodash' import { mapState, mapActions } from 'pinia' -import { v4 as uuidv4 } from 'uuid'; - import { useServerSideStorageStore } from 'src/stores/serverSideStorage' -import { useInterfaceStore } from 'src/stores/interface' - -import { - newImporter, - newExporter -} from 'src/services/export_import/export_import.js' +import { v4 as uuidv4 } from 'uuid'; import BooleanSetting from '../helpers/boolean_setting.vue' import ChoiceSetting from '../helpers/choice_setting.vue' @@ -20,10 +13,9 @@ import Select from 'src/components/select/select.vue' import SharedComputedObject from '../helpers/shared_computed_object.js' -const SUPPORTED_TYPES = new Set(['word', 'regexp', 'user', 'user_regexp']) - const FilteringTab = { data () { + console.log(cloneDeep(useServerSideStorageStore().prefsStorage.simple.muteFilters)) return { replyVisibilityOptions: ['all', 'following', 'self'].map(mode => ({ key: mode, @@ -35,44 +27,7 @@ const FilteringTab = { Object.entries( useServerSideStorageStore().prefsStorage.simple.muteFilters ).map(([k]) => [k, false]) - ), - exportedFilter: null, - filterImporter: newImporter({ - validator (parsed) { - if (Array.isArray(parsed)) return false - if (!SUPPORTED_TYPES.has(parsed.type)) return false - return true - }, - onImport: (data) => { - const { - enabled = true, - expires = null, - hide = false, - name = '', - value = '' - } = data - - this.createFilter({ - enabled, - expires, - hide, - name, - value - }) - }, - onImportFailure (result) { - console.error('Failure importing filter:', result) - useInterfaceStore() - .pushGlobalNotice({ - messageKey: 'settings.filter.import_failure', - level: 'error' - }) - } - }), - filterExporter: newExporter({ - filename: 'pleromafe_mute-filter', - getExportedObject: () => this.exportedFilter - }) + ) } }, components: { @@ -128,29 +83,22 @@ const FilteringTab = { } return valid }, - createFilter (filter = { - type: 'word', - value: '', - name: 'New Filter', - enabled: true, - expires: null, - hide: false, - }) { + createFilter () { + const filter = { + type: 'word', + value: '', + name: 'New Filter', + enabled: true, + expires: null, + hide: false, + order: this.muteFilters.length + 2 + } const newId = uuidv4() - filter.order = this.muteFilters.length + 2 this.muteFiltersDraftObject[newId] = filter this.setPreference({ path: 'simple.muteFilters.' + newId , value: filter }) this.pushServerSideStorage() }, - exportFilter(id) { - this.exportedFilter = { ...this.muteFiltersDraftObject[id] } - delete this.exportedFilter.order - this.filterExporter.exportData() - }, - importFilter() { - this.filterImporter.importData() - }, copyFilter (id) { const filter = { ...this.muteFiltersDraftObject[id] } const newId = uuidv4() @@ -183,12 +131,14 @@ const FilteringTab = { } this.muteFiltersDraftObject[id] = filter this.muteFiltersDraftDirty[id] = true + console.log(this.muteFiltersDraftDirty) }, saveFilter(id) { this.setPreference({ path: 'simple.muteFilters.' + id , value: this.muteFiltersDraftObject[id] }) this.pushServerSideStorage() this.muteFiltersDraftDirty[id] = false - }, + console.log(this.muteFiltersDraftDirty) + } }, // Updating nested properties watch: { diff --git a/src/components/settings_modal/tabs/filtering_tab.scss b/src/components/settings_modal/tabs/filtering_tab.scss index 3f3fa3b58..6346654b9 100644 --- a/src/components/settings_modal/tabs/filtering_tab.scss +++ b/src/components/settings_modal/tabs/filtering_tab.scss @@ -12,7 +12,7 @@ margin: 0.5em; padding: 0.5em; display: grid; - grid-template-columns: fit-content 1fr fit-content; + grid-template-columns: fit-content() 1fr fit-content(); align-items: baseline; grid-gap: 0.5em; } @@ -33,7 +33,6 @@ grid-column: 3; grid-row: 1; text-align: right; - line-height: 2; } .filter-field { @@ -56,21 +55,5 @@ .filter-buttons { grid-column: 1 / span 3; justify-self: end; - display: inline-grid; - grid-gap: 0.5em; - grid-template-columns: repeat(4, 1fr); - max-width: 100%; - justify-content: end; - } - - .total { - text-align: center; - } -} - - -.settings-modal.-mobile .filtering-tab { - .filter-buttons { - grid-template-columns: repeat(1, 1fr); } } diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue index 968a7a0e7..f7754090b 100644 --- a/src/components/settings_modal/tabs/filtering_tab.vue +++ b/src/components/settings_modal/tabs/filtering_tab.vue @@ -73,245 +73,232 @@