From 5c1f5756bcb5856e2d8b35e3c6ac206f891f8695 Mon Sep 17 00:00:00 2001 From: aribeiro Date: Thu, 19 Nov 2020 13:28:43 +0000 Subject: Add support for updating interface operations Allows to update interface operations on a component instance. Issue-ID: SDC-3446 Signed-off-by: aribeiro Signed-off-by: andre.schmid Change-Id: I6a2c44997c04d9d9ea298e3d0bc971da7b137799 --- .../composition/panel/composition-panel.component.spec.ts | 15 +++++++++++---- .../composition/panel/composition-panel.component.ts | 12 +++++++++++- .../pages/composition/panel/composition-panel.module.ts | 10 ++++++---- 3 files changed, 28 insertions(+), 9 deletions(-) (limited to 'catalog-ui/src/app/ng2/pages/composition/panel') diff --git a/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.spec.ts b/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.spec.ts index 1761bfdd03..6d96764b1c 100644 --- a/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.spec.ts +++ b/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.spec.ts @@ -8,7 +8,7 @@ import { Service } from '../../../../models/components/service'; import { Resource } from '../../../../models/components/resource'; import { GroupInstance } from '../../../../models/graph/zones/group-instance'; import { PolicyInstance } from '../../../../models/graph/zones/policy-instance'; -import { ArtifactGroupType, ResourceType } from '../../../../utils/constants'; +import { ArtifactGroupType } from '../../../../utils/constants'; import { WorkspaceState } from '../../../store/states/workspace.state'; import { CompositionPanelComponent } from './composition-panel.component'; import { ArtifactsTabComponent } from './panel-tabs/artifacts-tab/artifacts-tab.component'; @@ -19,6 +19,7 @@ import { PolicyTargetsTabComponent } from './panel-tabs/policy-targets-tab/polic import { PropertiesTabComponent } from './panel-tabs/properties-tab/properties-tab.component'; import { ReqAndCapabilitiesTabComponent } from './panel-tabs/req-capabilities-tab/req-capabilities-tab.component'; import {SubstitutionFilterTabComponent} from "./panel-tabs/substitution-filter-tab/substitution-filter-tab.component"; +import {InterfaceOperationsComponent} from "../interface-operatons/interface-operations.component"; describe('composition-panel component', () => { @@ -61,7 +62,13 @@ describe('composition-panel component', () => { }, inputs: {titleIcon: 'inputs-o', component: PropertiesTabComponent, input: {title: 'Inputs'}, isActive: false, tooltipText: 'Inputs'}, settings: {titleIcon: 'settings-o', component: PropertiesTabComponent, input: {}, isActive: false, tooltipText: 'Settings'}, - + interfaceOperations: { + titleIcon: 'composition-o', + component: InterfaceOperationsComponent, + input: {title: 'Interface Operations'}, + isActive: false, + tooltipText: 'Interface Operations' + } }; beforeEach( @@ -157,17 +164,17 @@ describe('composition-panel component', () => { fixture.componentInstance.store.select = jest.fn(() => Observable.of(selectedComponent)); fixture.componentInstance.selectedComponentIsServiceProxyInstance = jest.fn(() => true); - // const pnfMock = Mock.of({ isResource : () => false }); fixture.componentInstance.topologyTemplate = selectedComponent; // Call ngOnInit fixture.componentInstance.ngOnInit(); // Expect that - expect (fixture.componentInstance.tabs.length).toBe(6); + expect (fixture.componentInstance.tabs.length).toBe(7); expect (fixture.componentInstance.tabs[0]).toEqual(tabs.infoTab); expect (fixture.componentInstance.tabs[1]).toEqual(tabs.properties); expect (fixture.componentInstance.tabs[2]).toEqual(tabs.reqAndCapabilities); + expect (fixture.componentInstance.tabs[6]).toEqual(tabs.interfaceOperations); }); diff --git a/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.ts b/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.ts index 2fce002844..2ef4e7c9a9 100644 --- a/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.ts +++ b/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.component.ts @@ -39,6 +39,7 @@ import { CompositionStateModel, GraphState } from '../common/store/graph.state'; import { ServiceConsumptionTabComponent } from './panel-tabs/service-consumption-tab/service-consumption-tab.component'; import { ServiceDependenciesTabComponent } from './panel-tabs/service-dependencies-tab/service-dependencies-tab.component'; import {SubstitutionFilterTabComponent} from "./panel-tabs/substitution-filter-tab/substitution-filter-tab.component"; +import {InterfaceOperationsComponent} from "../interface-operatons/interface-operations.component"; const tabs = { infoTab : {titleIcon: 'info-circle', component: InfoTabComponent, input: {}, isActive: true, tooltipText: 'Information'}, @@ -55,7 +56,8 @@ const tabs = { settings: {titleIcon: 'settings-o', component: PropertiesTabComponent, input: {}, isActive: false, tooltipText: 'Settings'}, consumption: {titleIcon: 'api-o', component: ServiceConsumptionTabComponent, input: {title: 'OPERATION CONSUMPTION'}, isActive: false, tooltipText: 'Service Consumption'}, dependencies: {titleIcon: 'archive', component: ServiceDependenciesTabComponent, input: {title: 'DIRECTIVES AND NODE FILTER'}, isActive: false, tooltipText: 'Service Dependencies'}, - substitutionFilter: {titleIcon: 'composition-o', component: SubstitutionFilterTabComponent, input: {title: 'SUBSTITUTION FILTER'}, isActive: false, tooltipText: 'Substitution Filter'} + substitutionFilter: {titleIcon: 'composition-o', component: SubstitutionFilterTabComponent, input: {title: 'SUBSTITUTION FILTER'}, isActive: false, tooltipText: 'Substitution Filter'}, + interfaceOperations: {titleIcon: 'composition-o', component: InterfaceOperationsComponent, input: {title: 'Interface Operations'}, isActive: false, tooltipText: 'Interface Operations'} }; @Component({ @@ -86,6 +88,12 @@ export class CompositionPanelComponent { }); } + + onRightClick(selectedComponent: any) { + console.info("onRightClick", selectedComponent) + return false; + } + ngOnDestroy() { if (this.subscription) { this.subscription.unsubscribe(); @@ -151,8 +159,10 @@ export class CompositionPanelComponent { if (component.isService() && (this.selectedComponentIsServiceProxyInstance() || this.selectedComponentIsServiceSubstitutionInstance())) { this.tabs.push(tabs.consumption); this.tabs.push(tabs.dependencies); + this.tabs.push(tabs.interfaceOperations); } else if (component.isResource() && this.isComponentInstanceSelected()) { this.tabs.push(tabs.dependencies); + this.tabs.push(tabs.interfaceOperations); } } diff --git a/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.module.ts b/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.module.ts index a89db21b04..595ee21089 100644 --- a/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.module.ts +++ b/catalog-ui/src/app/ng2/pages/composition/panel/composition-panel.module.ts @@ -49,7 +49,7 @@ import { ServiceDependenciesModule } from "../../../components/logic/service-dep import { ServiceConsumptionModule } from "../../../components/logic/service-consumption/service-consumption.module"; import {SubstitutionFilterTabComponent} from "./panel-tabs/substitution-filter-tab/substitution-filter-tab.component"; import {SubstitutionFilterModule} from "../../../components/logic/substitution-filter/substitution-filter.module"; - +import {InterfaceOperationsComponent} from "../interface-operatons/interface-operations.component"; @NgModule({ @@ -67,7 +67,8 @@ import {SubstitutionFilterModule} from "../../../components/logic/substitution-f ServiceDependenciesTabComponent, SubstitutionFilterTabComponent, RequirementListComponent, - EnvParamsComponent + EnvParamsComponent, + InterfaceOperationsComponent, ], imports: [ GlobalPipesModule, @@ -81,7 +82,7 @@ import {SubstitutionFilterModule} from "../../../components/logic/substitution-f NgxDatatableModule, ServiceDependenciesModule, ServiceConsumptionModule, - SubstitutionFilterModule + SubstitutionFilterModule, // EnvParamsModule ], entryComponents: [ @@ -98,7 +99,8 @@ import {SubstitutionFilterModule} from "../../../components/logic/substitution-f SubstitutionFilterTabComponent, RequirementListComponent, PanelTabComponent, - EnvParamsComponent + EnvParamsComponent, + InterfaceOperationsComponent ], exports: [ CompositionPanelComponent -- cgit 1.2.3-korg