diff --git a/public/app/features/panel/metrics_ds_selector.ts b/public/app/features/panel/metrics_ds_selector.ts
index d925977dd89..c541297a963 100644
--- a/public/app/features/panel/metrics_ds_selector.ts
+++ b/public/app/features/panel/metrics_ds_selector.ts
@@ -17,7 +17,7 @@ var template = `
@@ -28,15 +28,9 @@ var template = `
-
-
-
+
@@ -46,6 +40,7 @@ var template = `
export class MetricsDsSelectorCtrl {
dsSegment: any;
+ mixedDsSegment: any;
dsName: string;
panelCtrl: any;
datasources: any[];
@@ -68,10 +63,13 @@ export class MetricsDsSelectorCtrl {
}
this.dsSegment = uiSegmentSrv.newSegment({value: this.current.name, selectMode: true});
+ this.mixedDsSegment = uiSegmentSrv.newSegment({value: 'Add query', selectMode: true});
}
- getOptions() {
- return Promise.resolve(this.datasources.map(value => {
+ getOptions(includeBuiltin) {
+ return Promise.resolve(this.datasources.filter(value => {
+ return includeBuiltin || !value.meta.builtIn;
+ }).map(value => {
return this.uiSegmentSrv.newSegment(value.name);
}));
}
@@ -84,13 +82,18 @@ export class MetricsDsSelectorCtrl {
}
}
- addDataQuery(datasource) {
+ mixedDatasourceChanged() {
var target: any = {isNew: true};
-
- if (datasource) {
- target.datasource = datasource.name;
+ var ds = _.find(this.datasources, {name: this.mixedDsSegment.value});
+ if (ds) {
+ target.datasource = ds.name;
+ this.panelCtrl.panel.targets.push(target);
+ this.mixedDsSegment.value = '';
}
+ }
+ addDataQuery() {
+ var target: any = {isNew: true};
this.panelCtrl.panel.targets.push(target);
}
}