From eea91d288500e42d3bac58757f8d16ef16b3f7bc Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Wed, 12 Dec 2018 09:14:06 +0100 Subject: [PATCH] remove redundant default value --- .../datasource/stackdriver/datasource.ts | 1 + .../stackdriver/partials/query.editor.html | 3 +- .../stackdriver/partials/query.filter.html | 12 ++-- .../datasource/stackdriver/query_ctrl.ts | 7 +- .../stackdriver/query_filter_ctrl.ts | 72 +++++++++++-------- .../specs/query_filter_ctrl.test.ts | 2 - 6 files changed, 53 insertions(+), 44 deletions(-) diff --git a/public/app/plugins/datasource/stackdriver/datasource.ts b/public/app/plugins/datasource/stackdriver/datasource.ts index b6050ebf908..060028dd099 100644 --- a/public/app/plugins/datasource/stackdriver/datasource.ts +++ b/public/app/plugins/datasource/stackdriver/datasource.ts @@ -273,6 +273,7 @@ export default class StackdriverDatasource { m.service = service; m.serviceShortName = serviceShortName; m.displayName = m.displayName || m.type; + return m; }); } diff --git a/public/app/plugins/datasource/stackdriver/partials/query.editor.html b/public/app/plugins/datasource/stackdriver/partials/query.editor.html index 5c7bc8935b1..66961d106aa 100755 --- a/public/app/plugins/datasource/stackdriver/partials/query.editor.html +++ b/public/app/plugins/datasource/stackdriver/partials/query.editor.html @@ -1,6 +1,5 @@ - +
diff --git a/public/app/plugins/datasource/stackdriver/partials/query.filter.html b/public/app/plugins/datasource/stackdriver/partials/query.filter.html index df3821ac463..583744d0e67 100644 --- a/public/app/plugins/datasource/stackdriver/partials/query.filter.html +++ b/public/app/plugins/datasource/stackdriver/partials/query.filter.html @@ -6,8 +6,8 @@ selected="ctrl.service" options="ctrl.services" searchable="false" - placeholder="ctrl.defaultServiceValue" - className=""width-15"" + placeholder="'Select Services'" + className="'width-15'" >
@@ -17,11 +17,11 @@ Metric
diff --git a/public/app/plugins/datasource/stackdriver/query_ctrl.ts b/public/app/plugins/datasource/stackdriver/query_ctrl.ts index 48ea8ce140a..bd591ecf796 100644 --- a/public/app/plugins/datasource/stackdriver/query_ctrl.ts +++ b/public/app/plugins/datasource/stackdriver/query_ctrl.ts @@ -34,13 +34,10 @@ export class StackdriverQueryCtrl extends QueryCtrl { valueType: any; }; - defaultDropdownValue = 'Select Metric'; - defaultServiceValue = 'All Services'; - defaults = { defaultProject: 'loading project...', - metricType: this.defaultDropdownValue, - service: this.defaultServiceValue, + metricType: '', + service: '', metric: '', unit: '', aggregation: { diff --git a/public/app/plugins/datasource/stackdriver/query_filter_ctrl.ts b/public/app/plugins/datasource/stackdriver/query_filter_ctrl.ts index dd7178ecca0..ba96cfc5a60 100644 --- a/public/app/plugins/datasource/stackdriver/query_filter_ctrl.ts +++ b/public/app/plugins/datasource/stackdriver/query_filter_ctrl.ts @@ -15,8 +15,6 @@ export class StackdriverFilter { target: '=', datasource: '=', refresh: '&', - defaultDropdownValue: '<', - defaultServiceValue: '<', hideGroupBys: '<', }, }; @@ -48,9 +46,6 @@ export class StackdriverFilterCtrl { constructor(private $scope, private uiSegmentSrv, private templateSrv, private $rootScope) { this.datasource = $scope.datasource; this.target = $scope.target; - this.metricType = $scope.defaultDropdownValue; - this.service = $scope.defaultServiceValue; - this.metricDescriptors = []; this.metrics = []; this.metricGroups = []; @@ -66,7 +61,7 @@ export class StackdriverFilterCtrl { } handleMetricTypeChange(value) { - this.metricType = value; + this.target.metricType = value; this.onMetricTypeChange(); } @@ -116,7 +111,6 @@ export class StackdriverFilterCtrl { } getServicesList() { - const defaultValue = { value: this.$scope.defaultServiceValue, label: this.$scope.defaultServiceValue }; const services = this.metricDescriptors.map(m => { return { value: m.service, @@ -128,10 +122,10 @@ export class StackdriverFilterCtrl { this.service = this.target.service; } - return services.length > 0 ? [defaultValue, ..._.uniqBy(services, 'value')] : []; + return services.length > 0 ? _.uniqBy(services, 'value') : []; } - getMetricGroups() { + getMetricGroupsOld() { return this.metrics.reduce((acc, curr) => { const group = acc.find(group => group.service === curr.service); if (group) { @@ -150,6 +144,27 @@ export class StackdriverFilterCtrl { }, []); } + getMetricGroups() { + return [ + this.getTemplateVariablesGroup(), + { + label: 'Metrics', + options: this.metrics, + }, + ]; + } + + getTemplateVariablesGroup() { + return { + label: 'Template Variables', + options: this.templateSrv.variables.map(v => ({ + label: `$${v.name}`, + value: `$${v.name}`, + description: `$${v.definition}`, + })), + }; + } + insertTemplateVariables(options) { const templateVariables = { label: 'Template Variables', @@ -174,29 +189,28 @@ export class StackdriverFilterCtrl { }; }); - let result; - if (this.target.service === this.$scope.defaultServiceValue) { - result = metrics.map(m => ({ ...m, text: `${m.service} - ${m.text}` })); - } else { - result = metrics.filter(m => m.service === this.target.service); + const metricsByService = metrics.filter(m => m.service === this.target.service); + if ( + metricsByService.length > 0 && + !metricsByService.some(m => m.value === this.templateSrv.replace(this.target.metricType)) + ) { + this.target.metricType = metricsByService[0].value; } - - if (result.find(m => m.value === this.templateSrv.replace(this.target.metricType))) { - this.metricType = this.target.metricType; - } else if (result.length > 0) { - this.metricType = this.target.metricType = result[0].value; - } - return result; + return metricsByService; } async getLabels() { this.loadLabelsPromise = new Promise(async resolve => { try { - const { meta } = await this.datasource.getLabels(this.target.metricType, this.target.refId); - this.metricLabels = meta.metricLabels; - this.resourceLabels = meta.resourceLabels; - this.resourceTypes = meta.resourceTypes; - resolve(); + if (this.target.metricType) { + const { meta } = await this.datasource.getLabels(this.target.metricType, this.target.refId); + this.metricLabels = meta.metricLabels; + this.resourceLabels = meta.resourceLabels; + this.resourceTypes = meta.resourceTypes; + resolve(); + } else { + resolve(); + } } catch (error) { if (error.data && error.data.message) { console.log(error.data.message); @@ -216,7 +230,7 @@ export class StackdriverFilterCtrl { this.setMetricType(); this.getLabels(); if (!this.metrics.find(m => m.value === this.target.metricType)) { - this.target.metricType = this.$scope.defaultDropdownValue; + this.target.metricType = ''; } else { this.$scope.refresh(); } @@ -229,9 +243,9 @@ export class StackdriverFilterCtrl { } setMetricType() { - this.target.metricType = this.metricType; + // this.target.metricType = this.metricType; const { valueType, metricKind, unit } = this.metricDescriptors.find( - m => m.type === this.templateSrv.replace(this.metricType) + m => m.type === this.templateSrv.replace(this.target.metricType) ); this.target.unit = unit; this.target.valueType = valueType; diff --git a/public/app/plugins/datasource/stackdriver/specs/query_filter_ctrl.test.ts b/public/app/plugins/datasource/stackdriver/specs/query_filter_ctrl.test.ts index 020db584508..e8d04357cb8 100644 --- a/public/app/plugins/datasource/stackdriver/specs/query_filter_ctrl.test.ts +++ b/public/app/plugins/datasource/stackdriver/specs/query_filter_ctrl.test.ts @@ -409,8 +409,6 @@ function createCtrlWithFakes(existingFilters?: string[]) { return 'project'; }, }, - defaultDropdownValue: 'Select Metric', - defaultServiceValue: 'All Services', refresh: () => {}, };