diff options
author | andre.schmid <andre.schmid@est.tech> | 2021-05-05 15:31:04 +0100 |
---|---|---|
committer | Christophe Closset <christophe.closset@intl.att.com> | 2021-05-15 06:21:13 +0000 |
commit | 2152a9a43767cdd486fd8c93894f66a05083f53c (patch) | |
tree | cbb64fc5680ba724bc317e27f6a20802d5b38502 /catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts | |
parent | e3de4c9d214983d38a7d66e89dae5d4bba170ca3 (diff) |
Support for selection of capabilities
Change-Id: Ib1a3e3e1a59fc84c62620932c408e231acf77024
Issue-ID: SDC-3580
Signed-off-by: André Schmid <andre.schmid@est.tech>
Diffstat (limited to 'catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts')
-rw-r--r-- | catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts b/catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts index 7c91cbc4b8..7bb88c7f59 100644 --- a/catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts +++ b/catalog-ui/src/app/ng2/pages/composition/panel/panel-tabs/req-capabilities-tab/req-capabilities-tab.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input, OnDestroy } from '@angular/core'; -import { Component as TopologyTemplate, Capability, Requirement, CapabilitiesGroup, RequirementsGroup, ComponentInstance, FullComponentInstance } from "app/models"; +import { Component as TopologyTemplate, Capability, Requirement, CapabilitiesGroup, RequirementsGroup, FullComponentInstance } from "app/models"; import { Store } from "@ngxs/store"; import { GRAPH_EVENTS } from "app/utils"; import { ComponentGenericResponse } from "app/ng2/services/responses/component-generic-response"; @@ -8,6 +8,7 @@ import { EventListenerService } from "app/services"; import { WorkspaceService } from "app/ng2/pages/workspace/workspace.service"; import { CompositionService } from "app/ng2/pages/composition/composition.service"; import {SelectedComponentType, TogglePanelLoadingAction} from "../../../common/store/graph.actions"; +import {ComponentInstanceServiceNg2} from "../../../../../services/component-instance-services/component-instance.service"; export class InstanceCapabilitiesMap { @@ -42,7 +43,8 @@ export class ReqAndCapabilitiesTabComponent implements OnInit, OnDestroy { private topologyTemplateService:TopologyTemplateService, private workspaceService: WorkspaceService, private compositionService: CompositionService, - private eventListenerService:EventListenerService) { } + private eventListenerService:EventListenerService, + private componentInstanceService: ComponentInstanceServiceNg2) { } ngOnInit(): void { @@ -112,13 +114,19 @@ export class ReqAndCapabilitiesTabComponent implements OnInit, OnDestroy { private initInstancesMap = ():void => { this.capabilitiesInstancesMap = new InstanceCapabilitiesMap(); - _.forEach(this.capabilities, (capability:Capability) => { - if (this.capabilitiesInstancesMap[capability.ownerName]) { - this.capabilitiesInstancesMap[capability.ownerName] = this.capabilitiesInstancesMap[capability.ownerName].concat(capability); - } else { - this.capabilitiesInstancesMap[capability.ownerName] = new Array<Capability>(capability); + let capabilityList: Array<Capability> = this.capabilities; + if (capabilityList) { + if (!this.isComponentInstanceSelected) { + capabilityList = capabilityList.filter(value => value.external); } - }); + capabilityList.forEach(capability => { + if (this.capabilitiesInstancesMap[capability.ownerName]) { + this.capabilitiesInstancesMap[capability.ownerName] = this.capabilitiesInstancesMap[capability.ownerName].concat(capability); + } else { + this.capabilitiesInstancesMap[capability.ownerName] = new Array<Capability>(capability); + } + }); + } this.requirementsInstancesMap = new InstanceRequirementsMap(); _.forEach(this.requirements, (requirement:Requirement) => { @@ -161,7 +169,21 @@ export class ReqAndCapabilitiesTabComponent implements OnInit, OnDestroy { } - - + onMarkCapabilityAsExternal(capability: Capability) { + this.store.dispatch(new TogglePanelLoadingAction({isLoading: true})); + capability.external = !capability.external; + const componentId = this.workspaceService.metadata.uniqueId; + const componentInstanceId = this.component.uniqueId; + this.componentInstanceService + .updateInstanceCapability(this.workspaceService.metadata.getTypeUrl(), componentId, componentInstanceId, capability) + .subscribe(() => { + this.eventListenerService.notifyObservers(GRAPH_EVENTS.ON_COMPONENT_INSTANCE_CAPABILITY_EXTERNAL_CHANGED, componentInstanceId, capability); + this.store.dispatch(new TogglePanelLoadingAction({isLoading: false})); + } , (error) => { + console.error("An error has occurred while setting capability '" + capability.name + "' external", error); + capability.external = !capability.external; + this.store.dispatch(new TogglePanelLoadingAction({isLoading: false})); + }); + } } |