From 3f816f6fdeb32061c77ab9799e18f2cb41ce8ea7 Mon Sep 17 00:00:00 2001 From: aribeiro Date: Wed, 28 Oct 2020 14:55:59 +0000 Subject: Set directives and node_filters in any node type Allows to set directives and node_filters in any node type. Issue-ID: SDC-3404 Signed-off-by: aribeiro Change-Id: Ib75821e27bf949f841c990b1353f156eda2ae8f0 --- .../service-dependencies.component.ts | 44 +++++++++++++--------- ...abilities-filter-properties-editor.component.ts | 8 ++-- .../composition-panel.component.spec.ts.snap | 1 - .../panel/composition-panel.component.ts | 6 +-- catalog-ui/src/assets/languages/en_US.json | 2 + 5 files changed, 34 insertions(+), 27 deletions(-) (limited to 'catalog-ui') diff --git a/catalog-ui/src/app/ng2/components/logic/service-dependencies/service-dependencies.component.ts b/catalog-ui/src/app/ng2/components/logic/service-dependencies/service-dependencies.component.ts index ff3779119d..f9f9286fe5 100644 --- a/catalog-ui/src/app/ng2/components/logic/service-dependencies/service-dependencies.component.ts +++ b/catalog-ui/src/app/ng2/components/logic/service-dependencies/service-dependencies.component.ts @@ -97,6 +97,8 @@ class I18nTexts { static deleteNodeFilterMsg: string; static validateCapabilitiesTxt: string static validateCapabilitiesMsg: string + static validateNodePropertiesTxt: string + static validateNodePropertiesMsg: string public static translateTexts(translateService) { I18nTexts.removeDirectiveModalTitle = translateService.translate('DIRECTIVES_AND_NODE_FILTER_REMOVE_TITLE'); @@ -114,6 +116,8 @@ class I18nTexts { I18nTexts.deleteNodeFilterMsg = translateService.translate('DIRECTIVES_AND_NODE_FILTER_DELETE_NODE_FILTER_MSG'); I18nTexts.validateCapabilitiesTxt = translateService.translate('VALIDATE_CAPABILITIES_TXT'); I18nTexts.validateCapabilitiesMsg = translateService.translate('VALIDATE_CAPABILITIES_MSG'); + I18nTexts.validateNodePropertiesTxt = translateService.translate('VALIDATE_NODE_PROPERTIES_TXT'); + I18nTexts.validateNodePropertiesMsg = translateService.translate('VALIDATE_NODE_PROPERTIES_MSG'); } } @@ -281,23 +285,27 @@ export class ServiceDependenciesComponent { } onAddNodeFilter = () => { - const cancelButton: ButtonModel = new ButtonModel(I18nTexts.modalCancel, 'outline white', this.modalServiceNg2.closeCurrentModal); - const saveButton: ButtonModel = new ButtonModel(I18nTexts.modalCreate, 'blue', () => this.createNodeFilter(this.properties), this.getDisabled); - const modalModel: ModalModel = new ModalModel('l', I18nTexts.addNodeFilterTxt, '', [saveButton, cancelButton], 'standard'); - this.modalInstance = this.modalServiceNg2.createCustomModal(modalModel); - this.modalServiceNg2.addDynamicContentToModal( - this.modalInstance, - ServiceDependenciesEditorComponent, - { - currentServiceName: this.currentServiceInstance.name, - operatorTypes: this.operatorTypes, - compositeServiceName: this.compositeService.name, - parentServiceInputs: this.parentServiceInputs, - selectedInstanceProperties: this.selectedInstanceProperties, - selectedInstanceSiblings: this.selectedInstanceSiblings - } - ); - this.modalInstance.instance.open(); + if (!this.selectedInstanceProperties) { + this.modalServiceNg2.openAlertModal(I18nTexts.validateNodePropertiesTxt, I18nTexts.validateNodePropertiesMsg); + } else { + const cancelButton: ButtonModel = new ButtonModel(I18nTexts.modalCancel, 'outline white', this.modalServiceNg2.closeCurrentModal); + const saveButton: ButtonModel = new ButtonModel(I18nTexts.modalCreate, 'blue', () => this.createNodeFilter(this.properties), this.getDisabled); + const modalModel: ModalModel = new ModalModel('l', I18nTexts.addNodeFilterTxt, '', [saveButton, cancelButton], 'standard'); + this.modalInstance = this.modalServiceNg2.createCustomModal(modalModel); + this.modalServiceNg2.addDynamicContentToModal( + this.modalInstance, + ServiceDependenciesEditorComponent, + { + currentServiceName: this.currentServiceInstance.name, + operatorTypes: this.operatorTypes, + compositeServiceName: this.compositeService.name, + parentServiceInputs: this.parentServiceInputs, + selectedInstanceProperties: this.selectedInstanceProperties, + selectedInstanceSiblings: this.selectedInstanceSiblings + } + ); + this.modalInstance.instance.open(); + } } onAddNodeFilterCapabilities = () => { @@ -406,7 +414,7 @@ export class ServiceDependenciesComponent { } getDisabled = (): boolean => { - return false; + return !this.modalInstance.instance.dynamicContent.instance.checkFormValidForSubmit(); } updateNodeFilter = (constraintType: string, index: number) => { diff --git a/catalog-ui/src/app/ng2/pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.component.ts b/catalog-ui/src/app/ng2/pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.component.ts index 1205556ee0..2cd4f4d1c7 100644 --- a/catalog-ui/src/app/ng2/pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.component.ts +++ b/catalog-ui/src/app/ng2/pages/composition/capabilities-filter-properties-editor/capabilities-filter-properties-editor.component.ts @@ -135,9 +135,11 @@ export class CapabilitiesFilterPropertiesEditorComponent { if (!this.currentRule.sourceName && this.currentRule.sourceType === this.SOURCE_TYPES.STATIC.value) { this.currentRule.sourceName = this.SOURCE_TYPES.STATIC.value; } - this.selectedCapabilitiesPropertyObject = Array.from(this.input.componentInstanceCapabilitiesMap - .get(this.currentRule.capabilityName)) - .find(property => property.name == this.currentRule.servicePropertyName); + if (!this.input.componentInstanceCapabilitiesMap){ + this.selectedCapabilitiesPropertyObject = Array.from(this.input.componentInstanceCapabilitiesMap + .get(this.currentRule.capabilityName)) + .find(property => property.name == this.currentRule.servicePropertyName); + } this.updateOperatorTypesList(); this.updateSourceTypesRelatedValues(); } diff --git a/catalog-ui/src/app/ng2/pages/composition/panel/__snapshots__/composition-panel.component.spec.ts.snap b/catalog-ui/src/app/ng2/pages/composition/panel/__snapshots__/composition-panel.component.spec.ts.snap index 2c96e92c7e..beae93e7bd 100644 --- a/catalog-ui/src/app/ng2/pages/composition/panel/__snapshots__/composition-panel.component.spec.ts.snap +++ b/catalog-ui/src/app/ng2/pages/composition/panel/__snapshots__/composition-panel.component.spec.ts.snap @@ -11,7 +11,6 @@ exports[`composition-panel component should match current snapshot of compositio isVF={[Function Function]} selectedComponentIsServiceProxyInstance={[Function Function]} selectedComponentIsServiceSubstitutionInstance={[Function Function]} - selectedComponentIsVfcInstance={[Function Function]} setActive={[Function Function]} store={[Function Store]} toggleSidebarDisplay={[Function Function]} 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 4feaac8272..2fce002844 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 @@ -151,7 +151,7 @@ export class CompositionPanelComponent { if (component.isService() && (this.selectedComponentIsServiceProxyInstance() || this.selectedComponentIsServiceSubstitutionInstance())) { this.tabs.push(tabs.consumption); this.tabs.push(tabs.dependencies); - } else if (component.isResource() && this.selectedComponentIsVfcInstance()) { + } else if (component.isResource() && this.isComponentInstanceSelected()) { this.tabs.push(tabs.dependencies); } @@ -185,8 +185,4 @@ export class CompositionPanelComponent { private selectedComponentIsServiceSubstitutionInstance = (): boolean => { return this.isComponentInstanceSelected() && this.selectedComponent.isServiceSubstitution(); } - - private selectedComponentIsVfcInstance = (): boolean => { - return this.isComponentInstanceSelected() && this.selectedComponent.isVFC(); - } } diff --git a/catalog-ui/src/assets/languages/en_US.json b/catalog-ui/src/assets/languages/en_US.json index 2417b0d4ae..cad8fc78df 100644 --- a/catalog-ui/src/assets/languages/en_US.json +++ b/catalog-ui/src/assets/languages/en_US.json @@ -511,6 +511,8 @@ "DIRECTIVES_AND_NODE_FILTER_UPDATE_TEXT": "Changing \"Directive Option\" will remove directives value and erase all the node filter. Are you sure you want to update directives?", "VALIDATE_CAPABILITIES_TXT": "Node Filter for Capabilities Properties", "VALIDATE_CAPABILITIES_MSG": "The selected Component Instance does not have any capability property", + "VALIDATE_NODE_PROPERTIES_TXT": "Node Filter for Properties", + "VALIDATE_NODE_PROPERTIES_MSG": "The selected Component Instance does not have any property", "============= SUBSTITUTION FILTER MANAGE TAB ======" : "", "ADD_SUBSTITUTION_FILTER": "Add Substitution Filter", -- cgit 1.2.3-korg