+ buildDashboard: async function () {
+ const defaults = jsyaml.load(defaultConfig);
+ let config;
+ try {
+ config = await this.getConfig();
+ const path =
+ window.location.hash.substring(1) != ""
+ ? window.location.hash.substring(1)
+ : null;
+
+ if (path) {
+ let pathConfig = await this.getConfig(`assets/${path}.yml`); // the slash (/) is included in the pathname
+ config = Object.assign(config, pathConfig);
+ }
+ } catch (error) {
+ console.log(error);
+ config = this.handleErrors("⚠️ Error loading configuration", error);
+ }
+ this.config = merge(defaults, config);
+ this.services = this.config.services;
+ document.title =
+ this.config.documentTitle ||
+ `${this.config.title} | ${this.config.subtitle}`;
+ if (this.config.stylesheet) {
+ let stylesheet = "";
+ for (const file of this.config.stylesheet) {
+ stylesheet += `@import "${file}";`;
+ }
+ this.createStylesheet(stylesheet);
+ }
+ },