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:01 UTC

[32/52] [abbrv] incubator-kylin git commit: new models page update

new models page update


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/ef5ccb5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/ef5ccb5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/ef5ccb5b

Branch: refs/heads/0.8.0
Commit: ef5ccb5b0b0c09cbddce4406cae9101897b3d1be
Parents: 336973e
Author: jiazhong <ji...@ebay.com>
Authored: Wed Mar 25 17:56:41 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Fri May 15 11:36:52 2015 +0800

----------------------------------------------------------------------
 .../kylin/rest/controller/CubeController.java   |  4 +-
 .../kylin/rest/controller/ModelController.java  |  4 +-
 .../apache/kylin/rest/service/CubeService.java  |  9 ++++-
 .../apache/kylin/rest/service/ModelService.java | 16 ++++----
 webapp/app/js/controllers/cubeModel.js          | 21 +++++++++--
 webapp/app/js/controllers/modelEdit.js          |  5 ++-
 webapp/app/js/controllers/models.js             |  8 ++--
 webapp/app/js/model/modelList.js                |  3 +-
 webapp/app/less/component.less                  |  4 ++
 webapp/app/partials/cubes/cube_detail.html      |  2 +-
 webapp/app/partials/models/model_detail.html    | 39 +++++++++++++++++++-
 webapp/app/partials/models/model_schema.html    |  6 +--
 webapp/app/partials/models/models_tree.html     |  6 +--
 13 files changed, 93 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
index fb1870b..b1f9b4a 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/CubeController.java
@@ -89,8 +89,8 @@ public class CubeController extends BasicController {
     @RequestMapping(value = "", method = {RequestMethod.GET})
     @ResponseBody
     @Metered(name = "listCubes")
-    public List<CubeInstance> getCubes(@RequestParam(value = "cubeName", required = false) String cubeName,@RequestParam(value = "modelName", required = false) String modelName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam("limit") Integer limit, @RequestParam("offset") Integer offset) {
-        return cubeService.getCubes(cubeName, projectName, modelName,(null == limit) ? 20 : limit, offset);
+    public List<CubeInstance> getCubes(@RequestParam(value = "cubeName", required = false) String cubeName,@RequestParam(value = "modelName", required = false) String modelName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam(value="limit",required = false) Integer limit, @RequestParam(value = "offset" ,required = false) Integer offset) {
+        return cubeService.getCubes(cubeName, projectName, modelName, limit, offset);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
index 5a18a3b..9b50af6 100644
--- a/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
+++ b/server/src/main/java/org/apache/kylin/rest/controller/ModelController.java
@@ -58,8 +58,8 @@ public class ModelController extends BasicController {
     @RequestMapping(value = "", method = {RequestMethod.GET})
     @ResponseBody
     @Metered(name = "listModels")
-    public List<DataModelDesc> getModels(@RequestParam(value = "modelName", required = false) String modelName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam("limit") Integer limit, @RequestParam("offset") Integer offset) {
-        return modelService.getModels(modelName, projectName, (null == limit) ? 20 : limit, offset);
+    public List<DataModelDesc> getModels(@RequestParam(value = "modelName", required = false) String modelName, @RequestParam(value = "projectName", required = false) String projectName, @RequestParam(value="limit",required=false) Integer limit, @RequestParam(value="offset",required=false) Integer offset) {
+        return modelService.getModels(modelName, projectName, limit, offset);
     }
 
     @RequestMapping(value = "/{modelName}", method = {RequestMethod.DELETE})

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
index 8dc0345..7f63d34 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/CubeService.java
@@ -117,12 +117,17 @@ public class CubeService extends BasicService {
     }
 
     public List<CubeInstance> getCubes(final String cubeName, final String projectName,final String modelName ,final Integer limit, final Integer offset) {
-        int climit = (null == limit) ? 30 : limit;
-        int coffset = (null == offset) ? 0 : offset;
 
         List<CubeInstance> cubes;
         cubes = listAllCubes(cubeName, projectName,modelName);
 
+        if(limit==null||offset==null){
+            return cubes;
+        }
+
+        int climit = (null == limit) ? 30 : limit;
+        int coffset = (null == offset) ? 0 : offset;
+
         if (cubes.size() <= coffset) {
             return Collections.emptyList();
         }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/server/src/main/java/org/apache/kylin/rest/service/ModelService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/ModelService.java b/server/src/main/java/org/apache/kylin/rest/service/ModelService.java
index 181ccdf..490de31 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/ModelService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/ModelService.java
@@ -73,21 +73,23 @@ public class ModelService extends BasicService {
     }
 
     public List<DataModelDesc> getModels(final String modelName, final String projectName, final Integer limit, final Integer offset) {
-        int climit = (null == limit) ? 30 : limit;
-        int coffset = (null == offset) ? 0 : offset;
 
         List<DataModelDesc> modelDescs;
         modelDescs = listAllModels(modelName, projectName);
 
-        if (modelDescs.size() <= coffset) {
-            return Collections.emptyList();
+        if(limit==null || offset == null){
+            return modelDescs;
         }
 
-        if ((modelDescs.size() - coffset) < climit) {
-            return modelDescs.subList(coffset, modelDescs.size());
+//        if (modelDescs.size() <= limit) {
+//            return Collections.emptyList();
+//        }
+
+        if ((modelDescs.size() - offset) < limit) {
+            return modelDescs.subList(offset, modelDescs.size());
         }
 
-        return modelDescs.subList(coffset, coffset + climit);
+        return modelDescs.subList(offset, offset + limit);
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/js/controllers/cubeModel.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeModel.js b/webapp/app/js/controllers/cubeModel.js
index 47014c9..2987905 100644
--- a/webapp/app/js/controllers/cubeModel.js
+++ b/webapp/app/js/controllers/cubeModel.js
@@ -20,11 +20,26 @@
 
 KylinApp.controller('CubeModelCtrl', function ($scope, $modal,cubeConfig,MetaModel,SweetAlert,GraphService,$log) {
 
-    //copy model for show Json in model tab list
-    $scope.modelJson = angular.copy($scope.model);
 
     $scope.buildGraph = function (model) {
-        GraphService.buildTree(model);
+//        var newModel = jQuery.extend(true, {}, model);
+        var newModel = angular.copy(model);
+        GraphService.buildTree(newModel);
+    };
+
+    $scope.cleanStatus = function(model){
+
+        if (!model)
+        {
+            return;
+        }
+        var newModel = jQuery.extend(true, {}, model);
+        delete newModel.project;
+        delete  newModel.accessEntities;
+        delete  newModel.visiblePage;
+        delete  newModel.cubes;
+
+        return newModel;
     };
 
     $scope.cubeConfig = cubeConfig;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/js/controllers/modelEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/modelEdit.js b/webapp/app/js/controllers/modelEdit.js
index 364919d..30f4c21 100644
--- a/webapp/app/js/controllers/modelEdit.js
+++ b/webapp/app/js/controllers/modelEdit.js
@@ -111,8 +111,9 @@ KylinApp.controller('ModelEditCtrl', function ($scope, $q, $routeParams, $locati
 
         }
         $scope.state.project = $scope.model.project;
-        delete $scope.model.project;
-        $scope.state.modelSchema = angular.toJson($scope.model, true);
+        var _model = angular.copy($scope.model);
+        delete _model.project;
+        $scope.state.modelSchema = angular.toJson(_model, true);
 
     };
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/js/controllers/models.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/models.js b/webapp/app/js/controllers/models.js
index e16c27a..973ede0 100644
--- a/webapp/app/js/controllers/models.js
+++ b/webapp/app/js/controllers/models.js
@@ -47,14 +47,14 @@ KylinApp.controller('ModelsCtrl', function ($scope, $q, $routeParams, $location,
 
 
         //  TODO offset&limit
-        $scope.list = function (offset, limit) {
+        $scope.list = function () {
             if(!$scope.projectModel.projects.length){
                 return [];
             }
-            offset = (!!offset) ? offset : 0;
-            limit = (!!limit) ? limit : 70;
+//            offset = (!!offset) ? offset : null;
+//            limit = (!!limit) ? limit : null;
 
-            var queryParam = {offset: offset, limit: limit};
+            var queryParam = {};
             if ($scope.listParams.modelName) {
                 queryParam.modelName = $scope.listParams.modelName;
             }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/js/model/modelList.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/model/modelList.js b/webapp/app/js/model/modelList.js
index 9c83c4e..b7dba7b 100644
--- a/webapp/app/js/model/modelList.js
+++ b/webapp/app/js/model/modelList.js
@@ -36,7 +36,8 @@ KylinApp.service('ModelList',function(ModelService,CubeService,$q,AccessService,
                 )
                 $log.info("Add cube info to model ,not detail info");
                 cubeDetail.push(
-                    CubeService.list({offset: 0, limit: 70,modelName:model.name}, function (_cubes) {
+//                    CubeService.list({offset: 0, limit: 70,modelName:model.name}, function (_cubes) {
+                    CubeService.list({modelName:model.name}, function (_cubes) {
                     model.cubes = _cubes;
                     }).$promise
                 );

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/less/component.less
----------------------------------------------------------------------
diff --git a/webapp/app/less/component.less b/webapp/app/less/component.less
index f14ab07..9e05fcf 100644
--- a/webapp/app/less/component.less
+++ b/webapp/app/less/component.less
@@ -960,3 +960,7 @@ Angular 1.2.0 Animation
 .box-2px{
   border-top:solid 2px #3c8dbc !important;
 }
+
+treecontrol{
+  font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/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 f0644cc..91e5afe 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">
-                Action <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/ef5ccb5b/webapp/app/partials/models/model_detail.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/models/model_detail.html b/webapp/app/partials/models/model_detail.html
index 6d43210..b116a0a 100644
--- a/webapp/app/partials/models/model_detail.html
+++ b/webapp/app/partials/models/model_detail.html
@@ -17,7 +17,42 @@
 -->
 
 <div ng-controller="CubeModelCtrl" class="nav-tabs-custom">
-    <div ng-include="'partials/models/model_schema.html'" ng-controller="ModelSchemaCtrl"
-         ng-init="state={mode:'view', modelName:model.name}">
+    <ul ng-show="model.name" class="nav nav-tabs">
+        <li class="{{(!model.visiblePage || model.visiblePage=='metadata')? 'active':''}}">
+            <a href="" ng-click="model.visiblePage='metadata'">Grid</a>
+        </li>
+        <li class="{{model.visiblePage=='graph'? 'active':''}}">
+            <a href="" ng-click="model.visiblePage='graph';buildGraph(model);$event.stopPropagation();">Visualization</a>
+        </li>
+        <li class="{{model.visiblePage=='json_model'? 'active':''}}"
+            ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(model, 16) && !newAccess">
+            <a href="" ng-click="model.visiblePage='json_model';">JSON</a>
+        </li>
+        <li class="dropdown" ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)">
+            <a class="dropdown-toggle" data-toggle="dropdown" href="#" aria-expanded="true">
+                <i class="fa fa-star"> Action </i> <span class="caret"></span>
+            </a>
+            <ul class="dropdown-menu">
+                <li ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)">
+                    <a href="models/edit/{{model.name}}" data-widget="collapse">Edit Model</a>
+                </li>
+                <li ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)">
+                    <a href="cubes/add/{{model.name}}" data-widget="collapse">Create Cube</a>
+                </li>
+            </ul>
+        </li>
+    </ul>
+
+    <div class="model-detail" ng-if="!model.visiblePage || model.visiblePage=='metadata'">
+        <div ng-include="'partials/models/model_schema.html'" ng-controller="ModelSchemaCtrl"
+             ng-init="state={mode:'view', modelName:model.name}">
+        </div>
+    </div>
+    <div ng-show="model.visiblePage=='graph'" id="model_graph_{{model.name}}" class="model-detail model_graph">
     </div>
+    <div ng-show="model.visiblePage=='json_model'" class="model-detail">
+          <pre ng-if="!state.jsonEdit"
+               style="background-color: white;border: 0px">{{angular.toJson(cleanStatus(model), true)}}</pre>
+    </div>
+
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/partials/models/model_schema.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/models/model_schema.html b/webapp/app/partials/models/model_schema.html
index 60e73e6..898343a 100644
--- a/webapp/app/partials/models/model_schema.html
+++ b/webapp/app/partials/models/model_schema.html
@@ -16,13 +16,9 @@
 * limitations under the License.
 -->
 
-<div class="box box-primary model-design" ng-hide="state.mode=='view'&&!model.name">
+<div class="box box-primary model-design box-2px" ng-hide="state.mode=='view'&&!model.name">
     <div class="box-header widget-header-blue widget-header-flat">
         <h4 class="box-title text-info">Model Designer</h4>
-        <div ng-if="state.mode=='view'" class="box-tools pull-right">
-            <a ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)" class="btn btn-box-tool" tooltip="Edit Model" href="models/edit/{{model.name}}" data-widget="collapse"><i class="fa fa-edit"></i></a>
-            <a ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)" class="btn btn-box-tool"  tooltip="Add Cube" href="cubes/add/{{model.name}}" data-widget="collapse"><i class="fa fa-cube"></i></a>
-        </div>
     </div>
     <div class="box-body">
         <ng-form name="design_form" ng-submit="">

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ef5ccb5b/webapp/app/partials/models/models_tree.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/models/models_tree.html b/webapp/app/partials/models/models_tree.html
index 1a8c57a..727c498 100644
--- a/webapp/app/partials/models/models_tree.html
+++ b/webapp/app/partials/models/models_tree.html
@@ -35,9 +35,9 @@
         <abn-tree
                 tree-data         = "models_treedata"
                 tree-control      = "my_tree"
-                icon-leaf         = "fa fa-cube"
-                icon-expand       = "fa fa-plus"
-                icon-collapse     = "fa fa-minus"
+                icon-leaf         = "fa fa-cubes"
+                icon-expand       = "fa fa-star"
+                icon-collapse     = "fa fa-star-o"
                 expand-level      = "2"
                 initial-selection = "">
             ></abn-tree>