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>