aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOle Bertram <git@bertr.am>2018-06-28 02:59:57 +0200
committerOle Bertram <git@bertr.am>2018-06-28 03:28:23 +0200
commitd2b79856c61391e56009cdf313e332ee950b9081 (patch)
tree63b8f6a5be694f670fb6b0a0bcf2d5b4c5d98466 /src
parentf36984c4a4d1411d4ec4c6aad7f2740fe676a4fa (diff)
Add theme import feature
Diffstat (limited to 'src')
-rw-r--r--src/components/style_switcher/style_switcher.js22
-rw-r--r--src/components/style_switcher/style_switcher.vue1
-rw-r--r--src/i18n/messages.js1
3 files changed, 24 insertions, 0 deletions
diff --git a/src/components/style_switcher/style_switcher.js b/src/components/style_switcher/style_switcher.js
index d5881a31..7ab56ea2 100644
--- a/src/components/style_switcher/style_switcher.js
+++ b/src/components/style_switcher/style_switcher.js
@@ -52,6 +52,28 @@ export default {
document.body.removeChild(e)
},
+ importTheme () {
+ const filePicker = document.createElement('input')
+ filePicker.setAttribute('type', 'file')
+ filePicker.setAttribute('accept', '.json')
+
+ filePicker.addEventListener('change', event => {
+ if (event.target.files[0]) {
+ // eslint-disable-next-line no-undef
+ const reader = new FileReader()
+ reader.onload = ({target}) => {
+ const parsed = JSON.parse(target.result)
+ this.normalizeLocalState(parsed.colors, parsed.radii)
+ }
+ reader.readAsText(event.target.files[0])
+ }
+ })
+
+ document.body.appendChild(filePicker)
+ filePicker.click()
+ document.body.removeChild(filePicker)
+ },
+
setCustomTheme () {
if (!this.bgColorLocal && !this.btnColorLocal && !this.linkColorLocal) {
// reset to picked themes
diff --git a/src/components/style_switcher/style_switcher.vue b/src/components/style_switcher/style_switcher.vue
index c8d955e1..0bc08bd7 100644
--- a/src/components/style_switcher/style_switcher.vue
+++ b/src/components/style_switcher/style_switcher.vue
@@ -10,6 +10,7 @@
</div>
<div>
<button class="btn" @click="exportCurrentTheme">{{ $t('settings.export_theme') }}</button>
+ <button class="btn" @click="importTheme">{{ $t('settings.import_theme') }}</button>
</div>
<div class="color-container">
<p>{{$t('settings.theme_help')}}</p>
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index ee0fcd2a..cc9090c7 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -289,6 +289,7 @@ const en = {
theme: 'Theme',
presets: 'Presets',
export_theme: 'Export current theme',
+ import_theme: 'Load saved theme',
theme_help: 'Use hex color codes (#rrggbb) to customize your color theme.',
radii_help: 'Set up interface edge rounding (in pixels)',
background: 'Background',