diff options
author | Aryess <yoann.celton@gmail.com> | 2021-10-12 11:28:41 +1100 |
---|---|---|
committer | Aryess <yoann.celton@gmail.com> | 2021-10-12 11:37:24 +1100 |
commit | 5db2414d052af629e2848f53ce9c2e0e686eefaf (patch) | |
tree | 99e332d6481ecd777dfc3b1223dce4dc8dd01c68 /src | |
parent | c72acd57d0a61632b6c03e2d9c7321e25dc611fa (diff) | |
download | homer-5db2414d052af629e2848f53ce9c2e0e686eefaf.tar.gz homer-5db2414d052af629e2848f53ce9c2e0e686eefaf.tar.zst homer-5db2414d052af629e2848f53ce9c2e0e686eefaf.zip |
Fix #121 - Change default theme and layout from config
Diffstat (limited to 'src')
-rw-r--r-- | src/App.vue | 6 | ||||
-rw-r--r-- | src/assets/defaults.yml | 6 | ||||
-rw-r--r-- | src/components/DarkMode.vue | 14 | ||||
-rw-r--r-- | src/components/SettingToggle.vue | 3 |
4 files changed, 28 insertions, 1 deletions
diff --git a/src/App.vue b/src/App.vue index c263c8a..1f1791c 100644 --- a/src/App.vue +++ b/src/App.vue | |||
@@ -30,13 +30,17 @@ | |||
30 | :links="config.links" | 30 | :links="config.links" |
31 | @navbar-toggle="showMenu = !showMenu" | 31 | @navbar-toggle="showMenu = !showMenu" |
32 | > | 32 | > |
33 | <DarkMode @updated="isDark = $event" /> | 33 | <DarkMode |
34 | @updated="isDark = $event" | ||
35 | :defaultValue="this.config.defaults.colorTheme" | ||
36 | /> | ||
34 | 37 | ||
35 | <SettingToggle | 38 | <SettingToggle |
36 | @updated="vlayout = $event" | 39 | @updated="vlayout = $event" |
37 | name="vlayout" | 40 | name="vlayout" |
38 | icon="fa-list" | 41 | icon="fa-list" |
39 | iconAlt="fa-columns" | 42 | iconAlt="fa-columns" |
43 | :defaultValue="this.config.defaults.layout == 'columns'" | ||
40 | /> | 44 | /> |
41 | 45 | ||
42 | <SearchInput | 46 | <SearchInput |
diff --git a/src/assets/defaults.yml b/src/assets/defaults.yml index ed1fbc9..85f2698 100644 --- a/src/assets/defaults.yml +++ b/src/assets/defaults.yml | |||
@@ -10,6 +10,12 @@ footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a hre | |||
10 | columns: 3 | 10 | columns: 3 |
11 | connectivityCheck: true | 11 | connectivityCheck: true |
12 | 12 | ||
13 | defaults: | ||
14 | # columns, list | ||
15 | layout: columns | ||
16 | # auto, light, dark | ||
17 | colorTheme: auto | ||
18 | |||
13 | theme: default | 19 | theme: default |
14 | colors: | 20 | colors: |
15 | light: | 21 | light: |
diff --git a/src/components/DarkMode.vue b/src/components/DarkMode.vue index 80491fa..677238a 100644 --- a/src/components/DarkMode.vue +++ b/src/components/DarkMode.vue | |||
@@ -15,6 +15,9 @@ | |||
15 | <script> | 15 | <script> |
16 | export default { | 16 | export default { |
17 | name: "Darkmode", | 17 | name: "Darkmode", |
18 | props: { | ||
19 | defaultValue: String, | ||
20 | }, | ||
18 | data: function () { | 21 | data: function () { |
19 | return { | 22 | return { |
20 | isDark: null, | 23 | isDark: null, |
@@ -30,6 +33,17 @@ export default { | |||
30 | if ("overrideDark" in localStorage) { | 33 | if ("overrideDark" in localStorage) { |
31 | // Light theme is 1 and Dark theme is 2 | 34 | // Light theme is 1 and Dark theme is 2 |
32 | this.mode = JSON.parse(localStorage.overrideDark) ? 2 : 1; | 35 | this.mode = JSON.parse(localStorage.overrideDark) ? 2 : 1; |
36 | } else { | ||
37 | switch (this.defaultValue) { | ||
38 | case "light": | ||
39 | this.mode = 1; | ||
40 | break; | ||
41 | case "dark": | ||
42 | this.mode = 2; | ||
43 | break; | ||
44 | default: | ||
45 | this.mode = 0; | ||
46 | } | ||
33 | } | 47 | } |
34 | this.isDark = this.getIsDark(); | 48 | this.isDark = this.getIsDark(); |
35 | this.$emit("updated", this.isDark); | 49 | this.$emit("updated", this.isDark); |
diff --git a/src/components/SettingToggle.vue b/src/components/SettingToggle.vue index 985ca84..6c8a10f 100644 --- a/src/components/SettingToggle.vue +++ b/src/components/SettingToggle.vue | |||
@@ -12,6 +12,7 @@ export default { | |||
12 | name: String, | 12 | name: String, |
13 | icon: String, | 13 | icon: String, |
14 | iconAlt: String, | 14 | iconAlt: String, |
15 | defaultValue: Boolean, | ||
15 | }, | 16 | }, |
16 | data: function () { | 17 | data: function () { |
17 | return { | 18 | return { |
@@ -24,6 +25,8 @@ export default { | |||
24 | 25 | ||
25 | if (this.name in localStorage) { | 26 | if (this.name in localStorage) { |
26 | this.value = JSON.parse(localStorage[this.name]); | 27 | this.value = JSON.parse(localStorage[this.name]); |
28 | } else { | ||
29 | this.value = this.defaultValue; | ||
27 | } | 30 | } |
28 | 31 | ||
29 | this.$emit("updated", this.value); | 32 | this.$emit("updated", this.value); |