diff options
Diffstat (limited to 'catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts')
-rw-r--r-- | catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts index 1dc02a5e4f..2c1497ee2f 100644 --- a/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts +++ b/catalog-ui/src/app/ng2/pages/composition/interface-operatons/interface-operations.component.ts @@ -25,11 +25,12 @@ import { } from '../../../services/component-services/topology-template.service'; import {TranslateService} from "../../../shared/translator/translate.service"; import {ModalService} from 'app/ng2/services/modal.service'; +import {CompositionService} from "app/ng2/pages/composition/composition.service"; import {ModalComponent} from 'app/ng2/components/ui/modal/modal.component'; import {Component as TopologyTemplate} from "../../../../models/components/component"; import {PluginsService} from "app/ng2/services/plugins.service"; import {SelectedComponentType} from "../common/store/graph.actions"; - +import {InstanceFeDetails} from "../../../../models/instance-fe-details"; import {WorkspaceService} from "../../workspace/workspace.service"; import { ComponentInterfaceDefinitionModel, @@ -139,6 +140,8 @@ export class InterfaceOperationsComponent { deploymentArtifactsFilePath: Array<DropdownValue> = []; toscaArtifactTypes: Array<DropdownValue> = []; + componentInstanceMap: Map<string, InstanceFeDetails> = new Map<string, InstanceFeDetails>(); + validImplementationProps: boolean = true; @Input() component: ComponentInstance; @Input() isViewOnly: boolean; @@ -153,6 +156,7 @@ export class InterfaceOperationsComponent { private topologyTemplateService: TopologyTemplateService, private toscaArtifactService: ToscaArtifactService, private modalServiceNg2: ModalService, + private compositionService: CompositionService, private workspaceService: WorkspaceService, @Inject("Notification") private Notification: any, ) { @@ -222,9 +226,10 @@ export class InterfaceOperationsComponent { let enableAddArtifactImplementation = this.modalInstance.instance.dynamicContent.instance.enableAddArtifactImplementation; if(enableAddArtifactImplementation) { - let toscaArtifactTypeSelected = this.modalInstance.instance.dynamicContent.instance.toscaArtifactTypeSelected; - let isToscaArtifactType:boolean = !(typeof toscaArtifactTypeSelected == 'undefined' || _.isEmpty(toscaArtifactTypeSelected)); - disable = !isToscaArtifactType; + const validImplementationProps = this.modalInstance.instance.dynamicContent.instance.validImplementationProps; + const toscaArtifactTypeSelected = this.modalInstance.instance.dynamicContent.instance.toscaArtifactTypeSelected; + const isToscaArtifactType:boolean = !(typeof toscaArtifactTypeSelected == 'undefined' || _.isEmpty(toscaArtifactTypeSelected)); + disable = !isToscaArtifactType || !validImplementationProps; return disable; } disable = false; @@ -247,16 +252,27 @@ export class InterfaceOperationsComponent { const modalModel: ModalModel = new ModalModel('l', this.modalTranslation.EDIT_TITLE, '', buttonList, 'custom'); this.modalInstance = this.modalServiceNg2.createCustomModal(modalModel); + const componentInstances = this.compositionService.getComponentInstances() + if (componentInstances) { + componentInstances.forEach(value => { + this.componentInstanceMap.set(value.uniqueId, <InstanceFeDetails>{ + name: value.name + }); + }); + } + this.modalServiceNg2.addDynamicContentToModal( this.modalInstance, InterfaceOperationHandlerComponent, { deploymentArtifactsFilePath: this.deploymentArtifactsFilePath, + componentInstanceMap: this.componentInstanceMap, toscaArtifactTypes: this.toscaArtifactTypes, selectedInterface: interfaceModel ? interfaceModel : new UIInterfaceModel(), selectedInterfaceOperation: operation ? operation : new InterfaceOperationModel(), validityChangedCallback: this.disableSaveButton, isViewOnly: this.isViewOnly, + validImplementationProps: this.validImplementationProps, isEdit: true, modelName: this.componentMetaData.model } |