diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts index 37fbddfd41332f178a88efcf12efc6e7b8cc5fef..dbe234bae9b376da9768872eb681cd9da55a4546 100644 --- a/src/app/formulaire/definition/form-definition.ts +++ b/src/app/formulaire/definition/form-definition.ts @@ -160,7 +160,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs private parse_fieldset(json: {}) { const fs = this.createFieldset(this, json); - fs.parseConfig(json, { "parentForm": this }); + fs.parseConfig(json); this.afterParseFieldset(fs); } diff --git a/src/app/formulaire/fieldset-template.ts b/src/app/formulaire/fieldset-template.ts index a5d61834921dcdeb5408047af79db76c29386f53..ce3fcf353158e5e5afb82accafa73bfeda2b1d08 100644 --- a/src/app/formulaire/fieldset-template.ts +++ b/src/app/formulaire/fieldset-template.ts @@ -46,7 +46,7 @@ export class FieldsetTemplate { public instantiateTemplate(cont: FieldsetContainer, after: number): FieldSet { const parentForm = cont.parent as FormulaireDefinition; const res = parentForm.createFieldset(cont, this._jsonConfig, { "template": this, "after": after }); - res.parseConfig(this._jsonConfig, { "parentForm": parentForm }); + res.parseConfig(this._jsonConfig); parentForm.afterParseFieldset(res); return res; } diff --git a/src/app/formulaire/fieldset.ts b/src/app/formulaire/fieldset.ts index 434cf111595689ac695eeaf9b219e070910f9c87..c562852e7bf355728038dcf45aed160d76044a42 100644 --- a/src/app/formulaire/fieldset.ts +++ b/src/app/formulaire/fieldset.ts @@ -15,11 +15,6 @@ import { FieldsetContainer } from "./fieldset-container"; import { FormulaireNode } from "./formulaire-node"; export class FieldSet extends FormulaireElement implements Observer { - /** - * formulaire parent - */ - private _parentForm: FormulaireDefinition; - /** * SessionNub associé */ @@ -45,6 +40,16 @@ export class FieldSet extends FormulaireElement implements Observer { this._props = new Props(); } + /** + * formulaire parent + */ + private get parentForm(): FormulaireDefinition { + let res = this.parent; + while (!(res instanceof FormulaireDefinition)) + res = res.parent; + return res as FormulaireDefinition; + + } public get sessionNub(): SessionNub { return this._sessionNub; } @@ -279,17 +284,16 @@ export class FieldSet extends FormulaireElement implements Observer { // fin MAJ selects - this.applyDependencies(this._parentForm); + this.applyDependencies(this.parentForm); } public parseConfig(json: {}, data?: {}) { this._jsonConfig = json; - this._parentForm = data["parentForm"]; this._confId = json["id"]; const ct: string = json["calcType"]; - const calc_type: CalculatorType = ct == undefined ? this._parentForm.calculatorType : CalculatorType[ct]; + const calc_type: CalculatorType = ct == undefined ? this.parentForm.calculatorType : CalculatorType[ct]; this.setPropValue("calcType", calc_type); const nt: string = json["nodeType"];