From bcc99d37e64d4a7fa57b06caff747ded912e2687 Mon Sep 17 00:00:00 2001 From: jiazhong Date: Tue, 25 Nov 2014 22:19:55 +0800 Subject: [PATCH] cube designer > rowkey&rowgroups enhance --- webapp/app/js/controllers/cubeEdit.js | 85 +++++++++++++++--------- webapp/app/js/controllers/cubeSchema.js | 9 +++ webapp/app/partials/cubeDesigner/dimensions.html | 2 +- 3 files changed, 62 insertions(+), 34 deletions(-) diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index 2af0c52..6bda6e0 100644 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -3,6 +3,13 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $location, MessageService, TableService, CubeDescService, CubeService) { + //add or edit ? + var absUrl = $location.absUrl(); + $scope.cubeMode = absUrl.indexOf("/cubes/add")!=-1?'addNewCube':absUrl.indexOf("/cubes/edit")!=-1?'editExistCube':'default'; + // use this flag to listen when rm or add dimension edited,used in sub-controller cube-schema + $scope.editFlag ={ + dimensionEdited:"init" + }; //~ Define metadata & class $scope.measureParamType = ['column', 'constant']; $scope.measureExpressions = ['SUM', 'MIN', 'MAX', 'COUNT', 'COUNT_DISTINCT']; @@ -148,10 +155,9 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio $scope.prepareCube = function () { // generate column family generateColumnFamily(); - generateDefaultRowkey(); - - // generate default rowkey and aggregation groups. -// if ($scope.cubeMetaFrame.rowkey.aggregation_groups.length == 0) { + if($scope.cubeMode==="addNewCube"){ + generateDefaultRowkey(); + } // Clean up objects used in cube creation angular.forEach($scope.cubeMetaFrame.dimensions, function (dimension, index) { @@ -239,12 +245,12 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio } - function reGenerateRowKey(dimensions){ + function reGenerateRowKey(){ console.log("reGen rowkey & agg group"); var tmpRowKeyColumns = []; var tmpAggregationItems = []; - angular.forEach(dimensions, function (dimension, index) { + angular.forEach($scope.cubeMetaFrame.dimensions, function (dimension, index) { if (dimension.column == '{FK}' && dimension.join && dimension.join.foreign_key.length > 0) { angular.forEach(dimension.join.foreign_key, function (fk, index) { for (var i = 0; i < tmpRowKeyColumns.length; i++) { @@ -310,41 +316,50 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio var aggregationGroups = $scope.cubeMetaFrame.rowkey.aggregation_groups; // rm unused item from group angular.forEach(aggregationGroups, function (group, index) { - for(var j = 0;j -1) { + arr.splice(index, 1); + $scope.editFlag.dimensionEdited=$scope.editFlag.dimensionEdited==true?false:true; + } + } + $scope.open = function ($event) { $event.preventDefault(); $event.stopPropagation(); diff --git a/webapp/app/partials/cubeDesigner/dimensions.html b/webapp/app/partials/cubeDesigner/dimensions.html index 3ac99fb..85a0ded 100644 --- a/webapp/app/partials/cubeDesigner/dimensions.html +++ b/webapp/app/partials/cubeDesigner/dimensions.html @@ -77,7 +77,7 @@