X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FApp.vue;h=fddc5853a6f20acbbf961a520313192b9ba8f057;hb=344c367ccd081421deee93ca7089b8a3569ec4d7;hp=f7fd34adc30729e6b40790cb6141aea2fe427d52;hpb=b9c5fcf085bed9c6100283133531b36bfbb06cf0;p=github%2Fbastienwirtz%2Fhomer.git diff --git a/src/App.vue b/src/App.vue index f7fd34a..fddc585 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,7 +5,7 @@ :class="[ `theme-${config.theme}`, isDark ? 'is-dark' : 'is-light', - !config.footer ? 'no-footer' : '' + !config.footer ? 'no-footer' : '', ]" > @@ -13,7 +13,7 @@
@@ -132,7 +132,7 @@ export default { SearchInput, SettingToggle, DarkMode, - DynamicTheme + DynamicTheme, }, data: function () { return { @@ -142,33 +142,30 @@ export default { filter: "", vlayout: true, isDark: null, - showMenu: false + showMenu: false, }; }, created: async function () { - try { - const defaults = jsyaml.load(defaultConfig); - let config = await this.getConfig(); - - this.config = merge(defaults, config); - - console.log(this.config); - this.services = this.config.services; - document.title = `${this.config.title} | ${this.config.subtitle}`; - } catch (error) { - this.offline = true; - } + const defaults = jsyaml.load(defaultConfig); + let config = await this.getConfig(); + this.config = merge(defaults, config); + this.services = this.config.services; + document.title = `${this.config.title} | ${this.config.subtitle}`; }, methods: { getConfig: function () { - return fetch("config.yml").then(function (response) { - if (response.status != 200) { - return; - } - return response.text().then(function (body) { - return jsyaml.load(body); + return fetch("config.yml") + .then((response) => { + if (!response.ok) { + throw Error(response.statusText); + } + return response.text().then((body) => { + return jsyaml.load(body); + }); + }) + .catch((error) => { + return this.handleErrors("⚠️ Error loading configuration", error); }); - }); }, matchesFilter: function (item) { return ( @@ -205,10 +202,19 @@ export default { { name: filter, icon: "fas fa-search", - items: searchResultItems - } + items: searchResultItems, + }, ]; - } - } + }, + handleErrors: function (title, content) { + return { + message: { + title: title, + style: "is-danger", + content: content, + }, + }; + }, + }, };