diff --git a/public/app/core/services/segment_srv.js b/public/app/core/services/segment_srv.js index cb11512e12f..836437a6dc5 100644 --- a/public/app/core/services/segment_srv.js +++ b/public/app/core/services/segment_srv.js @@ -7,6 +7,7 @@ function (angular, _, coreModule) { 'use strict'; coreModule.service('uiSegmentSrv', function($sce, templateSrv) { + var self = this; function MetricSegment(options) { if (options === '*' || options.value === '*') { @@ -74,6 +75,24 @@ function (angular, _, coreModule) { }); }; + this.transformToSegments = function(addTemplateVars, variableTypeFilter) { + return function(results) { + var segments = _.map(results, function(segment) { + return self.newSegment({ value: segment.text, expandable: segment.expandable }); + }); + + if (addTemplateVars) { + _.each(templateSrv.variables, function(variable) { + if (variableTypeFilter === void 0 || variableTypeFilter === variable.type) { + segments.unshift(self.newSegment({ type: 'template', value: '$' + variable.name, expandable: true })); + } + }); + } + + return segments; + }; + }; + this.newSelectMetric = function() { return new MetricSegment({value: 'select metric', fake: true}); }; diff --git a/public/app/plugins/datasource/elasticsearch/bucket_agg.js b/public/app/plugins/datasource/elasticsearch/bucket_agg.js index 00bba14af05..014761da7f2 100644 --- a/public/app/plugins/datasource/elasticsearch/bucket_agg.js +++ b/public/app/plugins/datasource/elasticsearch/bucket_agg.js @@ -15,7 +15,6 @@ function (angular, _, queryDef) { $scope.bucketAggTypes = queryDef.bucketAggTypes; $scope.orderOptions = queryDef.orderOptions; $scope.sizeOptions = queryDef.sizeOptions; - $scope.intervalOptions = queryDef.intervalOptions; $rootScope.onAppEvent('elastic-query-updated', function() { $scope.validateModel(); @@ -128,6 +127,10 @@ function (angular, _, queryDef) { } }; + $scope.getIntervalOptions = function() { + return $q.when(uiSegmentSrv.transformToSegments(true, 'interval')(queryDef.intervalOptions)); + }; + $scope.addBucketAgg = function() { // if last is date histogram add it before var lastBucket = bucketAggs[bucketAggs.length - 1]; diff --git a/public/app/plugins/datasource/elasticsearch/partials/bucketAgg.html b/public/app/plugins/datasource/elasticsearch/partials/bucketAgg.html index ddec7d85de5..f6ff3f6cd93 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/bucketAgg.html +++ b/public/app/plugins/datasource/elasticsearch/partials/bucketAgg.html @@ -41,7 +41,7 @@ Interval