From de805023e2d1c8565efc9a707a82c9fc3903ab38 Mon Sep 17 00:00:00 2001 From: aribeiro Date: Fri, 28 Aug 2020 19:11:59 +0100 Subject: Retrieve node_filter capabilities Issue-ID: SDC-3270 Signed-off-by: aribeiro Change-Id: Ieb1b3c4d31a50e73112fc34cdd8d5fd9ba9e6a30 --- .../service-dependencies.component.ts | 80 ++++++++++++++-------- 1 file changed, 52 insertions(+), 28 deletions(-) (limited to 'catalog-ui/src/app/ng2/components/logic/service-dependencies/service-dependencies.component.ts') 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 55c933c38d..90f82f8983 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 @@ -123,8 +123,12 @@ export class ServiceDependenciesComponent { isDependent: boolean; isLoading: boolean; parentServiceInputs: InputBEModel[] = []; - constraintObjects: ConstraintObject[] = []; + constraintProperties: ConstraintObject[] = []; + constraintCapabilities: ConstraintObject[] = []; operatorTypes: any[]; + capabilities: string = 'capabilities'; + properties: string = 'properties'; + private componentInstancesConstraints: ConstraintObject[] = []; @Input() readonly: boolean; @Input() compositeService: ComponentMetadata; @@ -133,7 +137,8 @@ export class ServiceDependenciesComponent { @Input() selectedInstanceConstraints: ConstraintObject[] = []; @Input() selectedInstanceProperties: PropertyBEModel[] = []; @Input() directiveValues: any = DirectiveValue; - @Output() updateRulesListEvent: EventEmitter = new EventEmitter(); + @Output() updateNodeFilterProperties: EventEmitter = new EventEmitter(); + @Output() updateNodeFilterCapabilities: EventEmitter = new EventEmitter(); @Output() loadRulesListEvent:EventEmitter = new EventEmitter(); @Output() dependencyStatus = new EventEmitter(); @@ -175,6 +180,7 @@ export class ServiceDependenciesComponent { const cancelButton: ButtonModel = new ButtonModel(I18nTexts.modalCancel, 'grey', this.onCloseRemoveDependencyModal); const modalModel: ModalModel = new ModalModel('sm', I18nTexts.removeDirectiveModalTitle, I18nTexts.removeDirectiveModalText, [actionButton, cancelButton]); + this.loadNodeFilter(); return this.modalServiceNg2.createCustomModal(modalModel); } @@ -188,11 +194,12 @@ export class ServiceDependenciesComponent { private loadNodeFilter = (): void => { this.topologyTemplateService.getServiceFilterConstraints(this.compositeService.componentType, this.compositeService.uniqueId).subscribe((response) => { - if (response.nodeFilterforNode) { - const nodeFilterResponse: ConstraintObject[] = response.nodeFilterforNode[this.currentServiceInstance.uniqueId].properties; - if (nodeFilterResponse) { - this.constraintObjects = nodeFilterResponse; - } + if (response.nodeFilterforNode && response.nodeFilterforNode[this.currentServiceInstance.uniqueId]) { + this.componentInstancesConstraints = response.nodeFilterforNode; + const nodeFilterPropertiesResponse: ConstraintObject[] = response.nodeFilterforNode[this.currentServiceInstance.uniqueId].properties; + this.constraintProperties = nodeFilterPropertiesResponse; + const nodeFilterCapabilitiesResponse: ConstraintObject[] = response.nodeFilterforNode[this.currentServiceInstance.uniqueId].capabilities; + this.constraintCapabilities = nodeFilterCapabilitiesResponse; } }); } @@ -201,7 +208,7 @@ export class ServiceDependenciesComponent { this.modalServiceNg2.closeCurrentModal(); this.isLoading = true; const isDepOrig = this.isDependent; - const rulesListOrig = this.constraintObjects; + const rulesListOrig = this.componentInstancesConstraints; this.currentServiceInstance.unmarkAsDependent(this.getActualDirectiveValue()); this.updateComponentInstance(isDepOrig, rulesListOrig); } @@ -214,16 +221,18 @@ export class ServiceDependenciesComponent { onOptionsSelected(event: any) { const newDirectiveValue = event.target.value; if (newDirectiveValue.toLowerCase() !== this.getActualDirectiveValue()) { - const rulesListOrig = this.constraintObjects; + const rulesListOrig = this.componentInstancesConstraints; this.setDirectiveValue(newDirectiveValue); - this.constraintObjects = []; + this.constraintProperties = []; + this.constraintCapabilities = []; this.updateComponentInstance(this.isDependent, rulesListOrig); } } private onRemoveDirective() { this.openRemoveDependencyModal().instance.open(); - this.constraintObjects = []; + this.constraintProperties = []; + this.constraintCapabilities = []; } private setDirectiveValue(newDirectiveValue: string) { @@ -253,15 +262,16 @@ export class ServiceDependenciesComponent { this.isLoading = false; }, (err) => { this.isDependent = isDependentOrigVal; - this.constraintObjects = rulesListOrig; + this.componentInstancesConstraints = rulesListOrig; this.isLoading = false; console.log('An error has occurred.'); }); } - onAddRule() { + onAddNodeFilter = (constraintType: string) => { + console.info("constraintType: ", constraintType); const cancelButton: ButtonModel = new ButtonModel(I18nTexts.modalCancel, 'outline white', this.modalServiceNg2.closeCurrentModal); - const saveButton: ButtonModel = new ButtonModel(I18nTexts.modalCreate, 'blue', this.createRule, this.getDisabled); + const saveButton: ButtonModel = new ButtonModel(I18nTexts.modalCreate, 'blue', () => this.createNodeFilter(constraintType), this.getDisabled); const modalModel: ModalModel = new ModalModel('l', I18nTexts.addNodeFilterTxt, '', [saveButton, cancelButton], 'standard'); this.modalInstance = this.modalServiceNg2.createCustomModal(modalModel); this.modalServiceNg2.addDynamicContentToModal( @@ -279,9 +289,9 @@ export class ServiceDependenciesComponent { this.modalInstance.instance.open(); } - onSelectRule(index: number) { + onSelectNodeFilter(constraintType: string, index: number) { const cancelButton: ButtonModel = new ButtonModel(I18nTexts.modalCancel, 'outline white', this.modalServiceNg2.closeCurrentModal); - const saveButton: ButtonModel = new ButtonModel(I18nTexts.modalSave, 'blue', () => this.updateRules(), this.getDisabled); + const saveButton: ButtonModel = new ButtonModel(I18nTexts.modalSave, 'blue', () => this.updateNodeFilter(constraintType), this.getDisabled); const modalModel: ModalModel = new ModalModel('l', I18nTexts.updateNodeFilterTxt, '', [saveButton, cancelButton], 'standard'); this.modalInstance = this.modalServiceNg2.createCustomModal(modalModel); this.modalServiceNg2.addDynamicContentToModal( @@ -289,7 +299,8 @@ export class ServiceDependenciesComponent { ServiceDependenciesEditorComponent, { serviceRuleIndex: index, - serviceRules: _.map(this.constraintObjects, (rule) => new ConstraintObjectUI(rule)), + serviceRules: _.map(this.properties == constraintType ? this.constraintProperties : + this.constraintCapabilities, (rule) => new ConstraintObjectUI(rule)), currentServiceName: this.currentServiceInstance.name, operatorTypes: this.operatorTypes, compositeServiceName: this.compositeService.name, @@ -305,16 +316,17 @@ export class ServiceDependenciesComponent { return !this.modalInstance.instance.dynamicContent.instance.checkFormValidForSubmit(); } - createRule = (): void => { + createNodeFilter = (constraintType: string) => { const newRuleToCreate: ConstraintObject = new ConstraintObject(this.modalInstance.instance.dynamicContent.instance.currentRule); this.isLoading = true; this.topologyTemplateService.createServiceFilterConstraints( this.compositeService.uniqueId, this.currentServiceInstance.uniqueId, newRuleToCreate, - this.compositeService.componentType + this.compositeService.componentType, + constraintType ).subscribe( (response) => { - this.updateRulesListEvent.emit(response.properties); + this.emitEventOnChanges(constraintType, response); this.isLoading = false; }, (err) => { this.isLoading = false; @@ -322,16 +334,17 @@ export class ServiceDependenciesComponent { this.modalServiceNg2.closeCurrentModal(); } - updateRules = (): void => { + updateNodeFilter = (constraintType: string) => { const allRulesToUpdate: ConstraintObject[] = this.modalInstance.instance.dynamicContent.instance.serviceRulesList.map((rule) => new ConstraintObject(rule)); this.isLoading = true; this.topologyTemplateService.updateServiceFilterConstraints( this.compositeService.uniqueId, this.currentServiceInstance.uniqueId, allRulesToUpdate, - this.compositeService.componentType + this.compositeService.componentType, + constraintType ).subscribe((response) => { - this.updateRulesListEvent.emit(response.properties); + this.emitEventOnChanges(constraintType, response); this.isLoading = false; }, (err) => { this.isLoading = false; @@ -347,15 +360,16 @@ export class ServiceDependenciesComponent { } } - onDeleteRule = (index: number) => { + onDeleteNodeFilter = (constraintType: string, index: number) => { this.isLoading = true; this.topologyTemplateService.deleteServiceFilterConstraints( this.compositeService.uniqueId, this.currentServiceInstance.uniqueId, index, - this.compositeService.componentType + this.compositeService.componentType, + constraintType ).subscribe( (response) => { - this.updateRulesListEvent.emit(response.properties); + this.emitEventOnChanges(constraintType, response); this.isLoading = false; }, (err) => { this.isLoading = false; @@ -363,9 +377,19 @@ export class ServiceDependenciesComponent { this.modalServiceNg2.closeCurrentModal(); } - openDeleteModal = (index: number) => { + private emitEventOnChanges(constraintType: string, response) { + if (this.properties === constraintType) { + this.updateNodeFilterProperties.emit(response.properties); + this.constraintProperties = response.properties; + } else { + this.updateNodeFilterCapabilities.emit(response.capabilities); + this.constraintCapabilities = response.capabilities; + } + } + + openDeleteModal = (constraintType: string, index: number) => { this.modalServiceNg2.createActionModal(I18nTexts.deleteNodeFilterTxt, I18nTexts.deleteNodeFilterMsg, - I18nTexts.modalDelete, () => this.onDeleteRule(index), I18nTexts.modalCancel).instance.open(); + I18nTexts.modalDelete, () => this.onDeleteNodeFilter(constraintType, index), I18nTexts.modalCancel).instance.open(); } } -- cgit 1.2.3-korg