use ds template srv reference

pull/14751/head
Erik Sundell 7 years ago
parent 2f342b8917
commit b9cf15786d
  1. 1
      public/app/plugins/datasource/stackdriver/angular_wrappers.ts
  2. 2
      public/app/plugins/datasource/stackdriver/components/Aggregations.tsx
  3. 6
      public/app/plugins/datasource/stackdriver/components/Alignments.tsx
  4. 25
      public/app/plugins/datasource/stackdriver/components/QueryEditor.tsx
  5. 1
      public/app/plugins/datasource/stackdriver/partials/query.editor.html
  6. 5
      public/app/plugins/datasource/stackdriver/query_ctrl.ts

@ -9,6 +9,5 @@ export function registerAngularDirectives() {
['events', { watchDepth: 'reference' }], ['events', { watchDepth: 'reference' }],
['uiSegmentSrv', { watchDepth: 'reference' }], ['uiSegmentSrv', { watchDepth: 'reference' }],
['datasource', { watchDepth: 'reference' }], ['datasource', { watchDepth: 'reference' }],
['templateSrv', { watchDepth: 'reference' }],
]); ]);
} }

@ -37,7 +37,7 @@ export class Aggregations extends React.Component<Props, State> {
setAggOptions({ metricDescriptor }: Props) { setAggOptions({ metricDescriptor }: Props) {
let aggOptions = []; let aggOptions = [];
if (metricDescriptor !== null) { if (metricDescriptor) {
aggOptions = getAggregationOptionsByMetric(metricDescriptor.valueType, metricDescriptor.metricKind).map(a => ({ aggOptions = getAggregationOptionsByMetric(metricDescriptor.valueType, metricDescriptor.metricKind).map(a => ({
...a, ...a,
label: a.text, label: a.text,

@ -4,13 +4,9 @@ import _ from 'lodash';
import { StackdriverPicker } from './StackdriverPicker'; import { StackdriverPicker } from './StackdriverPicker';
export interface Props { export interface Props {
onChange: (metricDescriptor) => void; onChange: (perSeriesAligner) => void;
templateSrv: any; templateSrv: any;
alignOptions: any[]; alignOptions: any[];
metricDescriptor: {
valueType: string;
metricKind: string;
};
perSeriesAligner: string; perSeriesAligner: string;
} }

@ -17,7 +17,6 @@ export interface Props {
target: Target; target: Target;
events: any; events: any;
datasource: any; datasource: any;
templateSrv: any;
uiSegmentSrv: any; uiSegmentSrv: any;
} }
@ -51,10 +50,10 @@ export class QueryEditor extends React.Component<Props, State> {
state: State = DefaultTarget; state: State = DefaultTarget;
componentDidMount() { componentDidMount() {
const { events } = this.props; const { events, target, datasource } = this.props;
events.on('data-received', this.onDataReceived.bind(this)); events.on('data-received', this.onDataReceived.bind(this));
events.on('data-error', this.onDataError.bind(this)); events.on('data-error', this.onDataError.bind(this));
const { perSeriesAligner, alignOptions } = getAlignmentPickerData(this.props.target, this.props.templateSrv); const { perSeriesAligner, alignOptions } = getAlignmentPickerData(target, datasource.templateSrv);
this.setState({ this.setState({
...this.props.target, ...this.props.target,
alignOptions, alignOptions,
@ -89,9 +88,10 @@ export class QueryEditor extends React.Component<Props, State> {
} }
handleMetricTypeChange({ valueType, metricKind, type, unit }) { handleMetricTypeChange({ valueType, metricKind, type, unit }) {
const { datasource, onQueryChange, onExecuteQuery } = this.props;
const { perSeriesAligner, alignOptions } = getAlignmentPickerData( const { perSeriesAligner, alignOptions } = getAlignmentPickerData(
{ valueType, metricKind, perSeriesAligner: this.state.perSeriesAligner }, { valueType, metricKind, perSeriesAligner: this.state.perSeriesAligner },
this.props.templateSrv datasource.templateSrv
); );
this.setState( this.setState(
{ {
@ -103,8 +103,8 @@ export class QueryEditor extends React.Component<Props, State> {
metricKind, metricKind,
}, },
() => { () => {
this.props.onQueryChange(this.state); onQueryChange(this.state);
this.props.onExecuteQuery(); onExecuteQuery();
} }
); );
} }
@ -129,14 +129,14 @@ export class QueryEditor extends React.Component<Props, State> {
lastQuery, lastQuery,
lastQueryError, lastQueryError,
} = this.state; } = this.state;
const { templateSrv, datasource, uiSegmentSrv } = this.props; const { datasource, uiSegmentSrv } = this.props;
return ( return (
<React.Fragment> <React.Fragment>
<Metrics <Metrics
defaultProject={defaultProject} defaultProject={defaultProject}
metricType={metricType} metricType={metricType}
templateSrv={templateSrv} templateSrv={datasource.templateSrv}
datasource={datasource} datasource={datasource}
onChange={value => this.handleMetricTypeChange(value)} onChange={value => this.handleMetricTypeChange(value)}
> >
@ -147,13 +147,13 @@ export class QueryEditor extends React.Component<Props, State> {
groupBysChanged={value => this.handleChange('groupBys', value)} groupBysChanged={value => this.handleChange('groupBys', value)}
target={this.state} target={this.state}
uiSegmentSrv={uiSegmentSrv} uiSegmentSrv={uiSegmentSrv}
templateSrv={templateSrv} templateSrv={datasource.templateSrv}
datasource={datasource} datasource={datasource}
metricType={metric ? metric.type : ''} metricType={metric ? metric.type : ''}
/> />
<Aggregations <Aggregations
metricDescriptor={metric} metricDescriptor={metric}
templateSrv={templateSrv} templateSrv={datasource.templateSrv}
crossSeriesReducer={crossSeriesReducer} crossSeriesReducer={crossSeriesReducer}
groupBys={groupBys} groupBys={groupBys}
onChange={value => this.handleChange('crossSeriesReducer', value)} onChange={value => this.handleChange('crossSeriesReducer', value)}
@ -162,8 +162,7 @@ export class QueryEditor extends React.Component<Props, State> {
displayAdvancedOptions && ( displayAdvancedOptions && (
<Alignments <Alignments
alignOptions={alignOptions} alignOptions={alignOptions}
metricDescriptor={metric} templateSrv={datasource.templateSrv}
templateSrv={templateSrv}
perSeriesAligner={perSeriesAligner} perSeriesAligner={perSeriesAligner}
onChange={value => this.handleChange('perSeriesAligner', value)} onChange={value => this.handleChange('perSeriesAligner', value)}
/> />
@ -173,7 +172,7 @@ export class QueryEditor extends React.Component<Props, State> {
<AliasBy value={aliasBy} onChange={value => this.handleChange('aliasBy', value)} /> <AliasBy value={aliasBy} onChange={value => this.handleChange('aliasBy', value)} />
<AlignmentPeriods <AlignmentPeriods
templateSrv={templateSrv} templateSrv={datasource.templateSrv}
alignmentPeriod={alignmentPeriod} alignmentPeriod={alignmentPeriod}
onChange={value => this.handleChange('alignmentPeriod', value)} onChange={value => this.handleChange('alignmentPeriod', value)}
/> />

@ -2,7 +2,6 @@
<query-editor <query-editor
target="ctrl.target" target="ctrl.target"
events="ctrl.panelCtrl.events" events="ctrl.panelCtrl.events"
template-srv="ctrl.templateSrv"
datasource="ctrl.datasource" datasource="ctrl.datasource"
on-query-change="(ctrl.handleQueryChange)" on-query-change="(ctrl.handleQueryChange)"
on-execute-query="(ctrl.handleExecuteQuery)" on-execute-query="(ctrl.handleExecuteQuery)"

@ -1,6 +1,5 @@
import _ from 'lodash'; import _ from 'lodash';
import { QueryCtrl } from 'app/plugins/sdk'; import { QueryCtrl } from 'app/plugins/sdk';
import './query_aggregation_ctrl';
import './query_filter_ctrl'; import './query_filter_ctrl';
import { StackdriverPicker } from './components/StackdriverPicker'; import { StackdriverPicker } from './components/StackdriverPicker';
import { react2AngularDirective } from 'app/core/utils/react2angular'; import { react2AngularDirective } from 'app/core/utils/react2angular';
@ -9,13 +8,11 @@ import { Target } from './types';
export class StackdriverQueryCtrl extends QueryCtrl { export class StackdriverQueryCtrl extends QueryCtrl {
static templateUrl = 'partials/query.editor.html'; static templateUrl = 'partials/query.editor.html';
templateSrv: any;
uiSegmentSrv: any; uiSegmentSrv: any;
/** @ngInject */ /** @ngInject */
constructor($scope, $injector, templateSrv, uiSegmentSrv) { constructor($scope, $injector, uiSegmentSrv) {
super($scope, $injector); super($scope, $injector);
this.templateSrv = templateSrv;
this.uiSegmentSrv = uiSegmentSrv; this.uiSegmentSrv = uiSegmentSrv;
react2AngularDirective('stackdriverPicker', StackdriverPicker, [ react2AngularDirective('stackdriverPicker', StackdriverPicker, [
'options', 'options',

Loading…
Cancel
Save