From 7ab85f2ab04d1bff15b10cd2aecf28dc74e6303c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr> Date: Thu, 27 Oct 2022 16:45:26 +0200 Subject: [PATCH] fix: standard select defaut value from calculator configuration not honored refs #483 --- src/app/formulaire/elements/fieldset.ts | 10 ++-------- src/app/formulaire/elements/select/select-field.ts | 12 +++++++++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/app/formulaire/elements/fieldset.ts b/src/app/formulaire/elements/fieldset.ts index e5fbca7d7..d0229afe7 100644 --- a/src/app/formulaire/elements/fieldset.ts +++ b/src/app/formulaire/elements/fieldset.ts @@ -4,7 +4,7 @@ import { Props, Observer, Nub, - Session, + enumValueFromString } from "jalhyd"; import { FormulaireElement } from "./formulaire-element"; @@ -295,13 +295,7 @@ export class FieldSet extends FormulaireElement implements Observer { // Sets Nub default property, unless this property is already set const currentValue = this.properties.getPropValue(prop); if (defaultValue !== undefined && currentValue === undefined) { - let formalValue = defaultValue; - // !! property names must be unique throughout JaLHyd !! - const enumClass = Session.enumFromProperty[prop]; - if (enumClass) { - formalValue = enumClass[defaultValue]; - } - this.setNubPropValue(prop, formalValue); + this.setNubPropValue(prop, enumValueFromString(prop, defaultValue)); } } } diff --git a/src/app/formulaire/elements/select/select-field.ts b/src/app/formulaire/elements/select/select-field.ts index f67c07404..5a174b636 100644 --- a/src/app/formulaire/elements/select/select-field.ts +++ b/src/app/formulaire/elements/select/select-field.ts @@ -4,7 +4,7 @@ import { arraysAreEqual } from "../../../util"; import { FormulaireNode } from "../formulaire-node"; import { ServiceFactory } from "app/services/service-factory"; import { FormulaireDefinition } from "../../definition/form-definition"; -import { Nub } from "jalhyd"; +import { enumValueFromString, Nub } from "jalhyd"; export abstract class SelectField extends Field { @@ -128,10 +128,16 @@ export abstract class SelectField extends Field { protected findAndSetDefaultValue() { // default to first available entry if any if (this._entries.length > 0) { + let val; + if (this._configDefaultValue === undefined) { + val = this._entries[0]; + } else { + val = this.getEntryFromValue(enumValueFromString(this._associatedProperty, this._configDefaultValue)); + } if (this._multiple) { - this.setValue([this._entries[0]]); + this.setValue([val]); } else { - this.setValue(this._entries[0]); + this.setValue(val); } } else { // notify observers that no value is selected anymore -- GitLab