import { NbThemeService } from '@nebular/theme';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
+import { ConfigService, IConfig } from '../../@core-xds/services/config.service';
import { SupervisionService } from '../../@core-xds/services/supervision.service';
import { AlertService } from '../../@core-xds/services/alert.service';
export class SupervisionComponent implements OnInit {
+ /* TODO bind tm_* and refresh in UI */
@Input() theme = 'light';
- @Input() tm_from = 1528988550450;
- @Input() tm_to = 1528988842496;
+ @Input() tm_from = 'now-60s';
+ @Input() tm_to = 'now';
+ @Input() refresh = '5s';
@Input() scroll_factor = 10000;
@Input() zoom_factor = 100000;
private alert: AlertService,
private themeService: NbThemeService,
private sanitizer: DomSanitizer,
+ private configSvr: ConfigService,
) {
}
+ Config: IConfig = <IConfig>{};
+
ngOnInit() {
+ this.configSvr.Conf$.subscribe(cfg => this.Config = cfg);
+
this._initDashboard();
this._initPanels();
}
timeChange(val: number) {
+ /* TODO: convert tm_from string to number
this.tm_from += val * this.scroll_factor;
this.tm_to += val * this.scroll_factor;
this._initPanels();
+ */
}
zoomOut() {
+ /* TODO: convert tm_from string to number
this.tm_from -= this.zoom_factor;
this.tm_to += this.zoom_factor;
this._initPanels();
+ */
}
-
private _initDashboard() {
+ // http://localhost:3000/d/Lbpwc6Iiz/agl-xds-supervisor?from=now-40s&to=now&refresh=5s
this.dashboards.forEach(dd => {
- dd.url = this._buildDashboardUrl(dd.shortname, this.tm_from, this.tm_to, this.theme);
+ dd.url = this._buildDashboardUrl(dd.shortname, this.tm_from, this.tm_to, this.refresh, this.theme);
dd.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(dd.url);
});
}
private _initPanels() {
this.panels.forEach(gg => {
- gg.url = this._buildPanelUrl(gg.index, this.tm_from, this.tm_to, this.theme);
+ gg.url = this._buildPanelUrl(gg.index, this.tm_from, this.tm_to, this.refresh, this.theme);
gg.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(gg.url);
});
}
- private _buildDashboardUrl(sname: string, from: number, to: number, theme: string) {
+ private _buildDashboardUrl(sname, from, to, refresh, theme: string) {
+ // FIXME get sname from config to support several dashboards
let url = 'http://localhost:3000/d/Lbpwc6Iiz/' + sname;
+ if (this.Config.grafanaDashboardUrl !== '') {
+ url = this.Config.grafanaDashboardUrl;
+ }
url += '?orgId=1';
- url += '&from=' + from;
- url += '&to=' + to;
- url += '&theme=' + theme;
+ if (from !== '') { url += '&from=' + from; }
+ if (to !== '') { url += '&to=' + to; }
+ if (theme !== '') { url += '&theme=' + theme; }
+ if (refresh !== '') { url += '&refresh=' + refresh; }
+ url += '&sidemenu=close';
return url;
}
- private _buildPanelUrl(idx: string, from: number, to: number, theme: string) {
+ private _buildPanelUrl(idx, from, to, refresh, theme: string) {
let url = 'http://localhost:3000/d-solo/Lbpwc6Iiz/agl-xds-supervisor';
+ if (this.Config.grafanaDashboardUrl !== '') {
+ url = this.Config.grafanaDashboardUrl;
+ }
url += '?panelId=' + idx;
url += '&orgId=1';
- url += '&from=' + from;
- url += '&to=' + to;
- url += '&theme=' + theme;
+ if (from !== '') { url += '&from=' + from; }
+ if (to !== '') { url += '&to=' + to; }
+ if (theme !== '') { url += '&theme=' + theme; }
+ if (refresh !== '') { url += '&refresh=' + refresh; }
url += '&sidemenu=close';
return url;
}