# Homepage configuration
# See https://fontawesome.com/icons for icons options
+# Optional: Use external configuration file.
+# Using this will ignore remaining config in this file
+# externalConfig: https://example.com/server-luci/config.yaml
+
title: "App dashboard"
subtitle: "Homer"
logo: "assets/homer.png"
</h2>
<Service
v-for="item in group.items"
- :key="item.url"
+ :key="item.name"
v-bind:item="item"
class="column is-one-third-widescreen"
/>
document.title = `${this.config.title} | ${this.config.subtitle}`;
},
methods: {
- getConfig: function () {
- return fetch("config.yml")
- .then((response) => {
- if (!response.ok) {
- throw Error(response.statusText);
- }
- return response.text().then((body) => {
+ getConfig: function (path = "config.yml") {
+ return fetch(path).then((response) => {
+ if (!response.ok) {
+ throw Error(response.statusText);
+ }
+
+ const that = this;
+ return response
+ .text()
+ .then((body) => {
return jsyaml.load(body);
+ })
+ .then(function (config) {
+ if (config.externalConfig) {
+ return that.getConfig(config.externalConfig);
+ }
+ return config;
+ })
+ .catch((error) => {
+ return this.handleErrors("⚠️ Error loading configuration", error);
});
- })
- .catch((error) => {
- return this.handleErrors("⚠️ Error loading configuration", error);
- });
+ });
},
matchesFilter: function (item) {
return (