From 1f5b7cb625def16bcccf5b1554216c262e41554c Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Fri, 11 Sep 2020 14:24:49 +0200 Subject: [PATCH] Fix #459 - empty fields: preserve default calculated param --- src/app/formulaire/elements/formulaire-node.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/formulaire/elements/formulaire-node.ts b/src/app/formulaire/elements/formulaire-node.ts index 9a2e5e3c4..03b41d08d 100644 --- a/src/app/formulaire/elements/formulaire-node.ts +++ b/src/app/formulaire/elements/formulaire-node.ts @@ -144,16 +144,24 @@ export abstract class FormulaireNode implements IObservable { * Set value of all single parameters to undefined, except for the given parameter ids */ public emptyFields(except: string[] = [ "Cd0", "CdWS", "CdGR", "CdGRS", "CdCunge", "CdWR", "CdO", "CdT", "CdWSL" ]) { - for (const p of this.allFormElements ) { + // save current calculated param, as setting value on a CALC param will + // change its mode and choose another calculated param by default + let calcP: NgParameter; + for (const p of this.allFormElements) { if (p instanceof NgParameter) { if ( [ ParamValueMode.SINGLE, ParamValueMode.CALCUL ].includes(p.valueMode) && ! except.includes(p.id) ) { + if (p.valueMode === ParamValueMode.CALCUL) { + calcP = p; + } p.setValue(this, undefined); } } } + // restore original calculated param + calcP.setCalculated(); } /** -- GitLab