From 6cf1a4a29a673d9e439f2da44b6da3e17de7b194 Mon Sep 17 00:00:00 2001 From: "nichunen@mininglamp.com" Date: Thu, 27 Aug 2015 21:28:42 +0800 Subject: [PATCH] Disable next step when cube name is exited during cube creation for the first step. --- webapp/app/js/controllers/cubeSchema.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/webapp/app/js/controllers/cubeSchema.js b/webapp/app/js/controllers/cubeSchema.js index b7aae59..96e1c2e 100755 --- a/webapp/app/js/controllers/cubeSchema.js +++ b/webapp/app/js/controllers/cubeSchema.js @@ -18,12 +18,12 @@ 'use strict'; -KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserService, ProjectService, AuthenticationService, $filter, ModelService, MetaModel, CubeDescModel, CubeList, TableModel, ProjectModel,SweetAlert) { +KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserService, ProjectService, AuthenticationService, $filter, ModelService,CubeService, MetaModel, CubeDescModel, CubeList, TableModel, ProjectModel, SweetAlert) { $scope.projects = []; $scope.newDimension = null; $scope.newMeasure = null; - + $scope.allCubes = []; $scope.wizardSteps = [ {title: 'Cube Info', src: 'partials/cubeDesigner/info.html', isComplete: false}, @@ -50,6 +50,19 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserServic $scope.state = {mode: "view"}; } + // Add all cube names to avoid name conflict during cube creation. + var queryParam = {offset: 0, limit: 65535}; + + CubeService.list(queryParam, function (all_cubes) { + if($scope.allCubes.length > 0){ + $scope.allCubes.splice(0,$scope.allCubes.length); + } + + for (var i = 0; i < all_cubes.length; i++) { + $scope.allCubes.push(all_cubes[i].name.toUpperCase()); + } + }); + $scope.$watch('cube.detail', function (newValue, oldValue) { if (!newValue) { return; @@ -196,6 +209,10 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserServic }; $scope.nextView = function () { var stepIndex = $scope.wizardSteps.indexOf($scope.curStep); + if(stepIndex === 0 && ($scope.state.mode === "edit") &&($scope.allCubes.indexOf($scope.cubeMetaFrame.name.toUpperCase()) >= 0)){ + SweetAlert.swal('Oops...', "The cube named " + $scope.cubeMetaFrame.name.toUpperCase() + " already exists", 'error'); + return; + } if (stepIndex < ($scope.wizardSteps.length - 1)) { $scope.curStep.isComplete = true; -- 1.8.3.1