]> git.immae.eu Git - github/bastienwirtz/homer.git/commitdiff
Fix #121 - Change default theme and layout from config 311/head
authorAryess <yoann.celton@gmail.com>
Tue, 12 Oct 2021 00:28:41 +0000 (11:28 +1100)
committerAryess <yoann.celton@gmail.com>
Tue, 12 Oct 2021 00:37:24 +0000 (11:37 +1100)
docs/configuration.md
src/App.vue
src/assets/defaults.yml
src/components/DarkMode.vue
src/components/SettingToggle.vue

index 50b5bd5b639c2f75914345336b17b2070e743261..65fd018d0f0be53e25af0bff9b13841ae60f8df3 100644 (file)
@@ -29,6 +29,11 @@ proxy:
   # NOT All custom services implements this new option YET. Support will be extended very soon.
   useCredentials: false # send cookies & authorization headers when fetching service specific data. Set to `true` if you use an authentication proxy. Can be overrided on service level. 
 
+# Set the default layout and color scheme
+defaults:
+  layout: columns # Either 'columns', or 'list'
+  colorTheme: auto # One of 'auto', 'light', or 'dark'
+
 # Optional theming
 theme: default # 'default' or one of the themes available in 'src/assets/themes'.
 
index c263c8a0572ee096ba8ca6e17c63cf09568a378f..1f1791ca616c0786236dc9901b7a131575e8f861 100644 (file)
         :links="config.links"
         @navbar-toggle="showMenu = !showMenu"
       >
-        <DarkMode @updated="isDark = $event" />
+        <DarkMode
+          @updated="isDark = $event"
+          :defaultValue="this.config.defaults.colorTheme"
+        />
 
         <SettingToggle
           @updated="vlayout = $event"
           name="vlayout"
           icon="fa-list"
           iconAlt="fa-columns"
+          :defaultValue="this.config.defaults.layout == 'columns'"
         />
 
         <SearchInput
index ed1fbc9de64e6f7541b54d7018fc0721904da023..85f2698e2647669c2380a93232c8f380ecacac6c 100644 (file)
@@ -10,6 +10,12 @@ footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a hre
 columns: 3
 connectivityCheck: true
 
+defaults:
+  # columns, list
+  layout: columns
+  # auto, light, dark
+  colorTheme: auto
+
 theme: default
 colors:
   light:
index 80491fafae8d2dc9fb6f467146cac0e7db8495a8..677238acbd101bdf4683e554b66b6a4a0028f2ba 100644 (file)
@@ -15,6 +15,9 @@
 <script>
 export default {
   name: "Darkmode",
+  props: {
+    defaultValue: String,
+  },
   data: function () {
     return {
       isDark: null,
@@ -30,6 +33,17 @@ export default {
     if ("overrideDark" in localStorage) {
       // Light theme is 1 and Dark theme is 2
       this.mode = JSON.parse(localStorage.overrideDark) ? 2 : 1;
+    } else {
+      switch (this.defaultValue) {
+        case "light":
+          this.mode = 1;
+          break;
+        case "dark":
+          this.mode = 2;
+          break;
+        default:
+          this.mode = 0;
+      }
     }
     this.isDark = this.getIsDark();
     this.$emit("updated", this.isDark);
index 985ca84f8f0c6344fa01395b062c8a72eb9599d3..6c8a10fa87a455accd9d25abbf5570a389fc4ca0 100644 (file)
@@ -12,6 +12,7 @@ export default {
     name: String,
     icon: String,
     iconAlt: String,
+    defaultValue: Boolean,
   },
   data: function () {
     return {
@@ -24,6 +25,8 @@ export default {
 
     if (this.name in localStorage) {
       this.value = JSON.parse(localStorage[this.name]);
+    } else {
+      this.value = this.defaultValue;
     }
 
     this.$emit("updated", this.value);