Repository: kylin
Updated Branches:
  refs/heads/master-hbase0.98 39c8ac30e -> d6a844bb1 (forced update)


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/master-hbase0.98
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>

Reply via email to