KYLIN-1438 rm unused dimension from aggregation group when auto gen aggregation group
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1c4d3a15 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1c4d3a15 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1c4d3a15 Branch: refs/heads/2.x-staging Commit: 1c4d3a158934ab86b13bce84e2ecbbd68540ef19 Parents: 2c602a0 Author: janzhongi <[email protected]> Authored: Tue Feb 23 20:02:36 2016 +0800 Committer: janzhongi <[email protected]> Committed: Tue Feb 23 20:02:36 2016 +0800 ---------------------------------------------------------------------- webapp/app/js/controllers/cubeEdit.js | 81 +++++++++++++++++++++--------- 1 file changed, 58 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/1c4d3a15/webapp/app/js/controllers/cubeEdit.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index 7d8c299..6f0df38 100755 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -518,34 +518,17 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio $scope.cubeMetaFrame.rowkey.rowkey_columns = newRowKeyColumns; if ($scope.cubeMode === "editExistCube") { + //clear dims will not be used var aggregationGroups = $scope.cubeMetaFrame.aggregation_groups; - // rm unused item from group,will only rm when [edit] dimension - angular.forEach(aggregationGroups, function (group, index) { - if (group) { - for (var j = 0; j < group.includes.length; j++) { - var elemStillExist = false; - for (var k = 0; k < tmpAggregationItems.length; k++) { - if (group.includes[j] == tmpAggregationItems[k]) { - elemStillExist = true; - break; - } - } - if (!elemStillExist) { - group.includes.splice(j, 1); - j--; - } - } - } - else { - aggregationGroups.splice(index, 1); - index--; - } - }); + rmDeprecatedDims(aggregationGroups,tmpAggregationItems); } if ($scope.cubeMode === "addNewCube") { - //only first time will will generate agg group auto + + //clear dims will not be used if($scope.cubeMetaFrame.aggregation_groups.length){ + var aggregationGroups = $scope.cubeMetaFrame.aggregation_groups; + rmDeprecatedDims(aggregationGroups,tmpAggregationItems); return; } @@ -574,6 +557,58 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio } } + function rmDeprecatedDims(aggregationGroups,tmpAggregationItems){ + angular.forEach(aggregationGroups, function (group, index) { + if (group) { + for (var j = 0; j < group.includes.length; j++) { + var elemStillExist = false; + for (var k = 0; k < tmpAggregationItems.length; k++) { + if (group.includes[j] == tmpAggregationItems[k]) { + elemStillExist = true; + break; + } + } + if (!elemStillExist) { + var deprecatedItem = group.includes[j]; + //rm deprecated dimension from include + group.includes.splice(j, 1); + j--; + + //rm deprecated dimension in mandatory dimensions + var mandatory = group.select_rule.mandatory_dims; + if(mandatory && mandatory.length){ + var columnIndex = mandatory.indexOf(deprecatedItem); + group.select_rule.mandatory_dims.splice(columnIndex,1); + } + + var hierarchys = group.select_rule.hierarchy_dims; + if(hierarchys && hierarchys.length){ + for(var i=0;i<hierarchys.length;i++){ + var hierarchysIndex = hierarchys[i].indexOf(deprecatedItem); + group.select_rule.hierarchy_dims[i].splice(hierarchysIndex,1); + } + + } + + var joints = group.select_rule.joint_dims; + if(joints && joints.length){ + for(var i=0;i<joints.length;i++){ + var jointIndex = joints[i].indexOf(deprecatedItem); + group.select_rule.joint_dims[i].splice(jointIndex,1); + } + + } + + } + } + } + else { + aggregationGroups.splice(index, 1); + index--; + } + }); + } + function sortSharedData(oldArray, tmpArr) { var newArr = []; for (var j = 0; j < oldArray.length; j++) {
