diff options
| author | Henry Jameson <me@hjkos.com> | 2021-04-07 20:45:57 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2021-04-07 20:45:57 +0300 |
| commit | 4e56e64034ce1e153ab2bbe3432ada89bdce09cd (patch) | |
| tree | 791cbd7cf3cc9452bbf9b3dbc67fb35ae550dd50 /src/components/settings_modal/tabs/theme_tab | |
| parent | 2da37f15ab6a7e0c6088a6e5a0b2c2885f1cb85a (diff) | |
| parent | 8b96ea93776fd1eb462a7c54822d4f8ad6a9e776 (diff) | |
Merge remote-tracking branch 'origin/develop' into better-selects
* origin/develop: (76 commits)
Translated using Weblate (Italian)
Translated using Weblate (Basque)
Translated using Weblate (Spanish)
Translated using Weblate (Chinese (Simplified))
Translated using Weblate (Italian)
Translated using Weblate (Chinese (Traditional))
Translated using Weblate (Russian)
Translated using Weblate (Italian)
Translated using Weblate (French)
Translated using Weblate (Russian)
Translated using Weblate (Italian)
Translated using Weblate (French)
Translated using Weblate (Basque)
Translated using Weblate (Spanish)
Translated using Weblate (Chinese (Simplified))
Translated using Weblate (Japanese)
Translated using Weblate (Italian)
Translated using Weblate (Esperanto)
Translated using Weblate (Chinese (Traditional))
Translated using Weblate (Norwegian Bokmål)
...
Diffstat (limited to 'src/components/settings_modal/tabs/theme_tab')
| -rw-r--r-- | src/components/settings_modal/tabs/theme_tab/theme_tab.js | 20 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/theme_tab/theme_tab.vue | 42 |
2 files changed, 46 insertions, 16 deletions
diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.js b/src/components/settings_modal/tabs/theme_tab/theme_tab.js index 73068e19..1388f74b 100644 --- a/src/components/settings_modal/tabs/theme_tab/theme_tab.js +++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.js @@ -16,6 +16,10 @@ import { colors2to3 } from 'src/services/style_setter/style_setter.js' import { + newImporter, + newExporter +} from 'src/services/export_import/export_import.js' +import { SLOT_INHERITANCE } from 'src/services/theme_data/pleromafe.js' import { @@ -31,7 +35,6 @@ import ShadowControl from 'src/components/shadow_control/shadow_control.vue' import FontControl from 'src/components/font_control/font_control.vue' import ContrastRatio from 'src/components/contrast_ratio/contrast_ratio.vue' import TabSwitcher from 'src/components/tab_switcher/tab_switcher.js' -import ExportImport from 'src/components/export_import/export_import.vue' import Checkbox from 'src/components/checkbox/checkbox.vue' import Select from 'src/components/select/select.vue' @@ -60,6 +63,15 @@ const colorConvert = (color) => { export default { data () { return { + themeImporter: newImporter({ + validator: this.importValidator, + onImport: this.onImport, + onImportFailure: this.onImportFailure + }), + themeExporter: newExporter({ + filename: 'pleroma_theme', + getExportedObject: () => this.exportedTheme + }), availableStyles: [], selected: this.$store.getters.mergedConfig.theme, themeWarning: undefined, @@ -376,7 +388,6 @@ export default { FontControl, TabSwitcher, Preview, - ExportImport, Checkbox, Select }, @@ -522,10 +533,15 @@ export default { this.previewColors.mod ) }, + importTheme () { this.themeImporter.importData() }, + exportTheme () { this.themeExporter.exportData() }, onImport (parsed, forceSource = false) { this.tempImportFile = parsed this.loadTheme(parsed, 'file', forceSource) }, + onImportFailure (result) { + this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_theme_imported', level: 'error' }) + }, importValidator (parsed) { const version = parsed._pleroma_theme_version return version >= 1 || version <= 2 diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.vue b/src/components/settings_modal/tabs/theme_tab/theme_tab.vue index 2b4b8ba0..570cd11b 100644 --- a/src/components/settings_modal/tabs/theme_tab/theme_tab.vue +++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.vue @@ -48,17 +48,13 @@ </template> </div> </div> - <ExportImport - :export-object="exportedTheme" - :export-label="$t("settings.export_theme")" - :import-label="$t("settings.import_theme")" - :import-failed-text="$t("settings.invalid_theme_imported")" - :on-import="onImport" - :validator="importValidator" - > - <template slot="before"> - <div class="presets"> - {{ $t('settings.presets') }} + <div class="top"> + <div class="presets"> + {{ $t('settings.presets') }} + <label + for="preset-switcher" + class="select" + > <Select id="preset-switcher" v-model="selected" @@ -76,9 +72,27 @@ {{ style[0] || style.name }} </option> </Select> - </div> - </template> - </ExportImport> + <FAIcon + class="select-down-icon" + icon="chevron-down" + /> + </label> + </div> + <div class="export-import"> + <button + class="btn button-default" + @click="importTheme" + > + {{ $t("settings.import_theme") }} + </button> + <button + class="btn button-default" + @click="exportTheme" + > + {{ $t("settings.export_theme") }} + </button> + </div> + </div> </div> <div class="save-load-options"> <span class="keep-option"> |
