From 58d71fb97c9180dc68015050f6d45349ca7bc9aa Mon Sep 17 00:00:00 2001 From: jiazhong Date: Wed, 19 Nov 2014 16:48:11 +0800 Subject: [PATCH 1/2] unity source table view in different page --- webapp/app/js/controllers/page.js | 4 +- webapp/app/js/controllers/sourceMeta.js | 69 +++++++++++++---------- webapp/app/partials/query/query.html | 1 - webapp/app/partials/tables/source_table_tree.html | 8 +-- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/webapp/app/js/controllers/page.js b/webapp/app/js/controllers/page.js index 49b8a3d..56f793b 100644 --- a/webapp/app/js/controllers/page.js +++ b/webapp/app/js/controllers/page.js @@ -187,9 +187,7 @@ var projCtrl = function ($scope, $modalInstance, ProjectService, MessageService, } }; - - $scope.cancel = function () { $modalInstance.dismiss('cancel'); - } + }; }; diff --git a/webapp/app/js/controllers/sourceMeta.js b/webapp/app/js/controllers/sourceMeta.js index c82588d..36a9b99 100644 --- a/webapp/app/js/controllers/sourceMeta.js +++ b/webapp/app/js/controllers/sourceMeta.js @@ -4,7 +4,7 @@ KylinApp .controller('SourceMetaCtrl', function ($scope, $q, $window, $routeParams, CubeService, $modal, TableService,$route) { $scope.srcTables = {}; $scope.srcDbs = []; - $scope.selectedSrcDb = {}; + $scope.selectedSrcDb = []; $scope.selectedSrcTable = {}; $scope.window = 0.68 * $window.innerHeight; $scope.hiveTbLoad = { @@ -20,7 +20,7 @@ KylinApp dimensionFilter: '', measureFilter: ''}; function innerSort(a, b) { - var nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase() + var nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase(); if (nameA < nameB) //sort string ascending return -1; if (nameA > nameB) @@ -30,8 +30,21 @@ KylinApp $scope.aceSrcTbLoaded = function (forceLoad) { $scope.srcTables = {}; - $scope.selectedSrcDb = {}; - delete $scope.selectedSrcTable; + $scope.selectedSrcDb = []; + $scope.treeOptions = { + nodeChildren: "columns", + injectClasses: { + ul: "a1", + li: "a2", + liSelected: "a7", + iExpanded: "a3", + iCollapsed: "a4", + iLeaf: "a5", + label: "a6", + labelSelected: "a8" + } + }; + $scope.selectedSrcTable = {}; var defer = $q.defer(); @@ -45,9 +58,10 @@ KylinApp param.timestamp = new Date().getTime(); } TableService.list(param, function (tables) { + var tableMap = []; angular.forEach(tables, function (table) { - if (!$scope.srcTables[table.database]) { - $scope.srcTables[table.database] = []; + if (!tableMap[table.database]) { + tableMap[table.database] = []; } angular.forEach(table.columns, function (column) { if(table.cardinality[column.name]) { @@ -57,22 +71,21 @@ KylinApp } column.id = parseInt(column.id); }); - - $scope.srcTables[table.database].push(table); + tableMap[table.database].push(table); }); - //Sort Table - for (var key in $scope.srcTables) { - var obj = $scope.srcTables[key]; +// Sort Table + for (var key in tableMap) { + var obj = tableMap[key]; obj.sort(innerSort); } - for (var key in $scope.srcTables) { - $scope.selectedSrcDb = $scope.srcTables['DEFAULT']; - if(!$scope.selectedSrcDb){ - $scope.selectedSrcDb = $scope.srcTables[key]; - } - break; + for (var key in tableMap) { + var tables = tableMap[key]; + $scope.selectedSrcDb.push({ + "name": key, + "columns": tables + }); } $scope.loading = false; defer.resolve(); @@ -106,24 +119,11 @@ KylinApp $scope.aceSrcTbChanged = function () { $scope.srcTables = {}; $scope.srcDbs = []; - $scope.selectedSrcDb = {}; + $scope.selectedSrcDb = []; $scope.selectedSrcTable = {}; $scope.aceSrcTbLoaded(true); }; - $scope.treeOptions = { - nodeChildren: "columns", - injectClasses: { - ul: "a1", - li: "a2", - liSelected: "a7", - iExpanded: "a3", - iCollapsed: "a4", - iLeaf: "a5", - label: "a6", - labelSelected: "a8" - } - }; $scope.openModal = function () { $modal.open({ @@ -163,6 +163,13 @@ KylinApp }); } }; + $scope.trimType = function(typeName){ + if (typeName.match(/VARCHAR/i)) + { + typeName = "VARCHAR"; + } + return typeName.trim().toLowerCase(); + } }); diff --git a/webapp/app/partials/query/query.html b/webapp/app/partials/query/query.html index 0a9091e..6cc2db1 100644 --- a/webapp/app/partials/query/query.html +++ b/webapp/app/partials/query/query.html @@ -216,4 +216,3 @@

-
\ No newline at end of file diff --git a/webapp/app/partials/tables/source_table_tree.html b/webapp/app/partials/tables/source_table_tree.html index ee80155..712afd8 100644 --- a/webapp/app/partials/tables/source_table_tree.html +++ b/webapp/app/partials/tables/source_table_tree.html @@ -3,10 +3,6 @@

Source Tables

-
@@ -23,13 +19,13 @@

Source Tables

- - {{node.name}} {{angular.isDefined(node.datatype) && '(' + node.datatype + ')' || ''}} + {{node.name}} {{!!(node.datatype)?'(' + trimType(node.datatype) + ')' : ''}}
From 053c62ac336299864ae3c9416fce656f972b1809 Mon Sep 17 00:00:00 2001 From: jiazhong Date: Wed, 19 Nov 2014 17:24:00 +0800 Subject: [PATCH 2/2] set database to default when reloaded table has no db --- .../main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java b/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java index 53ab121..de2fe63 100644 --- a/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java +++ b/metadata/src/main/java/com/kylinolap/metadata/tool/HiveSourceTableLoader.java @@ -60,7 +60,7 @@ Map> db2tables = Maps.newHashMap(); for (String table : hiveTables) { int cut = table.indexOf('.'); - String database = cut >= 0 ? table.substring(0, cut).trim() : ""; + String database = cut >= 0 ? table.substring(0, cut).trim() : "DEFAULT"; String tableName = cut >= 0 ? table.substring(cut + 1).trim() : table.trim(); Set set = db2tables.get(database); if (set == null) {