1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
import {Capability, CapabilityUI} from "../../../../../models/capability";
import { ViewChild, Input, OnInit, Component } from "@angular/core";
import {SdcUiServices} from "onap-ui-angular";
import {CapabilitiesEditorComponent} from "./capabilityEditor/capabilities-editor.component";
import {WorkspaceService} from "../../workspace.service";
import {TopologyTemplateService} from "../../../../services/component-services/topology-template.service";
import {ReqAndCapabilitiesService} from "../req-and-capabilities.service";
import {ModalComponent} from "onap-ui-angular/dist/modals/modal.component";
import {EventListenerService} from "../../../../../services/event-listener-service";
@Component({
selector: 'capabilities',
templateUrl: './capabilities.component.html',
styleUrls: ['./capabilities.component.less','../../../../../../assets/styles/table-style.less']
})
export class CapabilitiesComponent {
@Input() public capabilities: Array<Capability>;
@ViewChild('capabilitiesTable') capabilitiesTable: any;
private customModalInstance: ModalComponent;
constructor(
private workspaceService: WorkspaceService,
private loaderService: SdcUiServices.LoaderService,
private topologyTemplateService: TopologyTemplateService,
private reqAndCapabilitiesService : ReqAndCapabilitiesService,
private modalService: SdcUiServices.ModalService,
private eventListenerService: EventListenerService) {
}
private onSelectCapabilities({ selected }) {
}
editCapability(cap: CapabilityUI) {
let modalConfig = {
size: 'md',
title: 'Update Capability',
type: 'custom',
buttons: [
{
id: 'saveButton',
text: ('Update'),
size: "'x-small'",
callback: () => this.updateCapability(),
closeModal: true
},
{text: "Cancel", size: "'x-small'", closeModal: true}]
};
let modalInputs = {
capability: cap,
capabilityTypesList: this.reqAndCapabilitiesService.getCapabilityTypesList(),
};
this.customModalInstance = this.modalService.openCustomModal(modalConfig, CapabilitiesEditorComponent, {input: modalInputs});
this.customModalInstance.innerModalContent.instance.
onValidationChange.subscribe((isValid) => this.customModalInstance.getButtonById('saveButton').disabled = !isValid);
}
expendRow(row) {
this.capabilitiesTable.rowDetail.toggleExpandRow(row);
}
private updateCapability() {
const capability = this.customModalInstance.innerModalContent.instance.capabilityData;
this.loaderService.activate();
if (capability.uniqueId) {
this.topologyTemplateService.updateCapability(this.workspaceService.metadata.getTypeUrl(), this.workspaceService.metadata.uniqueId, capability).subscribe((result) => {
let index = this.capabilities.findIndex((cap) => result[0].uniqueId === cap.uniqueId);
this.capabilities[index] = new CapabilityUI(result[0], this.workspaceService.metadata.uniqueId);
this.loaderService.deactivate();
this.eventListenerService.notifyObservers('CAPABILITIES_UPDATED');
}, () => {
this.loaderService.deactivate();
});
}
}
}
|