X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=webapp%2Fsrc%2Fapp%2F%40core-xds%2Fservices%2Fconfig.service.ts;h=beeeea817e6f591344f88d0f4064a36d9ad1ad88;hb=48739a930ceb0c6a4b843471750da70db2052890;hp=168b278e258e6d109899897b098fcbe10a54496c;hpb=ee66af78c42c4d7ff33f104415bc09d60dbdc27b;p=src%2Fxds%2Fxds-agent.git diff --git a/webapp/src/app/@core-xds/services/config.service.ts b/webapp/src/app/@core-xds/services/config.service.ts index 168b278..beeeea8 100644 --- a/webapp/src/app/@core-xds/services/config.service.ts +++ b/webapp/src/app/@core-xds/services/config.service.ts @@ -26,6 +26,7 @@ import { BehaviorSubject } from 'rxjs/BehaviorSubject'; export interface IConfig { language: string; theme: string; + grafanaDashboardUrl: string; } @Injectable() @@ -36,6 +37,12 @@ export class ConfigService { private confSubject: BehaviorSubject; private confStore: IConfig; + private confDefault: IConfig = { + language: 'ENG', + theme: 'default', + grafanaDashboardUrl: 'http://localhost:3000', + }; + constructor( private cookie: CookieService, private themeService: NbThemeService, @@ -43,17 +50,20 @@ export class ConfigService { this.confSubject = >new BehaviorSubject(this.confStore); this.Conf$ = this.confSubject.asObservable(); - // Load initial config and apply it - this.load(); - this.themeService.changeTheme(this.confStore.theme); - // Save selected theme in cookie this.themeService.onThemeChange().subscribe(tm => { + if (typeof this.confStore === 'undefined') { + return; + } if (tm.name !== this.confStore.theme) { this.confStore.theme = tm.name; this.save(); } }); + + // Load initial config and apply it + this.load(); + this.themeService.changeTheme(this.confStore.theme); } // Load config @@ -62,17 +72,20 @@ export class ConfigService { const cookConf = this.cookie.getObject('xds-config'); if (cookConf != null) { this.confStore = cookConf; + this.confSubject.next(Object.assign({}, this.confStore)); } else { // Set default config - this.confStore = { - language: 'ENG', - theme: 'default', - }; + this.confStore = this.confDefault; + this.save(); } } // Save config into cookie - save() { + save(cfg?: IConfig) { + if (typeof cfg !== 'undefined') { + this.confStore = this.confDefault; + } + // Notify subscribers this.confSubject.next(Object.assign({}, this.confStore));