|
@@ -11,24 +11,62 @@ function (angular, _, $) {
|
|
|
module.controller('ElasticBucketAggCtrl', function($scope, uiSegmentSrv, $q) {
|
|
module.controller('ElasticBucketAggCtrl', function($scope, uiSegmentSrv, $q) {
|
|
|
var bucketAggs = $scope.target.bucketAggs;
|
|
var bucketAggs = $scope.target.bucketAggs;
|
|
|
|
|
|
|
|
- $scope.agg = bucketAggs[$scope.index];
|
|
|
|
|
-
|
|
|
|
|
$scope.bucketAggTypes = [
|
|
$scope.bucketAggTypes = [
|
|
|
{text: "Terms", value: 'terms' },
|
|
{text: "Terms", value: 'terms' },
|
|
|
{text: "Date Histogram", value: 'date_histogram' },
|
|
{text: "Date Histogram", value: 'date_histogram' },
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
|
|
+ $scope.orderOptions = [
|
|
|
|
|
+ {text: "Top", value: 'desc' },
|
|
|
|
|
+ {text: "Bottom", value: 'asc' },
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
|
|
+ $scope.sizeOptions = [
|
|
|
|
|
+ {text: "No limit", value: '0' },
|
|
|
|
|
+ {text: "1", value: '1' },
|
|
|
|
|
+ {text: "2", value: '2' },
|
|
|
|
|
+ {text: "3", value: '4' },
|
|
|
|
|
+ {text: "5", value: '5' },
|
|
|
|
|
+ {text: "10", value: '10' },
|
|
|
|
|
+ {text: "15", value: '15' },
|
|
|
|
|
+ {text: "20", value: '20' },
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
$scope.$watch("index", function() {
|
|
$scope.$watch("index", function() {
|
|
|
$scope.isFirst = $scope.index === 0;
|
|
$scope.isFirst = $scope.index === 0;
|
|
|
$scope.isLast = $scope.index === bucketAggs.length - 1;
|
|
$scope.isLast = $scope.index === bucketAggs.length - 1;
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- if ($scope.agg.type === "terms") {
|
|
|
|
|
- $scope.aggOptionsString = "Top 5, Order by: sum @value";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ $scope.init = function() {
|
|
|
|
|
+ $scope.agg = bucketAggs[$scope.index];
|
|
|
|
|
+ $scope.modelIsValid();
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ $scope.onChangeInternal = function() {
|
|
|
|
|
+ if ($scope.modelIsValid()) {
|
|
|
|
|
+ $scope.onChange();
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ $scope.modelIsValid = function() {
|
|
|
|
|
+ if ($scope.agg.type === "terms") {
|
|
|
|
|
+ $scope.aggOptionsString = "Top 5, Order by: sum @value";
|
|
|
|
|
+
|
|
|
|
|
+ $scope.agg.order = $scope.agg.order || "desc";
|
|
|
|
|
+ $scope.agg.size = $scope.agg.size || "0";
|
|
|
|
|
+ $scope.agg.orderBy = $scope.agg.orderBy || "_count";
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
$scope.toggleOptions = function() {
|
|
$scope.toggleOptions = function() {
|
|
|
$scope.showOptions = !$scope.showOptions;
|
|
$scope.showOptions = !$scope.showOptions;
|
|
|
|
|
+
|
|
|
|
|
+ $scope.orderByOptions = [
|
|
|
|
|
+ {text: "Doc Count", value: '_count' },
|
|
|
|
|
+ {text: "Term name", value: '_term' },
|
|
|
|
|
+ {text: "Average of @value", value: '0' },
|
|
|
|
|
+ ];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$scope.addBucketAgg = function() {
|
|
$scope.addBucketAgg = function() {
|
|
@@ -48,6 +86,8 @@ function (angular, _, $) {
|
|
|
$scope.onChange();
|
|
$scope.onChange();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ $scope.init();
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
module.directive('elasticBucketAgg', function() {
|
|
module.directive('elasticBucketAgg', function() {
|