You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ji...@apache.org on 2016/01/11 04:08:54 UTC

incubator-eagle git commit: EAGLE-112 Should support sum aggregation in front end for slide window function Also In front end, we should able to rename the aggregation value with a meaning name, so the downstream components like alert notification part c

Repository: incubator-eagle
Updated Branches:
  refs/heads/master e08750137 -> ce64b4202


EAGLE-112 Should support sum aggregation in front end for slide window function
Also In front end, we should able to rename the aggregation value with a meaning name, so the downstream components like alert notification part could display more meaning full information

https://issues.apache.org/jira/browse/EAGLE-112

Author: @zombieJ
Reviewer: @sunlibin

Closes #53


Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/ce64b420
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/ce64b420
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/ce64b420

Branch: refs/heads/master
Commit: ce64b4202de6f6b093cd96414449a7d1af3f9047
Parents: e087501
Author: jiljiang <ji...@ebay.com>
Authored: Mon Jan 11 11:08:49 2016 +0800
Committer: jiljiang <ji...@ebay.com>
Committed: Mon Jan 11 11:08:49 2016 +0800

----------------------------------------------------------------------
 .../main/webapp/app/partials/dam/policyEdit.html   |  9 ++++++++-
 .../webapp/app/public/js/ctrl/policyController.js  | 17 ++++++++++-------
 2 files changed, 18 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/ce64b420/eagle-webservice/src/main/webapp/app/partials/dam/policyEdit.html
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/app/partials/dam/policyEdit.html b/eagle-webservice/src/main/webapp/app/partials/dam/policyEdit.html
index 11f029e..038a590 100644
--- a/eagle-webservice/src/main/webapp/app/partials/dam/policyEdit.html
+++ b/eagle-webservice/src/main/webapp/app/partials/dam/policyEdit.html
@@ -196,7 +196,7 @@
 								<div class="input-group">
 									<div class="input-group-btn">
 										<select class="form-control" ng-model="policy.__.groupAgg" ng-change="updateGroupAgg()">
-											<option ng-repeat="op in ['max','min','avg','count']">{{op}}</option>
+											<option ng-repeat="op in ['max','min','avg','count', 'sum']">{{op}}</option>
 										</select>
 									</div>
 									<select class="form-control" ng-model="policy.__.groupAggPath" ng-class="{'has-warning' : !policy.__.groupAggPath}" id="groupAggPath"
@@ -220,6 +220,13 @@
 								</div>
 							</div>
 						</div>
+
+						<div class="col-md-4">
+							<div class="form-group">
+								<label for="window">Alias (Optional)</label>
+								<input type="text" class="form-control" ng-model="policy.__.groupAggAlias" placeholder="Default: aggValue" />
+							</div>
+						</div>
 					</div>
 
 					<!-- Group -->

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/ce64b420/eagle-webservice/src/main/webapp/app/public/js/ctrl/policyController.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/app/public/js/ctrl/policyController.js b/eagle-webservice/src/main/webapp/app/public/js/ctrl/policyController.js
index 6061494..1ca741c 100644
--- a/eagle-webservice/src/main/webapp/app/public/js/ctrl/policyController.js
+++ b/eagle-webservice/src/main/webapp/app/public/js/ctrl/policyController.js
@@ -466,12 +466,12 @@ damControllers.controller('policyDetailCtrl', function(globalContent, Site, damC
 
 						// >> Parse expression
 						$scope.policy.__.conditions = {};
-						var _condition = _policyUnit.expression.match(/from\s+(\w+)(\[(.*)\])?(#window[^\)]*\))?\s+(select (\w+\, )?(\w+)\((\w+)\) as aggValue (group by (\w+) )?having aggValue ([<>=]+) ([^\s]+))?/);
+						var _condition = _policyUnit.expression.match(/from\s+(\w+)(\[(.*)\])?(#window[^\)]*\))?\s+(select (\w+\, )?(\w+)\((\w+)\) as [\w\d_]+ (group by (\w+) )?having ([\w\d_]+) ([<>=]+) ([^\s]+))?/);
 						var _cond_stream = _condition[1];
 						var _cond_query = _condition[3] || "";
 						var _cond_window = _condition[4];
 						var _cond_group = _condition[5];
-						var _cond_groupUnit = _condition.slice(7,13);
+						var _cond_groupUnit = _condition.slice(7,14);
 
 						if(!_condition) {
 							$scope.policy.__.advanced = true;
@@ -552,8 +552,9 @@ damControllers.controller('policyDetailCtrl', function(globalContent, Site, damC
 										$scope.policy.__.group = _cond_groupUnit[3];
 										$scope.policy.__.groupAgg = _cond_groupUnit[0];
 										$scope.policy.__.groupAggPath = _cond_groupUnit[1];
-										$scope.policy.__.groupCondOp = _cond_groupUnit[4];
-										$scope.policy.__.groupCondVal = _cond_groupUnit[5];
+										$scope.policy.__.groupAggAlias = _cond_groupUnit[4] === "aggValue" ? "" : _cond_groupUnit[4];
+										$scope.policy.__.groupCondOp = _cond_groupUnit[5];
+										$scope.policy.__.groupCondVal = _cond_groupUnit[6];
 									} else {
 										$scope.policy.__.group = "";
 										$scope.policy.__.groupAgg = "count";
@@ -635,7 +636,7 @@ damControllers.controller('policyDetailCtrl', function(globalContent, Site, damC
 			// Aggregation
 			$scope.groupAggPathList = function() {
 				return $.grep(common.getValueByPath($scope, "_stream.metas", []), function(meta) {
-					return $.inArray(meta.attrType, ['long','integer','number']) !== -1;
+					return $.inArray(meta.attrType, ['long','integer','number', 'double', 'float']) !== -1;
 				});
 			};
 
@@ -754,19 +755,21 @@ damControllers.controller('policyDetailCtrl', function(globalContent, Site, damC
 
 					// > Group
 					if($scope.policy.__.group) {
-						_windowStr += common.template(" select ${group}, ${groupAgg}(${groupAggPath}) as aggValue group by ${group} having aggValue ${groupCondOp} ${groupCondVal}", {
+						_windowStr += common.template(" select ${group}, ${groupAgg}(${groupAggPath}) as ${groupAggAlias} group by ${group} having ${groupAggAlias} ${groupCondOp} ${groupCondVal}", {
 							group: $scope.policy.__.group,
 							groupAgg: $scope.policy.__.groupAgg,
 							groupAggPath: $scope.policy.__.groupAggPath,
 							groupCondOp: $scope.policy.__.groupCondOp,
 							groupCondVal: $scope.policy.__.groupCondVal,
+							groupAggAlias: $scope.policy.__.groupAggAlias || "aggValue"
 						});
 					} else {
-						_windowStr += common.template(" select ${groupAgg}(${groupAggPath}) as aggValue having aggValue ${groupCondOp} ${groupCondVal}", {
+						_windowStr += common.template(" select ${groupAgg}(${groupAggPath}) as ${groupAggAlias} having ${groupAggAlias} ${groupCondOp} ${groupCondVal}", {
 							groupAgg: $scope.policy.__.groupAgg,
 							groupAggPath: $scope.policy.__.groupAggPath,
 							groupCondOp: $scope.policy.__.groupCondOp,
 							groupCondVal: $scope.policy.__.groupCondVal,
+							groupAggAlias: $scope.policy.__.groupAggAlias || "aggValue"
 						});
 					}
 				} else {