KYLIN-2308 bug fix and improve user experience
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1e9f0908 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1e9f0908 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1e9f0908 Branch: refs/heads/KYLIN-2428 Commit: 1e9f0908b9942113bbd251dc5eeba71973cc77e1 Parents: 7742b31 Author: kangkaisen <kangkai...@163.com> Authored: Thu Feb 9 12:06:56 2017 +0800 Committer: kangkaisen <kangkai...@163.com> Committed: Thu Feb 9 15:54:01 2017 +0800 ---------------------------------------------------------------------- webapp/app/js/controllers/cubeAdvanceSetting.js | 36 ++++++++++++++++++-- webapp/app/js/controllers/cubeSchema.js | 8 +++++ .../cubeDesigner/advanced_settings.html | 2 +- 3 files changed, 43 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/1e9f0908/webapp/app/js/controllers/cubeAdvanceSetting.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js index 39d36b0..7cdb1cd 100644 --- a/webapp/app/js/controllers/cubeAdvanceSetting.js +++ b/webapp/app/js/controllers/cubeAdvanceSetting.js @@ -342,12 +342,44 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi return assignedMeasures; }; - if ($scope.getAllMeasureNames().length != $scope.getAssignedMeasureNames().length) { + $scope.rmDeprecatedMeasureNames = function () { + var allMeasureNames = $scope.getAllMeasureNames(); + var tmpColumnFamily = $scope.cubeMetaFrame.hbase_mapping.column_family; + + angular.forEach($scope.cubeMetaFrame.hbase_mapping.column_family, function (colFamily,index1) { + angular.forEach(colFamily.columns[0].measure_refs, function (measureName, index2) { + var allIndex = allMeasureNames.indexOf(measureName); + if (allIndex == -1) { + tmpColumnFamily[index1].columns[0].measure_refs.splice(index2, 1); + } + + if (tmpColumnFamily[index1].columns[0].measure_refs == 0) { + tmpColumnFamily.splice(index1, 1); + } + }); + }); + + $scope.cubeMetaFrame.hbase_mapping.column_family = tmpColumnFamily; + }; + + if ($scope.getAssignedMeasureNames().length == 0) { $scope.initColumnFamily(); + } else { + $scope.rmDeprecatedMeasureNames(); + if ($scope.getAllMeasureNames().length > $scope.getAssignedMeasureNames().length) { + $scope.initColumnFamily(); + } } - $scope.addColumnFamily = function () { + var isCFEmpty = _.some($scope.cubeMetaFrame.hbase_mapping.column_family, function(colFamily) { + return colFamily.columns[0].measure_refs.length == 0; + }); + + if (isCFEmpty === true) { + return; + } + var colFamily = $scope.newColFamily($scope.cubeMetaFrame.hbase_mapping.column_family.length + 1); $scope.cubeMetaFrame.hbase_mapping.column_family.push(colFamily); }; http://git-wip-us.apache.org/repos/asf/kylin/blob/1e9f0908/webapp/app/js/controllers/cubeSchema.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeSchema.js b/webapp/app/js/controllers/cubeSchema.js index 17371f2..4beeebe 100755 --- a/webapp/app/js/controllers/cubeSchema.js +++ b/webapp/app/js/controllers/cubeSchema.js @@ -287,6 +287,14 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserServic errors.push("All measures need to be assigned to column family"); } + var isCFEmpty = _.some($scope.cubeMetaFrame.hbase_mapping.column_family, function(colFamily) { + return colFamily.columns[0].measure_refs.length == 0; + }); + + if (isCFEmpty == true) { + errors.push("Each column family can't not be empty"); + } + var errorInfo = ""; angular.forEach(errors,function(item){ http://git-wip-us.apache.org/repos/asf/kylin/blob/1e9f0908/webapp/app/partials/cubeDesigner/advanced_settings.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/cubeDesigner/advanced_settings.html b/webapp/app/partials/cubeDesigner/advanced_settings.html index bf95256..f26722b 100755 --- a/webapp/app/partials/cubeDesigner/advanced_settings.html +++ b/webapp/app/partials/cubeDesigner/advanced_settings.html @@ -453,7 +453,7 @@ <td class="col-xs-1"> <!--Remove Button --> - <button class="btn btn-xs btn-info" ng-click="removeElement(cubeMetaFrame.hbase_mapping.column_family, colFamily)"> + <button ng-if="colFamily.columns[0].measure_refs.length == 0" class="btn btn-xs btn-info" ng-click="removeElement(cubeMetaFrame.hbase_mapping.column_family, colFamily)"> <i class="fa fa-minus"></i> </button> </td>