2 ============LICENSE_START==========================================
3 ===================================================================
4 Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
5 ===================================================================
6 Copyright (C) 2018 IBM.
7 ===================================================================
8 Unless otherwise specified, all software contained herein is licensed
9 under the Apache License, Version 2.0 (the License);
10 you may not use this software except in compliance with the License.
11 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
15 Unless required by applicable law or agreed to in writing, software
16 distributed under the License is distributed on an "AS IS" BASIS,
17 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 See the License for the specific language governing permissions and
19 limitations under the License.
21 ============LICENSE_END============================================
24 import { Component, OnInit, OnDestroy } from '@angular/core';
25 import { ActivatedRoute, Router } from '@angular/router';
26 import { HttpUtilService } from '../../shared/services/httpUtil/http-util.service';
27 import { Subscription } from 'rxjs/Subscription';
28 import { MappingEditorService } from '../../shared/services/mapping-editor.service';
29 import { ParamShareService } from '../../shared/services/paramShare.service';
30 import { environment } from '../../../environments/environment';
31 import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
32 import { NgProgress } from 'ngx-progressbar';
33 import { NotificationsService } from 'angular2-notifications';
34 import { appConstants } from '../../../constants/app-constants'
36 @Component({ selector: 'app-myvnfs', templateUrl: './myvnfs.component.html', styleUrls: ['./myvnfs.component.css'] })
37 export class MyvnfsComponent implements OnInit, OnDestroy {
38 vnfData: Array<Object> = [];
46 vnfcRequired: boolean = false;
51 showProgressBar: true,
56 subscription: Subscription;
58 constructor(private paramShareService: ParamShareService, private ngProgress: NgProgress, private httpUtil: HttpUtilService, private router: Router, private activeROute: ActivatedRoute,
59 private mappingEditorService: MappingEditorService, private modalService: NgbModal, private nService: NotificationsService) {
64 sessionStorage.setItem('updateParams', undefined);
65 this.mappingEditorService.latestAction = undefined;
66 const apiToken = localStorage['apiToken'];
71 'request-id': apiToken,
72 'action': 'getDesigns',
73 'payload': '{"userID": "","filter":"reference"}'
77 const x = JSON.parse(data.input['design-request']['payload']);
78 x.userID = localStorage['userId'];
79 data.input['design-request']['payload'] = JSON.stringify(x);
80 // console.log("input to payload====", JSON.stringify(data));
81 this.getArtifacts(data);
86 if (this.subscription) { this.subscription.unsubscribe() };
91 this.ngProgress.start();
92 //this.subscription = this.httpUtil.post({
94 url: environment.getDesigns,
98 if (resp.output.data.block !== undefined && resp.output.data.block !== null && resp.output.data.block.length !== 0) {
99 console.log("getArtifacts: resp:", resp.output.data.block);
100 tempObj = JSON.parse(resp.output.data.block);
101 this.vnfData = tempObj.designInfo;
103 if (this.vnfData == undefined || this.vnfData == null || this.vnfData.length == 0) {
105 // this.noDataMsg = resp.output.data.status.message;
109 console.log("getArtifacts: noData:"+this.noData);
110 this.ngProgress.done();
113 this.nService.error(appConstants.errors.error, appConstants.errors.connectionError)
116 this.filter = ['vnf-type', 'vnfc-type', 'artifact-name'];
118 this.ngProgress.done();
127 buildNewDesign( response) {
128 // this.modalService.open(content).result.then(res => {
129 // this.mappingEditorService.referenceNameObjects = undefined;
130 // sessionStorage.setItem('vnfParams', JSON.stringify({ vnfType: this.vnfType, vnfcType: this.vnfcType }));
131 // this.router.navigate([
132 // 'vnfs', 'design', 'references'
135 if (response == 'yes') {
136 sessionStorage.setItem('vnfParams', JSON.stringify({ vnfType: this.vnfType }));
137 sessionStorage.setItem("vnfcSelectionFlag", '' + this.vnfcRequired + '')
139 sessionStorage.setItem('vnfParams', "")
142 this.mappingEditorService.referenceNameObjects = undefined;
143 this.mappingEditorService.identifier = '';
144 //this.mappingEditorService.newObject = {};
145 this.router.navigate([
146 'vnfs', 'design', 'references'
150 validateVnfName(name) {
151 if (!name.trim() || name.length < 1) {
152 this.errorMessage = '';
154 } else if (name.startsWith(' ') || name.endsWith(' ')) {
155 this.errorMessage = 'Leading and trailing spaces are not allowed';
157 } else if (name.includes(' ')) {
158 this.errorMessage = 'More than one space is not allowed in VNF Type';
160 } else if (name.length > 150) {
161 this.errorMessage = 'VNF Type should be of minimum one character and maximum 150 character';
164 this.invalid = false;
165 this.errorMessage = '';
169 navigateToReference(item) {
170 sessionStorage.setItem('updateParams', JSON.stringify(item));
171 this.mappingEditorService.referenceNameObjects = undefined;
172 sessionStorage.setItem('vnfParams', JSON.stringify({ vnfType: item.vnfType, vnfcType: item.vnfcType }));
173 this.mappingEditorService.identifier = '';
174 if (this.mappingEditorService.newObject && this.mappingEditorService.newObject.vnfc != undefined) {
175 this.mappingEditorService.newObject.vnfc = '';
179 .navigate(['../design/references'], {
180 relativeTo: this.activeROute,
187 navigateToRefrenceUpdate() {
191 .navigate(['../design/references/update'], {
192 relativeTo: this.activeROute,
200 // get the value and save the userid and persist it.
201 sessionStorage.setItem("vnfcSelectionFlag", '' + this.vnfcRequired + '');
202 this.mappingEditorService.setTemplateMappingDataFromStore(undefined);
203 localStorage['paramsContent'] = '{}';
204 this.mappingEditorService.setParamContent(undefined);
205 this.paramShareService.setSessionParamData(undefined);
206 const appData = { reference: {}, template: { templateData: {}, nameValueData: {} }, pd: {} };
207 const downloadData = {
209 template: { templateData: {}, nameValueData: {}, templateFileName: '', nameValueFileName: '' },
210 pd: { pdData: '', pdFileName: '' }
212 this.mappingEditorService.changeNavAppData(appData);
213 this.mappingEditorService.changeNavDownloadData(downloadData);