filter null value in cubedesc and model desc Signed-off-by: Hongbin Ma <mahong...@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/master-hbase1.x Commit: 875a5931ad8cad79cdec1e80ab9388ded9446091 Parents: 3186d17 Author: luguosheng <550175...@qq.com> Authored: Wed Nov 30 10:51:51 2016 +0800 Committer: Hongbin Ma <mahong...@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; + }, + //è¿æ»¤å¯¹è±¡ä¸çç©ºå¼ + 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); } }