From 8454b6ea8053cd5341b9bde95dc6c38252c13cfc Mon Sep 17 00:00:00 2001 From: Peter Holmberg Date: Thu, 17 Dec 2020 13:56:42 +0100 Subject: [PATCH] Expressions: Replace query input fields with select. (#29816) * simple-select * made the select slighttly wider --- packages/grafana-data/src/types/datasource.ts | 1 + .../expressions/ExpressionQueryEditor.tsx | 30 +++++++++---------- .../query/components/QueryEditorRow.tsx | 4 ++- .../query/components/QueryEditorRows.tsx | 1 + 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/packages/grafana-data/src/types/datasource.ts b/packages/grafana-data/src/types/datasource.ts index b0369bd61c8..e3cf77ae476 100644 --- a/packages/grafana-data/src/types/datasource.ts +++ b/packages/grafana-data/src/types/datasource.ts @@ -339,6 +339,7 @@ export interface QueryEditorProps< range?: TimeRange; exploreId?: any; history?: HistoryItem[]; + queries?: DataQuery[]; } // TODO: not really needed but used as type in some data sources and in DataQueryRequest diff --git a/public/app/features/expressions/ExpressionQueryEditor.tsx b/public/app/features/expressions/ExpressionQueryEditor.tsx index c3281d0598e..faf6b5d2ecf 100644 --- a/public/app/features/expressions/ExpressionQueryEditor.tsx +++ b/public/app/features/expressions/ExpressionQueryEditor.tsx @@ -107,6 +107,14 @@ export class ExpressionQueryEditor extends PureComponent { }); }; + onRefIdChange = (value: SelectableValue) => { + const { query, onChange } = this.props; + onChange({ + ...query, + expression: value.value, + }); + }; + onExpressionChange = (evt: ChangeEvent) => { const { query, onChange } = this.props; onChange({ @@ -124,13 +132,15 @@ export class ExpressionQueryEditor extends PureComponent { }; render() { - const { query } = this.props; + const { query, queries } = this.props; const selected = gelTypes.find(o => o.value === query.type); const reducer = reducerTypes.find(o => o.value === query.reducer); const downsampler = downsamplingTypes.find(o => o.value === query.downsampler); const upsampler = upsamplingTypes.find(o => o.value === query.upsampler); const labelWidth = 14; + const refIds = queries!.filter(q => query.refId !== q.refId).map(q => ({ value: q.refId, label: q.refId })); + return (
@@ -157,26 +167,16 @@ export class ExpressionQueryEditor extends PureComponent { + + + +