You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by zh...@apache.org on 2015/09/10 12:13:14 UTC

incubator-kylin git commit: KYLIN-919,enhancement on streaming UI

Repository: incubator-kylin
Updated Branches:
  refs/heads/2.x-staging 3c6c9c929 -> 0739cc227


KYLIN-919,enhancement on streaming UI


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

Branch: refs/heads/2.x-staging
Commit: 0739cc2273f44520c170fd3953c30cd00821b05c
Parents: 3c6c9c9
Author: jiazhong <ji...@ebay.com>
Authored: Thu Sep 10 18:10:40 2015 +0800
Committer: jiazhong <ji...@ebay.com>
Committed: Thu Sep 10 18:11:23 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cube.js           | 352 -----------------------
 webapp/app/js/controllers/cubes.js          |   6 +-
 webapp/app/js/controllers/models.js         |  10 +-
 webapp/app/js/controllers/sourceMeta.js     |   1 -
 webapp/app/js/model/modelsManager.js        |  15 +-
 webapp/app/js/model/tableModel.js           |   1 +
 webapp/app/partials/cubes/cube_edit.html    |   4 +-
 webapp/app/partials/models/models_tree.html |  13 +-
 8 files changed, 21 insertions(+), 381 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/js/controllers/cube.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cube.js b/webapp/app/js/controllers/cube.js
index 871575b..57b53e7 100755
--- a/webapp/app/js/controllers/cube.js
+++ b/webapp/app/js/controllers/cube.js
@@ -106,357 +106,5 @@ KylinApp.controller('CubeCtrl', function ($scope, AccessService, MessageService,
         }
     };
 
-//    Cube Action
-    $scope.enable = function (cube) {
-        SweetAlert.swal({
-            title: '',
-            text: 'Are you sure to enable the cube? Please note: if cube schema is changed in the disabled period, all segments of the cube will be discarded due to data and schema mismatch.',
-            type: '',
-            showCancelButton: true,
-            confirmButtonColor: '#DD6B55',
-//                confirmButtonText: "Yes",
-            closeOnConfirm: true
-        }, function(isConfirm) {
-            if(isConfirm){
-
-                loadingRequest.show();
-                CubeService.enable({cubeId: cube.name}, {}, function (result) {
-
-                    loadingRequest.hide();
-                    cube.status = 'READY';
-                    SweetAlert.swal('Success!', 'Enable job was submitted successfully', 'success');
-                },function(e){
-
-                    loadingRequest.hide();
-                    if(e.data&& e.data.exception){
-                        var message =e.data.exception;
-                        var msg = !!(message) ? message : 'Failed to take action.';
-                        SweetAlert.swal('Oops...', msg, 'error');
-                    }else{
-                        SweetAlert.swal('Oops...', "Failed to take action.", 'error');
-                    }
-                });
-            }
-        });
-    };
-
-    $scope.purge = function (cube) {
-        SweetAlert.swal({
-            title: '',
-            text: 'Are you sure to purge the cube? ',
-            type: '',
-            showCancelButton: true,
-            confirmButtonColor: '#DD6B55',
-            confirmButtonText: "Yes",
-            closeOnConfirm: true
-        }, function(isConfirm) {
-            if(isConfirm){
-
-                loadingRequest.show();
-                CubeService.purge({cubeId: cube.name}, {}, function (result) {
-
-                    loadingRequest.hide();
-//                    CubeList.removeAll();
-//                    $scope.reload();
-                    SweetAlert.swal('Success!', 'Purge job was submitted successfully', 'success');
-                },function(e){
-                    loadingRequest.hide();
-                    if(e.data&& e.data.exception){
-                        var message =e.data.exception;
-                        var msg = !!(message) ? message : 'Failed to take action.';
-                        SweetAlert.swal('Oops...', msg, 'error');
-                    }else{
-                        SweetAlert.swal('Oops...', "Failed to take action.", 'error');
-                    }
-                });
-            }
-        });
-    }
-
-
-    $scope.disable = function (cube) {
-
-        SweetAlert.swal({
-            title: '',
-            text: 'Are you sure to disable the cube? ',
-            type: '',
-            showCancelButton: true,
-            confirmButtonColor: '#DD6B55',
-            confirmButtonText: "Yes",
-            closeOnConfirm: true
-        }, function(isConfirm) {
-            if(isConfirm){
-
-                loadingRequest.show();
-                CubeService.disable({cubeId: cube.name}, {}, function (result) {
-
-                    loadingRequest.hide();
-                    cube.status = 'DISABLED';
-                    SweetAlert.swal('Success!', 'Disable job was submitted successfully', 'success');
-                },function(e){
-
-                    loadingRequest.hide();
-                    if(e.data&& e.data.exception){
-                        var message =e.data.exception;
-                        var msg = !!(message) ? message : 'Failed to take action.';
-                        SweetAlert.swal('Oops...', msg, 'error');
-                    }else{
-                        SweetAlert.swal('Oops...', "Failed to take action.", 'error');
-                    }
-                });
-            }
-
-        });
-    };
-
-
-    $scope.dropCube = function (cube) {
-
-        SweetAlert.swal({
-            title: '',
-            text: " Once it's dropped, your cube’s metadata and data will be cleaned up and can’t be restored back. ",
-            type: '',
-            showCancelButton: true,
-            confirmButtonColor: '#DD6B55',
-            confirmButtonText: "Yes",
-            closeOnConfirm: true
-        }, function(isConfirm) {
-            if(isConfirm){
-
-                loadingRequest.show();
-                CubeService.drop({cubeId: cube.name}, {}, function (result) {
-                    loadingRequest.hide();
-                    SweetAlert.swal('Success!', 'Cube drop is done successfully', 'success');
-                    location.reload();
-                },function(e){
-
-                    loadingRequest.hide();
-                    if(e.data&& e.data.exception){
-                        var message =e.data.exception;
-                        var msg = !!(message) ? message : 'Failed to take action.';
-                        SweetAlert.swal('Oops...', msg, 'error');
-                    }else{
-                        SweetAlert.swal('Oops...', "Failed to take action.", 'error');
-                    }
-                });
-            }
-
-        });
-    };
-
-    $scope.startJobSubmit = function (cube) {
-        $scope.metaModel={
-            model:modelsManager.getModelByCube(cube.name)
-        }
-        if ($scope.metaModel.model.name) {
-            if ($scope.metaModel.model.partition_desc.partition_date_column) {
-                $modal.open({
-                    templateUrl: 'jobSubmit.html',
-                    controller: jobSubmitCtrl,
-                    resolve: {
-                        cube: function () {
-                            return cube;
-                        },
-                        metaModel:function(){
-                            return $scope.metaModel;
-                        },
-                        buildType: function () {
-                            return 'BUILD';
-                        }
-                    }
-                });
-            }
-            else {
-
-                SweetAlert.swal({
-                    title: '',
-                    text: "Are you sure to start the build ?",
-                    type: '',
-                    showCancelButton: true,
-                    confirmButtonColor: '#DD6B55',
-                    confirmButtonText: "Yes",
-                    closeOnConfirm: true
-                }, function(isConfirm) {
-                    if(isConfirm){
-
-                        loadingRequest.show();
-                        CubeService.rebuildCube(
-                            {
-                                cubeId: cube.name
-                            },
-                            {
-                                buildType: 'BUILD',
-                                startTime: 0,
-                                endTime: 0
-                            }, function (job) {
-
-                                loadingRequest.hide();
-                                SweetAlert.swal('Success!', 'Rebuild job was submitted successfully', 'success');
-                            },function(e){
-
-                                loadingRequest.hide();
-                                if(e.data&& e.data.exception){
-                                    var message =e.data.exception;
-                                    var msg = !!(message) ? message : 'Failed to take action.';
-                                    SweetAlert.swal('Oops...', msg, 'error');
-                                }else{
-                                    SweetAlert.swal('Oops...', "Failed to take action.", 'error');
-                                }
-                            });
-                    }
-
-                });
-            }
-        }
-    };
-
-    $scope.startRefresh = function (cube) {
-        $scope.metaModel={
-            model:modelsManager.getModelByCube(cube.name)
-        };
-            $modal.open({
-                templateUrl: 'jobRefresh.html',
-                controller: jobSubmitCtrl,
-                resolve: {
-                    cube: function () {
-                        return cube;
-                    },
-                    metaModel:function(){
-                        return $scope.metaModel;
-                    },
-                    buildType: function () {
-                        return 'REFRESH';
-                    }
-                }
-            });
-
-    };
-
-    $scope.startMerge = function (cube) {
-        $scope.metaModel={
-            model:modelsManager.getModelByCube(cube.name)
-        };
-            $modal.open({
-                templateUrl: 'jobMerge.html',
-                controller: jobSubmitCtrl,
-                resolve: {
-                    cube: function () {
-                        return cube;
-                    },
-                    metaModel:function(){
-                        return $scope.metaModel;
-                    },
-                    buildType: function () {
-                        return 'MERGE';
-                    }
-                }
-            });
-    }
-
-
 });
 
-
-var jobSubmitCtrl = function ($scope, $modalInstance, CubeService, MessageService, $location, cube,metaModel, buildType,SweetAlert,loadingRequest,cubesManager) {
-    $scope.cubesManager = cubesManager;
-    $scope.metaModel={
-        model:metaModel.model
-    }
-    $scope.jobBuildRequest = {
-        buildType: buildType,
-        startTime: 0,
-        endTime: 0
-    };
-    $scope.message = "";
-
-    $scope.rebuild = function (jobsubmit) {
-
-        $scope.message = null;
-        $scope.jobBuildRequest.startTime = new Date($scope.jobBuildRequest.startTime).getTime();
-        $scope.jobBuildRequest.endTime = new Date($scope.jobBuildRequest.endTime).getTime();
-
-        if ($scope.jobBuildRequest.startTime >= $scope.jobBuildRequest.endTime) {
-            $scope.message = "WARNING: End time should be later than the start time.";
-
-            //rollback date setting
-            if(jobsubmit){
-                $scope.rebuildRollback();
-            }
-            return;
-        }
-
-        loadingRequest.show();
-        CubeService.rebuildCube({cubeId: cube.name}, $scope.jobBuildRequest, function (job) {
-
-            loadingRequest.hide();
-            $modalInstance.dismiss('cancel');
-            SweetAlert.swal('Success!', 'Rebuild job was submitted successfully', 'success');
-        },function(e){
-
-            //rollback date setting
-            if(jobsubmit){
-                $scope.rebuildRollback();
-            }
-
-            loadingRequest.hide();
-            if(e.data&& e.data.exception){
-                var message =e.data.exception;
-                var msg = !!(message) ? message : 'Failed to take action.';
-                SweetAlert.swal('Oops...', msg, 'error');
-            }else{
-                SweetAlert.swal('Oops...', "Failed to take action.", 'error');
-            }
-        });
-    };
-
-    $scope.rebuildRollback = function(){
-        $scope.jobBuildRequest.endTime+=new Date().getTimezoneOffset()*60000;
-    }
-
-    // used by cube segment refresh
-    $scope.segmentSelected = function (selectedSegment) {
-        $scope.jobBuildRequest.startTime = 0;
-        $scope.jobBuildRequest.endTime = 0;
-
-        if (selectedSegment.date_range_start) {
-            $scope.jobBuildRequest.startTime = selectedSegment.date_range_start;
-        }
-
-        if (selectedSegment.date_range_end) {
-            $scope.jobBuildRequest.endTime = selectedSegment.date_range_end;
-        }
-    };
-
-    // used by cube segments merge
-    $scope.mergeStartSelected = function (mergeStartSeg) {
-        $scope.jobBuildRequest.startTime = 0;
-
-        if (mergeStartSeg.date_range_start) {
-            $scope.jobBuildRequest.startTime = mergeStartSeg.date_range_start;
-        }
-    };
-
-    $scope.mergeEndSelected = function (mergeEndSeg) {
-        $scope.jobBuildRequest.endTime = 0;
-
-        if (mergeEndSeg.date_range_end) {
-            $scope.jobBuildRequest.endTime = mergeEndSeg.date_range_end;
-        }
-    };
-
-    $scope.updateDate = function() {
-
-        $scope.jobBuildRequest.endTime=$scope.formatDate($scope.jobBuildRequest.endTime);
-    };
-
-    $scope.formatDate = function(timestemp) {
-        var dateStart = new Date(timestemp);
-        dateStart = (dateStart.getFullYear() + "-" + (dateStart.getMonth() + 1) + "-" + dateStart.getDate());
-        //switch selected time to utc timestamp
-        return new Date(moment.utc(dateStart, "YYYY-MM-DD").format()).getTime();
-    };
-    $scope.cancel = function () {
-        $modalInstance.dismiss('cancel');
-    };
-};
-

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/js/controllers/cubes.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubes.js b/webapp/app/js/controllers/cubes.js
index 0953947..886aa6b 100644
--- a/webapp/app/js/controllers/cubes.js
+++ b/webapp/app/js/controllers/cubes.js
@@ -378,11 +378,9 @@ KylinApp
     }
   });
 
-var jobSubmitCtrl = function ($scope, $modalInstance, CubeService, MessageService, $location, cube, MetaModel, buildType, SweetAlert, loadingRequest) {
+var jobSubmitCtrl = function ($scope, $modalInstance, CubeService, MessageService, $location, cube, metaModel, buildType, SweetAlert, loadingRequest) {
   $scope.cube = cube;
-  $scope.metaModel = {
-    model: cube.model
-  }
+  $scope.metaModel = metaModel;
   $scope.jobBuildRequest = {
     buildType: buildType,
     startTime: 0,

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/js/controllers/models.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/models.js b/webapp/app/js/controllers/models.js
index 22c97fb..ea2cf6d 100644
--- a/webapp/app/js/controllers/models.js
+++ b/webapp/app/js/controllers/models.js
@@ -48,20 +48,22 @@ KylinApp.controller('ModelsCtrl', function ($scope, $q, $routeParams, $location,
             var queryParam = {};
 
             queryParam.projectName = $scope.projectModel.selectedProject;
-
             modelsManager.list(queryParam).then(function(resp){
               modelsManager.loading = false;
             });
 
         };
 
+        $scope.init();
+
         $scope.$watch('projectModel.selectedProject', function (newValue, oldValue) {
-                modelsManager.removeAll();
-                $scope.init();
+          if (newValue != oldValue || newValue == null) {
+            modelsManager.removeAll();
+            $scope.init();
+          }
 
         });
 
-
     $scope.status = {
         isopen: true
     };

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/js/controllers/sourceMeta.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/sourceMeta.js b/webapp/app/js/controllers/sourceMeta.js
index 52b9255..341430d 100755
--- a/webapp/app/js/controllers/sourceMeta.js
+++ b/webapp/app/js/controllers/sourceMeta.js
@@ -48,7 +48,6 @@ KylinApp
             $scope.loading = true;
             TableModel.aceSrcTbLoaded(forceLoad).then(function(){
                 $scope.loading = false;
-                TableModel.loading = false;
             });
         };
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/js/model/modelsManager.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/model/modelsManager.js b/webapp/app/js/model/modelsManager.js
index 1e88bc7..2c3c90a 100644
--- a/webapp/app/js/model/modelsManager.js
+++ b/webapp/app/js/model/modelsManager.js
@@ -31,11 +31,12 @@ KylinApp.service('modelsManager',function(ModelService,CubeService,$q,AccessServ
     //list models and complemete cube,access info
     this.list = function(queryParam){
 
+        _this.loading = true;
         var defer = $q.defer();
         var cubeDetail = [];
         var modelPermission = [];
         ModelService.list(queryParam, function (_models) {
-            _this.removeAll();
+            //_this.removeAll();
 
             angular.forEach(_models, function (model, index) {
                 $log.info("Add model permission info");
@@ -59,6 +60,7 @@ KylinApp.service('modelsManager',function(ModelService,CubeService,$q,AccessServ
                 function(result){
                     _models = _.filter(_models,function(models){return models.name!=undefined});
                     _this.models = _models;
+                    _this.loading = false;
                     defer.resolve(_this.models);
                 }
             );
@@ -69,17 +71,6 @@ KylinApp.service('modelsManager',function(ModelService,CubeService,$q,AccessServ
 
     };
 
-    //generator tree data info
-    //this.generatorTreeData = function(queryParam){
-    //  _this.loading = true;
-    //    var defer = $q.defer();
-    //    _this.list(queryParam).then(function(resp){
-    //        defer.resolve(_this.modelTreeData);
-    //    });
-    //    return defer.promise;
-    //};
-
-
     this.removemodels = function(models){
         var modelsIndex = _this.models.indexOf(models);
         if (modelsIndex > -1) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/js/model/tableModel.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/model/tableModel.js b/webapp/app/js/model/tableModel.js
index 52d8bd5..767c555 100755
--- a/webapp/app/js/model/tableModel.js
+++ b/webapp/app/js/model/tableModel.js
@@ -138,6 +138,7 @@ KylinApp.service('TableModel', function(ProjectModel,$q,TableService,$log) {
 
                 _this.selectedSrcDb.push(_db_node);
             }
+            _this.loading = false;
             defer.resolve();
         },function(e){
           defer.reject("Failed to load tables, please check system log for details.");

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/webapp/app/partials/cubes/cube_edit.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubes/cube_edit.html b/webapp/app/partials/cubes/cube_edit.html
index 07c3913..0eafe7d 100644
--- a/webapp/app/partials/cubes/cube_edit.html
+++ b/webapp/app/partials/cubes/cube_edit.html
@@ -18,7 +18,7 @@
 
 <div class="row">
     <div class="col-xs-3">
-        <div ng-include src="'partials/tables/source_table_tree.html'" ng-controller="SourceMetaCtrl"></div>
+        <div ng-include src="'partials/models/models_tree.html'" ng-controller="SourceMetaCtrl"></div>
     </div>
     <div class="col-xs-9">
         <form role="form" name="cube_form" novalidate>
@@ -31,4 +31,4 @@
         </form>
     </div>
 </div>
-</div>
\ No newline at end of file
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/0739cc22/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 196bf4a..da7add3 100644
--- a/webapp/app/partials/models/models_tree.html
+++ b/webapp/app/partials/models/models_tree.html
@@ -47,8 +47,11 @@
       </div>
 
     </div>
-    <!--<div class="space-4 box-header with-border"></div>-->
+    <div class="space-4 box-header with-border"></div>
     <!--tree-->
+  <div>
+    <h3 class="text-info">Models</h3>
+  </div>
     <div style="width:100%; height:{{window}}px; overflow:auto;margin-top: 20px;" ng-controller="ModelsCtrl">
 
         <ul class="list-group models-tree">
@@ -60,14 +63,12 @@
             <div class="pull-right" showonhoverparent style="display:none;">
 
               <a href="models/edit/{{model.name}}"  ng-if="userService.hasRole('ROLE_MODELER')"><span class="fa fa-pencil fa-lg fa-fw"></span></a>
-              <a ng-click="dropModel(modelsManager.selectedModel)" style="cursor:pointer;margin-right: 8px;" ng-if="userService.hasRole('ROLE_MODELER')"><span class="fa fa-trash-o fa-lg fa-fw"></span></a>
+              <a ng-click="dropModel(model)" style="cursor:pointer;margin-right: 8px;" ng-if="userService.hasRole('ROLE_MODELER')"><span class="fa fa-trash-o fa-lg fa-fw"></span></a>
             </div>
 
           </li>
         </ul>
-
-        <div ng-if="modelsManager.loading==true||tableModel.loading==true"><i class="fa fa-2x fa-spinner fa-spin"></i> Loading..</div>
-        <div no-result ng-if="modelsManager.loading==false&&tableModel.loading==false&&modelsManager.models.length==0"></div>
-
+      <div ng-if="modelsManager.loading==true"><i class="fa fa-2x fa-spinner fa-spin"></i> Loading..</div>
+      <div no-result ng-if="modelsManager.loading!=true&&modelsManager.models.length==0"></div>
     </div>
 </div>