|
@@ -13,7 +13,8 @@ export class StackdriverFilter {
|
|
|
scope: {
|
|
scope: {
|
|
|
labelData: '<',
|
|
labelData: '<',
|
|
|
loading: '<',
|
|
loading: '<',
|
|
|
- target: '=',
|
|
|
|
|
|
|
+ groupBys: '<',
|
|
|
|
|
+ filters: '<',
|
|
|
filtersChanged: '&',
|
|
filtersChanged: '&',
|
|
|
groupBysChanged: '&',
|
|
groupBysChanged: '&',
|
|
|
hideGroupBys: '<',
|
|
hideGroupBys: '<',
|
|
@@ -28,19 +29,17 @@ export class StackdriverFilterCtrl {
|
|
|
groupBySegments: any[];
|
|
groupBySegments: any[];
|
|
|
filterSegments: FilterSegments;
|
|
filterSegments: FilterSegments;
|
|
|
removeSegment: any;
|
|
removeSegment: any;
|
|
|
- target: any;
|
|
|
|
|
|
|
|
|
|
/** @ngInject */
|
|
/** @ngInject */
|
|
|
constructor(private $scope, private uiSegmentSrv, private templateSrv, private $rootScope) {
|
|
constructor(private $scope, private uiSegmentSrv, private templateSrv, private $rootScope) {
|
|
|
this.$scope = $scope.$parent;
|
|
this.$scope = $scope.$parent;
|
|
|
- this.target = this.$scope.target;
|
|
|
|
|
|
|
|
|
|
this.initSegments(this.$scope.hideGroupBys);
|
|
this.initSegments(this.$scope.hideGroupBys);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
initSegments(hideGroupBys: boolean) {
|
|
initSegments(hideGroupBys: boolean) {
|
|
|
if (!hideGroupBys) {
|
|
if (!hideGroupBys) {
|
|
|
- this.groupBySegments = this.target.groupBys.map(groupBy => {
|
|
|
|
|
|
|
+ this.groupBySegments = this.$scope.groupBys.map(groupBy => {
|
|
|
return this.uiSegmentSrv.getSegmentForValue(groupBy);
|
|
return this.uiSegmentSrv.getSegmentForValue(groupBy);
|
|
|
});
|
|
});
|
|
|
this.ensurePlusButton(this.groupBySegments);
|
|
this.ensurePlusButton(this.groupBySegments);
|
|
@@ -50,7 +49,7 @@ export class StackdriverFilterCtrl {
|
|
|
|
|
|
|
|
this.filterSegments = new FilterSegments(
|
|
this.filterSegments = new FilterSegments(
|
|
|
this.uiSegmentSrv,
|
|
this.uiSegmentSrv,
|
|
|
- this.target,
|
|
|
|
|
|
|
+ this.$scope.filters,
|
|
|
this.getFilterKeys.bind(this),
|
|
this.getFilterKeys.bind(this),
|
|
|
this.getFilterValues.bind(this)
|
|
this.getFilterValues.bind(this)
|
|
|
);
|
|
);
|
|
@@ -93,7 +92,7 @@ export class StackdriverFilterCtrl {
|
|
|
async getFilterKeys(segment, removeText?: string) {
|
|
async getFilterKeys(segment, removeText?: string) {
|
|
|
let elements = await this.createLabelKeyElements();
|
|
let elements = await this.createLabelKeyElements();
|
|
|
|
|
|
|
|
- if (this.target.filters.indexOf(this.resourceTypeValue) !== -1) {
|
|
|
|
|
|
|
+ if (this.$scope.filters.indexOf(this.resourceTypeValue) !== -1) {
|
|
|
elements = elements.filter(e => e.value !== this.resourceTypeValue);
|
|
elements = elements.filter(e => e.value !== this.resourceTypeValue);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -111,7 +110,7 @@ export class StackdriverFilterCtrl {
|
|
|
async getGroupBys(segment) {
|
|
async getGroupBys(segment) {
|
|
|
let elements = await this.createLabelKeyElements();
|
|
let elements = await this.createLabelKeyElements();
|
|
|
|
|
|
|
|
- elements = elements.filter(e => this.target.groupBys.indexOf(e.value) === -1);
|
|
|
|
|
|
|
+ elements = elements.filter(e => this.$scope.groupBys.indexOf(e.value) === -1);
|
|
|
const noValueOrPlusButton = !segment || segment.type === 'plus-button';
|
|
const noValueOrPlusButton = !segment || segment.type === 'plus-button';
|
|
|
if (noValueOrPlusButton && elements.length === 0) {
|
|
if (noValueOrPlusButton && elements.length === 0) {
|
|
|
return [];
|
|
return [];
|
|
@@ -142,6 +141,7 @@ export class StackdriverFilterCtrl {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async getFilters(segment, index) {
|
|
async getFilters(segment, index) {
|
|
|
|
|
+ await this.$scope.loading;
|
|
|
const hasNoFilterKeys =
|
|
const hasNoFilterKeys =
|
|
|
this.$scope.labelData.metricLabels && Object.keys(this.$scope.labelData.metricLabels).length === 0;
|
|
this.$scope.labelData.metricLabels && Object.keys(this.$scope.labelData.metricLabels).length === 0;
|
|
|
return this.filterSegments.getFilters(segment, index, hasNoFilterKeys);
|
|
return this.filterSegments.getFilters(segment, index, hasNoFilterKeys);
|