From ecfef68ac2c1b2265f7ba13eab3d385db068fac9 Mon Sep 17 00:00:00 2001 From: jiazhong Date: Mon, 24 Nov 2014 10:30:22 +0800 Subject: [PATCH 1/2] add exception handle when project is null --- cube/src/main/java/com/kylinolap/cube/project/ProjectManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cube/src/main/java/com/kylinolap/cube/project/ProjectManager.java b/cube/src/main/java/com/kylinolap/cube/project/ProjectManager.java index bfbe282..f0294d1 100644 --- a/cube/src/main/java/com/kylinolap/cube/project/ProjectManager.java +++ b/cube/src/main/java/com/kylinolap/cube/project/ProjectManager.java @@ -18,6 +18,7 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -235,6 +236,9 @@ public void removeCubeFromProjects(String cubeName) throws IOException { public List listDefinedTablesInProject(String project) throws IOException { + if(null==project){ + return Collections.emptyList(); + } project = ProjectInstance.getNormalizedProjectName(project); ProjectInstance projectInstance = getProject(project); From cd132b4addd9aa3ed9b38b2ac2ee685ea5d32e4d Mon Sep 17 00:00:00 2001 From: jiazhong Date: Mon, 24 Nov 2014 13:11:31 +0800 Subject: [PATCH 2/2] stop invoke api when project is null --- webapp/app/js/controllers/cubes.js | 5 +++++ webapp/app/js/controllers/job.js | 7 +++++-- webapp/app/js/controllers/projectMeta.js | 2 ++ webapp/app/js/controllers/query.js | 26 -------------------------- 4 files changed, 12 insertions(+), 28 deletions(-) diff --git a/webapp/app/js/controllers/cubes.js b/webapp/app/js/controllers/cubes.js index 325ffc1..a391321 100644 --- a/webapp/app/js/controllers/cubes.js +++ b/webapp/app/js/controllers/cubes.js @@ -38,6 +38,8 @@ KylinApp } if ($scope.project.selectedProject){ queryParam.projectName = $scope.project.selectedProject; + }else{ + queryParam.projectName = $scope.project.projects[0]; } $scope.loading = true; @@ -71,9 +73,12 @@ KylinApp }; $scope.$watch('project.selectedProject', function (newValue, oldValue) { + if(newValue){ $scope.cubes=[]; $scope.list(); $scope.reload(); + } + }); $scope.reload = function () { // trigger reload action in pagination directive diff --git a/webapp/app/js/controllers/job.js b/webapp/app/js/controllers/job.js index 155edf2..1162953 100644 --- a/webapp/app/js/controllers/job.js +++ b/webapp/app/js/controllers/job.js @@ -82,9 +82,12 @@ KylinApp $scope.$watch('project.selectedProject', function (newValue, oldValue) { - $scope.jobs={}; - $scope.state.projectName = newValue; + if(newValue){ + $scope.jobs={}; + $scope.state.projectName = newValue; $scope.list(); + } + }); $scope.resume = function (job) { if (confirm("Are you sure to resume the job?")) { diff --git a/webapp/app/js/controllers/projectMeta.js b/webapp/app/js/controllers/projectMeta.js index 07f37b2..bcc6922 100644 --- a/webapp/app/js/controllers/projectMeta.js +++ b/webapp/app/js/controllers/projectMeta.js @@ -60,7 +60,9 @@ KylinApp $scope.$watch('project.selectedProject', function (newValue, oldValue) { + if(newValue){ $scope.projectMetaLoad(); + } }); $scope.trimType = function(typeName){ diff --git a/webapp/app/js/controllers/query.js b/webapp/app/js/controllers/query.js index b46742c..1defef4 100644 --- a/webapp/app/js/controllers/query.js +++ b/webapp/app/js/controllers/query.js @@ -39,32 +39,6 @@ KylinApp $scope.state = { selectedProject: null }; -// var param = { -// ext: true, -// quertTb:true, -// project:'onlyinner' -// }; -// TableService.list(param, function (tables) { -// $scope.srcTables = []; -// $scope.srcColumns = []; -// angular.forEach(tables, function (table) { -// $scope.srcTables.push({ -// meta: 'table', -// name: table.name, -// score: 0, -// value: table.name -// }); -// -// angular.forEach(table.columns, function (column) { -// $scope.srcColumns.push({ -// meta: 'column', -// name: table.name + '.' + column.name, -// score: 0, -// value: table.name + '.' + column.name -// }); -// }); -// }); -// }); var Query = { createNew: function (sql, project) {