You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/12/02 13:18:56 UTC

[03/27] kylin git commit: filter null value in cubedesc and model desc

filter null value in cubedesc and model desc

Signed-off-by: Hongbin Ma <ma...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/875a5931
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/875a5931
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/875a5931

Branch: refs/heads/KYLIN-1875
Commit: 875a5931ad8cad79cdec1e80ab9388ded9446091
Parents: 3186d17
Author: luguosheng <55...@qq.com>
Authored: Wed Nov 30 10:51:51 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Wed Nov 30 13:48:29 2016 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubeEdit.js  |  4 ++--
 webapp/app/js/controllers/modelEdit.js | 13 ++++++++++---
 webapp/app/js/utils/utils.js           | 24 ++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/875a5931/webapp/app/js/controllers/cubeEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js
index 888662d..0704a62 100755
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -413,7 +413,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
 
         if ($scope.isEdit) {
           CubeService.update({}, {
-            cubeDescData: $scope.state.cubeSchema,
+            cubeDescData: VdmUtil.filterNullValInObj($scope.state.cubeSchema),
             cubeName: $routeParams.cubeName,
             project: $scope.state.project
           }, function (request) {
@@ -453,7 +453,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
           });
         } else {
           CubeService.save({}, {
-            cubeDescData: $scope.state.cubeSchema,
+            cubeDescData: VdmUtil.filterNullValInObj($scope.state.cubeSchema),
             project: $scope.state.project
           }, function (request) {
             if (request.successful) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/875a5931/webapp/app/js/controllers/modelEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/modelEdit.js b/webapp/app/js/controllers/modelEdit.js
index 0b3db66..2f1b35e 100644
--- a/webapp/app/js/controllers/modelEdit.js
+++ b/webapp/app/js/controllers/modelEdit.js
@@ -19,7 +19,7 @@
 'use strict';
 
 
-KylinApp.controller('ModelEditCtrl', function ($scope, $q, $routeParams, $location, $templateCache, $interpolate, MessageService, TableService, CubeDescService, ModelService, loadingRequest, SweetAlert,$log,cubeConfig,CubeDescModel,ModelDescService,MetaModel,TableModel,ProjectService,ProjectModel,modelsManager) {
+KylinApp.controller('ModelEditCtrl', function ($scope, $q, $routeParams, $location, $templateCache, $interpolate, MessageService, TableService, CubeDescService, ModelService, loadingRequest, SweetAlert,$log,cubeConfig,CubeDescModel,ModelDescService,MetaModel,TableModel,ProjectService,ProjectModel,modelsManager,VdmUtil) {
     //add or edit ?
     var absUrl = $location.absUrl();
     $scope.modelMode = absUrl.indexOf("/models/add")!=-1?'addNewModel':absUrl.indexOf("/models/edit")!=-1?'editExistModel':'default';
@@ -188,7 +188,11 @@ KylinApp.controller('ModelEditCtrl', function ($scope, $q, $routeParams, $locati
                 loadingRequest.show();
 
                 if ($scope.isEdit) {
-                    ModelService.update({}, {modelDescData:$scope.state.modelSchema, modelName: $routeParams.modelName, project: $scope.state.project}, function (request) {
+                    ModelService.update({}, {
+                      modelDescData:VdmUtil.filterNullValInObj($scope.state.modelSchema),
+                      modelName: $routeParams.modelName,
+                      project: $scope.state.project
+                    }, function (request) {
                         if (request.successful) {
                             $scope.state.modelSchema = request.modelSchema;
                             SweetAlert.swal('', 'Updated the model successfully.', 'success');
@@ -216,7 +220,10 @@ KylinApp.controller('ModelEditCtrl', function ($scope, $q, $routeParams, $locati
                         loadingRequest.hide();
                     });
                 } else {
-                    ModelService.save({}, {modelDescData:$scope.state.modelSchema, project: $scope.state.project}, function (request) {
+                    ModelService.save({}, {
+                      modelDescData:VdmUtil.filterNullValInObj($scope.state.modelSchema),
+                      project: $scope.state.project
+                    }, function (request) {
                         if(request.successful) {
 
                           $scope.state.modelSchema = request.modelSchema;

http://git-wip-us.apache.org/repos/asf/kylin/blob/875a5931/webapp/app/js/utils/utils.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/utils/utils.js b/webapp/app/js/utils/utils.js
index 9da6196..0875e52 100644
--- a/webapp/app/js/utils/utils.js
+++ b/webapp/app/js/utils/utils.js
@@ -116,6 +116,30 @@ KylinApp.factory('VdmUtil', function ($modal, $timeout, $location, $anchorScroll
         }
       }
       return newArr;
+    },
+    //\u8fc7\u6ee4\u5bf9\u8c61\u4e2d\u7684\u7a7a\u503c
+    filterNullValInObj:function(needFilterObj){
+      var newFilterObj,newObj;
+      if(typeof needFilterObj=='string'){
+        newObj=angular.fromJson(needFilterObj);
+      }else{
+        newObj=angular.extend({},needFilterObj);
+      }
+      function filterData(data){
+        var obj=data;
+        for(var i in obj){
+          if(obj[i]===null){
+            if(Object.prototype.toString.call(obj)=='[object Object]'){
+              delete obj[i];
+            }
+          }
+          else if(typeof obj[i]=== 'object'){
+            obj[i]=filterData(obj[i]);
+          }
+        }
+        return obj;
+      }
+      return angular.toJson(filterData(newObj),true);
     }
 
   }