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>