From 9767d9f633e369cd319219346b28369a1613ce06 Mon Sep 17 00:00:00 2001 From: sanjulian Date: Mon, 11 Dec 2017 16:00:15 +0800 Subject: [PATCH] KYLIN-2884 Add delete segment function for portal --- webapp/app/js/controllers/cubes.js | 62 +++++++++++++++ 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, 154 insertions(+), 1 deletion(-) 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 dfa26a4..ef513af 100644 --- a/webapp/app/js/controllers/cubes.js +++ b/webapp/app/js/controllers/cubes.js @@ -494,6 +494,24 @@ 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; + } + } + }); + }; }); @@ -669,3 +687,47 @@ var streamingBuildCtrl = function ($scope, $modalInstance,kylinConfig) { $modalInstance.dismiss('cancel'); }; } + +var deleteSegmentCtrl = function($scope, $modalInstance, CubeService, SweetAlert, loadingRequest, cube, scope) { + $scope.cube = cube; + $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'); + } + }); + } + }); + }; +}; \ No newline at end of file diff --git a/webapp/app/js/services/cubes.js b/webapp/app/js/services/cubes.js index 150d932..97ba6cc 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..ed2cce1 --- /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 3e7e961..23431f1 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
  • @@ -143,5 +144,5 @@
    - +
    -- 2.8.1