From a03a1059f8e4b8b46ab662e9a865b3ae6bb77b53 Mon Sep 17 00:00:00 2001 From: davsad Date: Tue, 8 Jun 2021 07:17:07 +0100 Subject: Adding type safety to the service dependency editor. Issue-ID: SDC-3725 Signed-off-by: davsad Change-Id: I63d77837fb0df24f5ee12baa5b852a76ce5f55e3 --- .../service-dependencies-editor.component.html | 19 +++++++-- .../service-dependencies-editor.component.less | 6 ++- .../service-dependencies-editor.component.ts | 47 +++++++++++++++++----- .../service-dependencies-editor.module.ts | 4 +- 4 files changed, 61 insertions(+), 15 deletions(-) (limited to 'catalog-ui/src/app/ng2/pages') diff --git a/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.component.html b/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.component.html index 4b23568a06..f84214e4ce 100644 --- a/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.component.html +++ b/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.component.html @@ -24,18 +24,29 @@ - -
+
+ + - prop.name === this.currentRule.servicePropertyName); + this.updateSelectedPropertyObj(); this.updateOperatorTypesList(); this.updateSourceTypesRelatedValues(); } @@ -154,7 +158,7 @@ export class ServiceDependenciesEditorComponent { } } - onChangePage(newIndex) { + onChangePage(newIndex:any) { if (newIndex >= 0 && newIndex < this.input.serviceRules.length) { this.currentIndex = newIndex; this.currentRule = this.serviceRulesList[newIndex]; @@ -163,18 +167,18 @@ export class ServiceDependenciesEditorComponent { } onServicePropertyChanged() { - this.selectedPropertyObj = _.find(this.selectedServiceProperties, (prop) => prop.name === this.currentRule.servicePropertyName); + this.currentRule.value = ''; + this.updateSelectedPropertyObj(); this.updateOperatorTypesList(); this.filterOptionsByType(); - this.currentRule.value = ''; } onSelectSourceType() { + this.currentRule.value = ''; this.currentRule.sourceType = this.currentRule.sourceName === this.SOURCE_TYPES.STATIC.value ? this.SOURCE_TYPES.STATIC.value : this.SOURCE_TYPES.SERVICE_PROPERTY.value; this.updateSourceTypesRelatedValues(); - this.currentRule.value = ''; } filterOptionsByType() { @@ -190,7 +194,7 @@ export class ServiceDependenciesEditorComponent { }, []); } - onValueChange(isValidValue) { + onValueChange(isValidValue:any) { this.currentRule.updateValidity(isValidValue); } @@ -202,4 +206,29 @@ export class ServiceDependenciesEditorComponent { // for update all rules return this.serviceRulesList.every((rule) => rule.isValidRule(rule.sourceName === this.SOURCE_TYPES.STATIC.value)); } + + updateSelectedPropertyObj(): void { + this.selectedPropertyObj = null; + if (this.currentRule.servicePropertyName) { + let newProp = new PropertyFEModel(_.find(this.selectedServiceProperties, (prop) => prop.name === this.currentRule.servicePropertyName)); + newProp.value = JSON.stringify(this.currentRule.value); + this.propertiesUtils.initValueObjectRef(newProp); + console.log("TEST" + newProp.value); + setTimeout(() => {this.selectedPropertyObj = newProp}) + } + } + + isStaticSource(): boolean { + return this.currentRule.sourceType === this.SOURCE_TYPES.STATIC.value + } + + isComplexListMapType(): boolean { + return this.selectedPropertyObj && this.selectedPropertyObj.derivedDataType > 0; + } + + updateComplexListMapTypeRuleValue(): void { + let value = PropertyFEModel.cleanValueObj(this.selectedPropertyObj.valueObj); + this.currentRule.value = JSON.stringify(value); + this.onValueChange(this.selectedPropertyObj.valueObjIsValid); + } } diff --git a/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.module.ts b/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.module.ts index 7b128f4468..cfa466ffa3 100644 --- a/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.module.ts +++ b/catalog-ui/src/app/ng2/pages/service-dependencies-editor/service-dependencies-editor.module.ts @@ -4,6 +4,7 @@ import { FormsModule } from '@angular/forms'; import { FormElementsModule } from 'app/ng2/components/ui/form-components/form-elements.module'; import { UiElementsModule } from 'app/ng2/components/ui/ui-elements.module'; import { ServiceDependenciesEditorComponent } from './service-dependencies-editor.component'; +import { PropertyTableModule } from 'app/ng2/components/logic/properties-table/property-table.module'; @NgModule({ declarations: [ @@ -13,7 +14,8 @@ import { ServiceDependenciesEditorComponent } from './service-dependencies-edito CommonModule, FormsModule, FormElementsModule, - UiElementsModule + UiElementsModule, + PropertyTableModule ], exports: [], entryComponents: [ -- cgit 1.2.3-korg