You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2015/05/15 07:22:06 UTC
[37/52] [abbrv] incubator-kylin git commit: use abn-tree replace
treecontrol
use abn-tree replace treecontrol
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/5926d46d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/5926d46d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/5926d46d
Branch: refs/heads/0.8.0
Commit: 5926d46dffd1e1f3858f2f9f175df1831a4436a4
Parents: b61dba0
Author: jiazhong <ji...@ebay.com>
Authored: Thu Mar 26 17:44:03 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Fri May 15 11:36:53 2015 +0800
----------------------------------------------------------------------
webapp/app/js/controllers/projectMeta.js | 67 ++++++++++++++------
.../js/directives/kylin_abn_tree_directive.js | 10 +--
webapp/app/js/model/tableModel.js | 8 +--
webapp/app/less/component.less | 4 +-
webapp/app/partials/cubes/cube_detail.html | 2 +-
webapp/app/partials/models/models.html | 1 -
.../partials/projects/project_table_tree.html | 17 ++---
.../app/partials/tables/source_table_tree.html | 2 +-
webapp/app/partials/tables/table_detail.html | 24 +++++--
9 files changed, 91 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/js/controllers/projectMeta.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/projectMeta.js b/webapp/app/js/controllers/projectMeta.js
index aa35d03..9ca2092 100644
--- a/webapp/app/js/controllers/projectMeta.js
+++ b/webapp/app/js/controllers/projectMeta.js
@@ -19,22 +19,9 @@
'use strict';
KylinApp
- .controller('ProjectMetaCtrl', function ($scope, $q, ProjectService, QueryService) {
+ .controller('ProjectMetaCtrl', function ($scope, $q, ProjectService, QueryService,$log) {
$scope.selectedSrcDb = [];
$scope.selectedSrcTable = {};
- $scope.treeOptions = {
- nodeChildren: "columns",
- injectClasses: {
- ul: "a1",
- li: "a2",
- liSelected: "a7",
- iExpanded: "a3",
- iCollapsed: "a4",
- iLeaf: "a5",
- label: "a6",
- labelSelected: "a8"
- }
- };
$scope.showSelected = function (table) {
if (table.uuid) {
@@ -63,11 +50,48 @@ KylinApp
});
for (var key in tableMap) {
+
var tables = tableMap[key];
- $scope.selectedSrcDb.push({
- "name": key,
- "columns": tables
- });
+ var _db_node = {
+ label:key,
+ data:tables,
+ onSelect:function(branch){
+ $log.info("db "+key +"selected");
+ }
+ }
+
+ angular.forEach(tables,function(_table){
+ var _table_node_list = [];
+
+ var _table_node = {
+ label:_table.name,
+ data:_table,
+ icon:"fa fa-table",
+ onSelect:function(branch){
+ // set selected model
+ $scope.selectedSrcTable = branch.data;
+ }
+ }
+
+ var _column_node_list = [];
+ angular.forEach(_table.columns,function(_column){
+ _column_node_list.push({
+ label:_column.name+$scope.columnTypeFormat(_column.type_NAME),
+ data:_column,
+ onSelect:function(branch){
+ // set selected model
+ $log.info("selected column info:"+_column.name);
+ }
+ });
+ });
+ _table_node.children =_column_node_list;
+ _table_node_list.push(_table_node);
+
+ _db_node.children = _table_node_list;
+ }
+ );
+
+ $scope.selectedSrcDb.push(_db_node);
}
$scope.loading = false;
@@ -81,6 +105,13 @@ KylinApp
$scope.projectMetaLoad();
});
+ $scope.columnTypeFormat = function(typeName){
+ if(typeName){
+ return "("+$scope.trimType(typeName)+")";
+ }else{
+ return "";
+ }
+ }
$scope.trimType = function(typeName){
if (typeName.match(/VARCHAR/i))
{
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/js/directives/kylin_abn_tree_directive.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/directives/kylin_abn_tree_directive.js b/webapp/app/js/directives/kylin_abn_tree_directive.js
index dd75d15..4625098 100644
--- a/webapp/app/js/directives/kylin_abn_tree_directive.js
+++ b/webapp/app/js/directives/kylin_abn_tree_directive.js
@@ -17,7 +17,6 @@
treeControl: '='
},
link: function(scope, element, attrs) {
- console.log(attrs.iconLeaf);
var error, expand_all_parents, expand_level, for_all_ancestors, for_each_branch, get_parent, n, on_treeData_change, select_branch, selected_branch, tree;
error = function(s) {
console.log('ERROR:' + s);
@@ -194,14 +193,17 @@
}
if (!branch.noLeaf && (!branch.children || branch.children.length === 0)) {
tree_icon = attrs.iconLeaf;
-
if (__indexOf.call(branch.classes, "leaf") < 0) {
branch.classes.push("leaf");
}
} else {
- if (branch.expanded) {
+ if(branch.icon){
+ tree_icon = branch.icon;
+ }
+ else if (branch.expanded) {
tree_icon = attrs.iconCollapse;
- } else {
+ }
+ else {
tree_icon = attrs.iconExpand;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/js/model/tableModel.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/model/tableModel.js b/webapp/app/js/model/tableModel.js
index b812b24..f482909 100755
--- a/webapp/app/js/model/tableModel.js
+++ b/webapp/app/js/model/tableModel.js
@@ -89,8 +89,8 @@ KylinApp.service('TableModel', function(ProjectModel,$q,TableService,$log) {
_this.selectedSrcDb = [];
for (var key in tableMap) {
- var tables = tableMap[key];
+ var tables = tableMap[key];
var _db_node = {
label:key,
data:tables,
@@ -99,14 +99,13 @@ KylinApp.service('TableModel', function(ProjectModel,$q,TableService,$log) {
}
}
-
angular.forEach(tables,function(_table){
var _table_node_list = [];
var _table_node = {
label:_table.name,
-// noLeaf:true,
data:_table,
+ icon:"fa fa-table",
onSelect:function(branch){
// set selected model
_this.selectedSrcTable = branch.data;
@@ -116,8 +115,7 @@ KylinApp.service('TableModel', function(ProjectModel,$q,TableService,$log) {
var _column_node_list = [];
angular.forEach(_table.columns,function(_column){
_column_node_list.push({
- label:_column.name,
- noLeaf:true,
+ label:_column.name+"("+_column.datatype+")",
data:_column,
onSelect:function(branch){
// set selected model
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/less/component.less
----------------------------------------------------------------------
diff --git a/webapp/app/less/component.less b/webapp/app/less/component.less
index 9e05fcf..4ab31e5 100644
--- a/webapp/app/less/component.less
+++ b/webapp/app/less/component.less
@@ -961,6 +961,6 @@ Angular 1.2.0 Animation
border-top:solid 2px #3c8dbc !important;
}
-treecontrol{
- font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+.abn-tree i.indented{
+ font-size:14px !important;
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/partials/cubes/cube_detail.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubes/cube_detail.html b/webapp/app/partials/cubes/cube_detail.html
index 5ee5e3e..f5652eb 100755
--- a/webapp/app/partials/cubes/cube_detail.html
+++ b/webapp/app/partials/cubes/cube_detail.html
@@ -48,7 +48,7 @@
</li>
<li class="dropdown" ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" aria-expanded="true">
- <i class="fa fa-cubes"> Action </i> <span class="caret"></span>
+ <i class="fa fa-cubes">Action</i> <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li ng-if="cube.status=='DISABLED' && userService.hasRole('ROLE_ADMIN') ">
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/partials/models/models.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/models/models.html b/webapp/app/partials/models/models.html
index 8e592ee..2d3e79f 100644
--- a/webapp/app/partials/models/models.html
+++ b/webapp/app/partials/models/models.html
@@ -30,7 +30,6 @@
<div class="row models-main" style="padding-top:10px;">
<!--table_tree-->
-
<div class="col-xs-3">
<tabset class="nav-tabs-custom">
<tab heading="Models" select="toggleTab(true);">
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/partials/projects/project_table_tree.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/projects/project_table_tree.html b/webapp/app/partials/projects/project_table_tree.html
index ce53ddd..3ee6d5b 100644
--- a/webapp/app/partials/projects/project_table_tree.html
+++ b/webapp/app/partials/projects/project_table_tree.html
@@ -24,14 +24,15 @@
</div>
<div class="space-4"></div>
<div style="width:310px; height:800px; overflow:auto">
- <treecontrol ng-if="selectedSrcDb.length > 0" class="tree-light"
- dirSelection="true"
- tree-model="selectedSrcDb"
- options="treeOptions"
- on-selection="showSelected(node)"
- selected-node="selectedSrcTable">
- {{node.name}} {{!!(node.type_NAME)?'(' + trimType(node.type_NAME) + ')' : ''}}
- </treecontrol>
+ <abn-tree ng-if="selectedSrcDb.length > 0"
+ tree-data = "selectedSrcDb"
+ tree-control = "my_tree"
+ icon-leaf = "fa fa-columns"
+ icon-expand = "fa fa-database"
+ icon-collapse = "fa fa-database"
+ expand-level = "3">
+ </abn-tree>
+
<div no-result ng-if="selectedSrcDb.length == 0"></div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/partials/tables/source_table_tree.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/tables/source_table_tree.html b/webapp/app/partials/tables/source_table_tree.html
index deb5a64..c7229a9 100755
--- a/webapp/app/partials/tables/source_table_tree.html
+++ b/webapp/app/partials/tables/source_table_tree.html
@@ -37,7 +37,7 @@
<abn-tree
tree-data = "tableModel.selectedSrcDb"
tree-control = "my_tree"
- icon-leaf = "fa fa-table"
+ icon-leaf = "fa fa-columns"
icon-expand = "fa fa-database"
icon-collapse = "fa fa-database"
expand-level = "3">
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/5926d46d/webapp/app/partials/tables/table_detail.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/tables/table_detail.html b/webapp/app/partials/tables/table_detail.html
index 44d2978..d19addf 100644
--- a/webapp/app/partials/tables/table_detail.html
+++ b/webapp/app/partials/tables/table_detail.html
@@ -1,5 +1,5 @@
<div ng-controller="SourceMetaCtrl" class="nav-tabs-custom">
- <div class="col-xs-12" ng-show="models_treedata.length&&tableModel.selectedSrcTable.name">
+ <div class="col-xs-12" ng-show="tableModel.selectedSrcDb&&tableModel.selectedSrcTable.name">
<h3 class="text-info">Table Schema:{{ tableModel.selectedSrcTable.name}}</h3>
<div class="tabbable nav-tabs-custom">
<ul class="nav nav-tabs">
@@ -122,8 +122,10 @@
<!--show load hive table tip when no models list-->
- <div ng-show="!models_treedata.length" style="margin-top:40px;">
- <div class="box box-primary">
+ <div ng-show="!tableModel.selectedSrcDb.length" style="margin-top:40px;">
+
+ <!--project selected tip-->
+ <div ng-if="projectModel.getSelectedProject();" class="box box-primary">
<div class="box-header with-border">
<i class="fa fa-bullhorn"></i>
<h3 class="box-title">No tables</h3>
@@ -134,10 +136,24 @@
</div>
</div><!-- /.box-body -->
</div>
+ <!--roject not selected tip-->
+ <div ng-if="!projectModel.getSelectedProject();" class="box box-primary">
+ <div class="box-header with-border">
+ <i class="icon fa fa-warning"></i>
+ <h3 class="box-title">No project selected</h3>
+ </div>
+ <div class="box-body">
+ <div class="callout callout-danger">
+ <p class="text-danger">
+ Please select your project first
+ </p>
+ </div>
+ </div><!-- /.box-body -->
+ </div>
</div>
<!--show load hive table tip when no models list-->
- <div ng-show="models_treedata.length&&!tableModel.selectedSrcTable.name" style="margin-top:40px;">
+ <div ng-show="tableModel.selectedSrcDb.length&&!tableModel.selectedSrcTable.name" style="margin-top:40px;">
<div class="box box-primary">
<div class="box-header with-border">
<i class="fa fa-bullhorn"></i>