diff options
author | seshukm <seshu.kumar.m@huawei.com> | 2017-03-06 10:22:11 +0530 |
---|---|---|
committer | seshukm <seshu.kumar.m@huawei.com> | 2017-03-06 10:22:11 +0530 |
commit | 194d6e19da729265130123b6638e0f57589c9367 (patch) | |
tree | e691276ec48cf36ce1c01d09aea59553296f3170 /vnfmarket/app/modules/home/serviceDelete | |
parent | ae3ed32af0fb30e2f4caa3a24cd6f278f4be9796 (diff) |
Code for the VNF Market place
Issue-Id : CLIENT-4
Change-Id: I138f9ee72853ab12e0dd5197cc72db169b6f65ef
Signed-off-by: seshukm <seshu.kumar.m@huawei.com>
Diffstat (limited to 'vnfmarket/app/modules/home/serviceDelete')
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 |