From e8308443aeaa8aa4dd998f598c95a63190186623 Mon Sep 17 00:00:00 2001 From: xingpeng1 Date: Tue, 6 Feb 2018 17:11:50 +0800 Subject: [PATCH 1/1] KYLIN-3236 The function 'reGenerateAdvancedDict()' has an error logical judgment, which will cause an exception when you edit the cube. --- webapp/app/js/controllers/cubeAdvanceSetting.js | 5 +++++ webapp/app/js/controllers/cubeEdit.js | 15 +++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js index 7758238..0e33f77 100755 --- a/webapp/app/js/controllers/cubeAdvanceSetting.js +++ b/webapp/app/js/controllers/cubeAdvanceSetting.js @@ -442,4 +442,9 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi } }; + if ($scope.state.mode == 'edit') { + $scope.$on('$destroy', function () { + $scope.$emit('AdvancedSettingEdited'); + }); + } }); diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index 3cf248f..1a87dc3 100755 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -773,11 +773,12 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio }); //remove deprecated distinct measures - angular.forEach($scope.cubeMetaFrame.dictionaries, function (dict, index) { - if (distinctMeasures.indexOf(dict.column) === -1 && reuseColumns.indexOf(dict.column) === -1) { - $scope.cubeMetaFrame.dictionaries.splice(index, 1); + for (var i = $scope.cubeMetaFrame.dictionaries.length - 1; i >= 0; i--) { + var dictColumn = $scope.cubeMetaFrame.dictionaries[i].column; + if (distinctMeasures.indexOf(dictColumn) === -1 && reuseColumns.indexOf(dictColumn) === -1) { + $scope.cubeMetaFrame.dictionaries.splice(i, 1); } - }); + } } $scope.$on('MeasuresEdited', function (event) { @@ -786,6 +787,12 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio } }); + $scope.$on('AdvancedSettingEdited', function (event) { + if ($scope.cubeMetaFrame) { + reGenerateAdvancedDict(); + } + }); + $scope.$on('DimensionsEdited', function (event) { if ($scope.cubeMetaFrame) { reGenerateRowKey(); -- 2.7.2.windows.1