From a738945a888fc6b8e3fc9c263aa7a4580039727a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Wed, 16 Mar 2016 14:19:30 +0100 Subject: [PATCH] feat(data source observerable): started work on handling data source observerable --- .../app/features/panel/metrics_panel_ctrl.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/public/app/features/panel/metrics_panel_ctrl.ts b/public/app/features/panel/metrics_panel_ctrl.ts index e1ad782fa74..51380653b7b 100644 --- a/public/app/features/panel/metrics_panel_ctrl.ts +++ b/public/app/features/panel/metrics_panel_ctrl.ts @@ -26,6 +26,7 @@ class MetricsPanelCtrl extends PanelCtrl { timeInfo: any; skipDataOnInit: boolean; datasources: any[]; + dataSubscription: any; constructor($scope, $injector) { super($scope, $injector); @@ -182,6 +183,12 @@ class MetricsPanelCtrl extends PanelCtrl { return datasource.query(metricsQuery).then(results => { this.setTimeQueryEnd(); + // check for if data source returns observable + if (results && results.subscribe) { + this.handleObservable(results); + return {data: []}; + } + if (this.dashboard.snapshot) { this.panel.snapshotData = results; } @@ -193,6 +200,20 @@ class MetricsPanelCtrl extends PanelCtrl { } } + handleObservable(observable) { + this.dataSubscription = observable.subscribe({ + next: (data) => { + console.log('panel: observer got data'); + }, + error: (error) => { + console.log('panel: observer got error'); + }, + complete: () => { + console.log('panel: observer got complete'); + } + }); + } + setDatasource(datasource) { // switching to mixed if (datasource.meta.mixed) {