aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/app/modules/home/serviceDelete
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/app/modules/home/serviceDelete')
-rw-r--r--vnfmarket/app/modules/home/serviceDelete/serviceDelete-test.js103
-rw-r--r--vnfmarket/app/modules/home/serviceDelete/serviceDelete.html48
-rw-r--r--vnfmarket/app/modules/home/serviceDelete/serviceDeleteCtrl.js65
-rw-r--r--vnfmarket/app/modules/home/serviceDelete/serviceDeleteService.js52
4 files changed, 268 insertions, 0 deletions
diff --git a/vnfmarket/app/modules/home/serviceDelete/serviceDelete-test.js b/vnfmarket/app/modules/home/serviceDelete/serviceDelete-test.js
new file mode 100644
index 00000000..2fb828a1
--- /dev/null
+++ b/vnfmarket/app/modules/home/serviceDelete/serviceDelete-test.js
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+(function() {
+ 'use strict';
+
+ /**
+ * @ngdoc function
+ * @name app.test:homeTest
+ * @description
+ * # homeTest
+ * Test of the app
+ */
+ angular
+ .module('vnfmarket')
+ .constant("serviceDetails", {
+ "csarId": "26b4d6c4-a157-43c0-8ebc-9d6af1d6c40c",
+ "name": "clearwater_vnf",
+ "downloadUri": "null/files/catalog-http/NFAR/Canonical/clearwater_vnf/v1.0/clearwater_vnf.csar",
+ "report": "/Demo/reports/b3232e0c-3843-4df8-88e7-734cf2d7a97c/report.html",
+ "size": "1.8 MB",
+ "version": "v1.0",
+ "provider": "Canonical",
+ "type": "NFAR",
+ "format": "yaml",
+ "deletionPending": false,
+ "createTime": "2017-02-22 08:59:06",
+ "modifyTime": "2017-02-22 08:59:06",
+ "shortDesc": "",
+ "details": "",
+ "remarks": ""
+ })
+
+ describe('Home - serviceDeleteCtrl', function() {
+ var controller = null,
+ $scope = null,
+ $location, service, httpBackend, config, state, blah;
+
+ beforeEach(function() {
+ module('vnfmarket');
+ });
+ beforeEach(module('ui.router'));
+ beforeEach(module('md.data.table'));
+ beforeEach(module('pascalprecht.translate'));
+
+ beforeEach(inject(function($controller, $rootScope, serviceDeleteService, $httpBackend, vnfConfig, serviceDetails) {
+ $scope = $rootScope.$new();
+ service = serviceDeleteService;
+ httpBackend = $httpBackend;
+ config = vnfConfig;
+ blah = serviceDetails;
+ controller = $controller('serviceDeleteCtrl', {
+ $scope: $scope
+ });
+ }));
+
+ it('Should serviceDeleteCtrl must be defined', function() {
+ expect(controller).toBeDefined();
+ });
+
+ it('Delete service for a valid scenario', function() {
+ var csarId = "26b4d6c4-a157-43c0-8ebc-9d6af1d6c40c", url = config.common.baseUrl + config.api.home.serviceDelete.url;
+ url = url.replace(":csarId", csarId);
+ httpBackend.whenDELETE(url).respond(200, {});
+
+ var returnData = {};
+ httpBackend.expectDELETE(url).respond(returnData);
+
+ service.serviceDelete(csarId).then(function(response) {
+ expect(response.status).toBeDefined();
+ expect(response.status).toBe(200);
+ });
+ httpBackend.flush();
+ });
+
+ // it('Delete service for a valid scenario', function() {
+ // var csarId = "Test-26b4d6c4-a157-43c0-8ebc-9d6af1d6c40c-test", url = config.common.baseUrl + config.api.home.serviceDelete.url;
+ // url = url.replace(":csarId", csarId);
+ // httpBackend.whenDELETE(url).respond(500, { "errorText" : "Invalid"});
+
+ // var returnData = {}, code;
+ // httpBackend.expectDELETE(url).respond(returnData);
+
+ // service.serviceDelete(csarId).then(function(response) {
+ // expect(response.data).toBeDefined();
+ // expect(response.data).toBe("Invalid");
+ // });
+ // httpBackend.flush();
+ // });
+ });
+})(); \ No newline at end of file
diff --git a/vnfmarket/app/modules/home/serviceDelete/serviceDelete.html b/vnfmarket/app/modules/home/serviceDelete/serviceDelete.html
new file mode 100644
index 00000000..05ca674e
--- /dev/null
+++ b/vnfmarket/app/modules/home/serviceDelete/serviceDelete.html
@@ -0,0 +1,48 @@
+<!--
+ Copyright 2017 Huawei Technologies Co., Ltd.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<md-dialog aria-label="Delete Service dialog" flex="30" class="md-red-theme">
+ <form ng-cloak>
+ <md-toolbar class="md-hue-2 dialogHeader">
+ <div class="md-toolbar-tools">
+ <h2>{{'module.marketplace.serviceDelete.title' | translate}}</h2>
+ <span flex></span>
+ <button class="btnTransparency" ng-click="vm.cancel()">
+ <i class="fa fa-close fa-sm" aria-hidden="true"></i>
+ </button>
+ </div>
+ </md-toolbar>
+
+ <md-dialog-content>
+ <div class="md-dialog-content">
+ <div class="fullWidth center">
+ <div class="row">
+ <div class="col-xs-2 col-sm-2 col-md-1 col-lg-1 deleteIconSize glyphicon glyphicon-warning-sign icon_warning"></div>
+ <div class="msg col-xs-10 col-sm-10 col-md-11 col-lg-11" style="text-align:left;vertical-align: middle;">{{'module.marketplace.serviceDelete.confirmationMesaage' | translate}} "{{ vm.serviceDetails.name }}"?</div>
+ </div>
+ </div>
+ </md-dialog-content>
+
+ <md-dialog-actions layout="row" class="row deleteAction">
+
+ <button ng-click="vm.answer('Deleted')" class="btn btnDefault btnSpacing deleteBtn">
+ {{'common.actions.yes' | translate}}
+ </button>
+ <button ng-click="vm.cancel()" class="btn btnDefault deleteBtn">
+ {{'common.actions.no' | translate}}
+ </button>
+ </md-dialog-actions>
+ </form>
+</md-dialog> \ No newline at end of file
diff --git a/vnfmarket/app/modules/home/serviceDelete/serviceDeleteCtrl.js b/vnfmarket/app/modules/home/serviceDelete/serviceDeleteCtrl.js
new file mode 100644
index 00000000..5eafe9e8
--- /dev/null
+++ b/vnfmarket/app/modules/home/serviceDelete/serviceDeleteCtrl.js
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+(function() {
+ 'use strict';
+
+ /**
+ * @ngdoc function
+ * @name app.controller:HomeCtrl
+ * @description
+ * # HomeCtrl
+ * Controller of the app
+ */
+
+ angular
+ .module('vnfmarket')
+ .controller('serviceDeleteCtrl', ServiceDelete);
+
+ ServiceDelete.$inject = ['serviceDeleteService', '$mdDialog', '$mdToast', 'serviceDetails'];
+
+ /*
+ * recommend
+ * Using function declarations
+ * and bindable members up top.
+ */
+
+ function ServiceDelete(serviceDeleteService, $mdDialog, $mdToast, serviceDetails) {
+ var vm = this;
+ vm.serviceDetails = serviceDetails;
+
+ vm.hide = function() {
+ $mdDialog.hide();
+ };
+
+ vm.cancel = function() {
+ $mdDialog.cancel();
+ };
+
+ vm.answer = function(answer) {
+ serviceDeleteService.serviceDelete(vm.serviceDetails.csarId)
+ .then(function(response) {
+ $mdDialog.hide(response);
+ $mdToast.show(
+ $mdToast.simple()
+ .textContent('Service deleted successfully')
+ .position("bottom right")
+ .action('Ok')
+ .theme('success-toast')
+ );
+ });
+ };
+ }
+})(); \ No newline at end of file
diff --git a/vnfmarket/app/modules/home/serviceDelete/serviceDeleteService.js b/vnfmarket/app/modules/home/serviceDelete/serviceDeleteService.js
new file mode 100644
index 00000000..9664b97f
--- /dev/null
+++ b/vnfmarket/app/modules/home/serviceDelete/serviceDeleteService.js
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2017 Huawei Technologies Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+(function() {
+ 'use strict';
+
+ /**
+ * @ngdoc function
+ * @name app.service:homeService
+ * @description
+ * # homeService
+ * Service of the app
+ */
+
+ angular.module('vnfmarket')
+ .factory('serviceDeleteService', serviceDelete);
+
+ serviceDelete.$inject = ['$q', 'vnfConfig', 'httpService'];
+
+ function serviceDelete($q, vnfConfig, httpService) {
+ return {
+ serviceDelete: serviceDelete
+ };
+
+ function serviceDelete(csarId) {
+ var url = vnfConfig.common.baseUrl + vnfConfig.api.home.serviceDelete.url,
+ method = vnfConfig.api.home.serviceDelete.method;
+ url = url.replace(":csarId", csarId)
+ var defer = $q.defer()
+ httpService.apiRequest(url, method)
+ .then(function(response) {
+ defer.resolve(response);
+ }, function(error) {
+ defer.reject(error);
+ });
+ return defer.promise;
+ }
+ }
+
+})(); \ No newline at end of file