You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/08/11 12:35:13 UTC
[kylin] branch master updated: KYLIN-4126 cube name validate code
cause the wrong judge of streaming type
This is an automated email from the ASF dual-hosted git repository.
nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push:
new afe076a KYLIN-4126 cube name validate code cause the wrong judge of streaming type
afe076a is described below
commit afe076a22b1876bbe551b1f7edb5f9fc68296c1e
Author: luguosheng1314 <55...@qq.com>
AuthorDate: Fri Aug 9 18:18:17 2019 +0800
KYLIN-4126 cube name validate code cause the wrong judge of streaming type
---
webapp/app/js/controllers/cubeSchema.js | 109 +++++++++++++++--------------
webapp/app/js/services/cubes.js | 2 +-
webapp/app/partials/cubes/cube_schema.html | 4 +-
3 files changed, 58 insertions(+), 57 deletions(-)
diff --git a/webapp/app/js/controllers/cubeSchema.js b/webapp/app/js/controllers/cubeSchema.js
index ff83180..3480ffa 100755
--- a/webapp/app/js/controllers/cubeSchema.js
+++ b/webapp/app/js/controllers/cubeSchema.js
@@ -260,76 +260,77 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserServic
}
});
-
- $scope.checkCubeForm = async function(stepIndex){
- // do not check for Prev Step
- if (stepIndex + 1 < $scope.curStep.step) {
- return true;
+ $scope.nextStep = async function (stepIndex, cb) {
+ var validResult = await $scope.checkCubeForm(stepIndex);
+ if (validResult) {
+ if (typeof cb === 'function') {
+ cb(stepIndex)
}
+ }
+ }
+ $scope.checkCubeForm = async function(stepIndex){
+ // do not check for Prev Step
+ if (stepIndex + 1 < $scope.curStep.step) {
+ return true;
+ }
- if(!$scope.curStep.form){
- return true;
- }
- if($scope.state.mode==='view'){
- return true;
- }
- else{
- //form validation
- if($scope.forms[$scope.curStep.form].$invalid){
- $scope.forms[$scope.curStep.form].$submitted = true;
- return false;
- }else{
- //business rule check
- switch($scope.curStep.form){
- case 'cube_info_form':
- var result = await $scope.check_cube_info().then(function(res){
- return res.data
- });
- return result
- break;
- case 'cube_dimension_form':
- return $scope.check_cube_dimension();
- break;
- case 'cube_measure_form':
- return $scope.check_cube_measure();
- break;
- case 'cube_setting_form':
- return $scope.check_cube_setting();
- case 'cube_overwrite_prop_form':
- return $scope.cube_overwrite_prop_check();
- default:
- return true;
- break;
- }
- }
- }
- };
+ if(!$scope.curStep.form){
+ return true;
+ }
+ if($scope.state.mode==='view'){
+ return true;
+ }
+ else{
+ //form validation
+ if($scope.forms[$scope.curStep.form].$invalid){
+ $scope.forms[$scope.curStep.form].$submitted = true;
+ return false;
+ }else{
+ //business rule check
+ switch($scope.curStep.form){
+ case 'cube_info_form':
+ return await $scope.check_cube_info();
+ case 'cube_dimension_form':
+ return $scope.check_cube_dimension();
+ case 'cube_measure_form':
+ return $scope.check_cube_measure();
+ case 'cube_setting_form':
+ return $scope.check_cube_setting();
+ case 'cube_overwrite_prop_form':
+ return $scope.cube_overwrite_prop_check();
+ default:
+ return true;
+ }
+ }
+ }
+ };
$scope.checkDuplicatedCubeName = function (cubeName) {
return ($scope.allCubeNames.indexOf(cubeName.toUpperCase())) >= 0;
}
$scope.check_cube_info = function () {
+ // Update storage type according to the streaming table in model
+ if(TableModel.selectProjectTables.some(function(table) {
+ return (table.name === $scope.metaModel.model.fact_table && _.values(tableConfig.streamingSourceType).indexOf(table.source_type) > -1)
+ })) {
+ $scope.cubeMetaFrame.storage_type = 3;
+ } else {
+ $scope.cubeMetaFrame.storage_type = 2;
+ }
+ var defer = $q.defer();
if ($scope.state.mode === "edit" && $scope.cubeMode === "addNewCube") {
var cubeName = $scope.cubeMetaFrame.name;
- var defer = $q.defer();
- CubeService.getAllCubes({cubeName: cubeName}, {}, function (res) {
+ CubeService.checkDuplicateCubeName({cubeName: cubeName}, {}, function (res) {
if (!res.data) {
SweetAlert.swal('Oops...', "The cube named [" + cubeName.toUpperCase() + "] already exists", 'warning');
}
- defer.resolve(res.data)
+ return defer.resolve(res.data);
})
- return defer.promise
- }
- // Update storage type according to the streaming table in model
- if(TableModel.selectProjectTables.some(function(table) {
- return (table.name === $scope.metaModel.model.fact_table && _.values(tableConfig.streamingSourceType).indexOf(table.source_type) > -1)
- })) {
- $scope.cubeMetaFrame.storage_type = 3;
} else {
- $scope.cubeMetaFrame.storage_type = 2;
+ defer.resolve(true);
}
- return true;
+ return defer.promise;
}
$scope.check_cube_dimension = function(){
diff --git a/webapp/app/js/services/cubes.js b/webapp/app/js/services/cubes.js
index 0b0958d..fe28772 100644
--- a/webapp/app/js/services/cubes.js
+++ b/webapp/app/js/services/cubes.js
@@ -81,6 +81,6 @@ KylinApp.factory('CubeService', ['$resource', function ($resource, config) {
optimize: {method: 'PUT', params: {action: 'optimize'}, isArray: false},
autoMigrate: {method: 'POST', params: {action: 'migrate'}, isArray: false},
lookupRefresh: {method: 'PUT', params: {action: 'refresh_lookup'}, isArray: false},
- getAllCubes: {method: 'GET', params: {action: 'validate'}, isArray: false}
+ checkDuplicateCubeName: {method: 'GET', params: {action: 'validate'}, isArray: false}
});
}]);
diff --git a/webapp/app/partials/cubes/cube_schema.html b/webapp/app/partials/cubes/cube_schema.html
index 5cf39dc..c4cebbf 100644
--- a/webapp/app/partials/cubes/cube_schema.html
+++ b/webapp/app/partials/cubes/cube_schema.html
@@ -25,7 +25,7 @@
<ul class="wizard-steps">
<li ng-repeat="step in wizardSteps"
class="{{step==curStep?'active':''}} {{step.isComplete?'complete':''}}">
- <span style="cursor:pointer;" ng-click="checkCubeForm($index)?goToStep($index):''" class="step">{{step.step = ($index + 1)}}</span>
+ <span style="cursor:pointer;" ng-click="nextStep($index, goToStep)" class="step">{{step.step = ($index + 1)}}</span>
<span class="title">{{step.title}}</span>
</li>
</ul>
@@ -46,7 +46,7 @@
<i class="ace-icon fa fa-arrow-left"></i>
Prev
</button>
- <button id="nextButton" class="btn btn-success btn-next" ng-click="checkCubeForm($index)?nextView():''" ng-disabled="forms[curStep.form].$invalid"
+ <button id="nextButton" class="btn btn-success btn-next" ng-click="nextStep($index, nextView)" ng-disabled="forms[curStep.form].$invalid"
ng-show="curStep.title!='Overview'">
Next
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>