1 import {Capability, CapabilityUI} from "../../../../../models/capability";
2 import { ViewChild, Input, OnInit, Component } from "@angular/core";
3 import {SdcUiServices} from "onap-ui-angular";
4 import {CapabilitiesEditorComponent} from "./capabilityEditor/capabilities-editor.component";
5 import {WorkspaceService} from "../../workspace.service";
6 import {TopologyTemplateService} from "../../../../services/component-services/topology-template.service";
7 import {ReqAndCapabilitiesService} from "../req-and-capabilities.service";
8 import {ModalComponent} from "onap-ui-angular/dist/modals/modal.component";
9 import {EventListenerService} from "../../../../../services/event-listener-service";
13 selector: 'capabilities',
14 templateUrl: './capabilities.component.html',
15 styleUrls: ['./capabilities.component.less','../../../../../../assets/styles/table-style.less']
17 export class CapabilitiesComponent {
18 @Input() public capabilities: Array<Capability>;
19 @ViewChild('capabilitiesTable') capabilitiesTable: any;
20 private customModalInstance: ModalComponent;
23 private workspaceService: WorkspaceService,
24 private loaderService: SdcUiServices.LoaderService,
25 private topologyTemplateService: TopologyTemplateService,
26 private reqAndCapabilitiesService : ReqAndCapabilitiesService,
27 private modalService: SdcUiServices.ModalService,
28 private eventListenerService: EventListenerService) {
31 private onSelectCapabilities({ selected }) {
34 editCapability(cap: CapabilityUI) {
37 title: 'Update Capability',
44 callback: () => this.updateCapability(),
47 {text: "Cancel", size: "'x-small'", closeModal: true}]
51 capabilityTypesList: this.reqAndCapabilitiesService.getCapabilityTypesList(),
54 this.customModalInstance = this.modalService.openCustomModal(modalConfig, CapabilitiesEditorComponent, {input: modalInputs});
55 this.customModalInstance.innerModalContent.instance.
56 onValidationChange.subscribe((isValid) => this.customModalInstance.getButtonById('saveButton').disabled = !isValid);
60 this.capabilitiesTable.rowDetail.toggleExpandRow(row);
63 private updateCapability() {
64 const capability = this.customModalInstance.innerModalContent.instance.capabilityData;
65 this.loaderService.activate();
66 if (capability.uniqueId) {
67 this.topologyTemplateService.updateCapability(this.workspaceService.metadata.getTypeUrl(), this.workspaceService.metadata.uniqueId, capability).subscribe((result) => {
68 let index = this.capabilities.findIndex((cap) => result[0].uniqueId === cap.uniqueId);
69 this.capabilities[index] = new CapabilityUI(result[0], this.workspaceService.metadata.uniqueId);
70 this.loaderService.deactivate();
71 this.eventListenerService.notifyObservers('CAPABILITIES_UPDATED');
73 this.loaderService.deactivate();