From 6df2ac5af94f9fd813bc79f8fcc351b374ab6652 Mon Sep 17 00:00:00 2001 From: sanjulian Date: Fri, 9 Feb 2018 14:32:34 +0800 Subject: [PATCH] KYLIN-2884 Add delete segment function for portal --- webapp/app/js/controllers/cubes.js | 66 +++++++++++++++- webapp/app/js/services/cubes.js | 1 + webapp/app/partials/cubes/cube_delete_segment.html | 89 ++++++++++++++++++++++ webapp/app/partials/cubes/cubes.html | 3 +- 4 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 webapp/app/partials/cubes/cube_delete_segment.html diff --git a/webapp/app/js/controllers/cubes.js b/webapp/app/js/controllers/cubes.js index cc28a8d..a386202 100644 --- a/webapp/app/js/controllers/cubes.js +++ b/webapp/app/js/controllers/cubes.js @@ -520,8 +520,25 @@ KylinApp.controller('CubesCtrl', function ($scope, $q, $routeParams, $location, } }); }) - } + }; + $scope.startDeleteSegment = function (cube) { + $scope.metaModel={ + model:modelsManager.getModelByCube(cube.name) + }; + $modal.open({ + templateUrl: 'deleteSegment.html', + controller: deleteSegmentCtrl, + resolve: { + cube: function () { + return cube; + }, + scope: function() { + return $scope; + } + } + }); + }; }); @@ -715,4 +732,49 @@ var streamingBuildCtrl = function ($scope, $modalInstance,kylinConfig) { $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; -} +}; + +var deleteSegmentCtrl = function($scope, $modalInstance, CubeService, SweetAlert, loadingRequest, cube, scope) { + $scope.cube = cube; + $scope.deleteSegments = []; + $scope.segment = {}; + + $scope.cancel = function () { + $modalInstance.dismiss('cancel'); + }; + + $scope.deleteSegment = function() { + SweetAlert.swal({ + title: '', + text: 'Are you sure to delete segment ['+$scope.segment.selected.name+']? ', + type: '', + showCancelButton: true, + confirmButtonColor: '#DD6B55', + confirmButtonText: "Yes", + closeOnConfirm: true + }, function(isConfirm) { + if(isConfirm){ + loadingRequest.show(); + CubeService.deleteSegment({cubeId: cube.name, propValue: $scope.segment.selected.name}, {}, function (result) { + loadingRequest.hide(); + $modalInstance.dismiss('cancel'); + scope.refreshCube(cube).then(function(_cube){ + if(_cube && _cube.name){ + scope.cubeList.cubes[scope.cubeList.cubes.indexOf(cube)] = _cube; + } + }); + SweetAlert.swal('Success!', 'Delete segment successfully', 'success'); + },function(e){ + loadingRequest.hide(); + if(e.data&& e.data.exception){ + var message =e.data.exception; + var msg = !!(message) ? message : 'Failed to delete segment.'; + SweetAlert.swal('Oops...', msg, 'error'); + }else{ + SweetAlert.swal('Oops...', 'Failed to delete segment.', 'error'); + } + }); + } + }); + }; +}; diff --git a/webapp/app/js/services/cubes.js b/webapp/app/js/services/cubes.js index 30c2a3f..6140521 100644 --- a/webapp/app/js/services/cubes.js +++ b/webapp/app/js/services/cubes.js @@ -50,6 +50,7 @@ KylinApp.factory('CubeService', ['$resource', function ($resource, config) { enable: {method: 'PUT', params: {action: 'enable'}, isArray: false}, purge: {method: 'PUT', params: {action: 'purge'}, isArray: false}, clone: {method: 'PUT', params: {action: 'clone'}, isArray: false}, + deleteSegment: {method: 'DELETE', params: {propName: 'segs'}, isArray: false}, drop: {method: 'DELETE', params: {}, isArray: false}, save: {method: 'POST', params: {}, isArray: false}, update: {method: 'PUT', params: {}, isArray: false}, diff --git a/webapp/app/partials/cubes/cube_delete_segment.html b/webapp/app/partials/cubes/cube_delete_segment.html new file mode 100644 index 0000000..8500f3f --- /dev/null +++ b/webapp/app/partials/cubes/cube_delete_segment.html @@ -0,0 +1,89 @@ + + + \ No newline at end of file diff --git a/webapp/app/partials/cubes/cubes.html b/webapp/app/partials/cubes/cubes.html index f61afbf..3fd5e61 100644 --- a/webapp/app/partials/cubes/cubes.html +++ b/webapp/app/partials/cubes/cubes.html @@ -97,6 +97,7 @@
  • Merge
  • Disable
  • Enable
  • +
  • Delete Segment
  • Purge
  • Clone
  • Migrate
  • @@ -144,5 +145,5 @@
    - +
    -- 2.8.1