From d2cfdf5fd128de211e5e2d44dda43c66f2b234ed Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Thu, 21 Feb 2019 10:16:08 +0100 Subject: [PATCH] L'UID d'un FormulaireDefinition est maintenat l'UID de son Nub courant --- .../formulaire/definition/form-definition.ts | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/src/app/formulaire/definition/form-definition.ts b/src/app/formulaire/definition/form-definition.ts index 390718dcd..f996ae7de 100644 --- a/src/app/formulaire/definition/form-definition.ts +++ b/src/app/formulaire/definition/form-definition.ts @@ -51,6 +51,16 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs this._paramService = ServiceFactory.instance.paramService; } + // surcharge de FormulaireNode::get:uid() + // l'UID d'un formulaire est l'UID de son Nub ! + public get uid() { + if (this._currentNub) { + return this._currentNub.uid; + } else { + throw new Error("Aucun Nub associé au formulaire !"); + } + } + public get calculatorType(): CalculatorType { const props = this._currentNub === undefined ? this.defaultProperties : (this._currentNub.properties as Props).props; return props["calcType"]; @@ -81,8 +91,8 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs return this._props; } - public initNub(props?: {}) { - this._currentNub = this.createNub(props === undefined ? this.defaultProperties : props); + public initNub(props?: Props) { + this._currentNub = this.createNub(props === undefined ? new Props(this.defaultProperties) : props); } public get currentNub(): Nub { @@ -99,9 +109,9 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs this._currentNub = n; } - protected createNub(params: Props | {}): Nub { - const props = params instanceof Props ? params : new Props(params); - return this._paramService.createNub(props); + protected createNub(p: Props): Nub { + console.log("FormDefinition - createNub", p); + return this._paramService.createNub(p); } protected replaceCurrentNub(params: Props) { @@ -164,6 +174,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs private parse_fieldset(json: {}) { const fs = this.createFieldset(this, json); fs.parseConfig(json); + console.log(".FormDefinition: parse_fieldset " + fs.id + " >> afterParseFieldset"); this.afterParseFieldset(fs); } @@ -454,19 +465,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs return new TopFormulaireElementIterator(this); } - /** - * sérialisation en JSON - */ - public JSONserialise(): {} { - const res = {}; - res["id"] = this.calculatorName; - res["uid"] = this.uid; - res["props"] = (this._currentNub.properties as Props).props; - res["elements"] = this.serialiseKids(); - return { "form": res }; - } - - private deserialiseFieldset(elements: {}): FieldSet { + /* private deserialiseFieldset(elements: {}): FieldSet { const res: FieldSet = this.getFormulaireNodeById(elements["id"]) as FieldSet; res.deserialiseJSON(elements); return res; @@ -498,9 +497,6 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs } } - /** - * désérialisation depuis JSON - */ public deserialiseJSON(elements: {}) { // tslint:disable-next-line:forin for (const k in elements) { @@ -523,7 +519,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs throw new Error(`session file : invalid key '${k}' in form object`); } } - } + } */ /** * MAJ des liens entre paramètres lors de la désérialisation JSON @@ -548,6 +544,7 @@ export abstract class FormulaireDefinition extends FormulaireNode implements Obs * @param uidMap table de correspondance uid dans le fichier de conf <-> uid en mémoire */ public updateParamsLinks(json: {}, uidMap: {}[]) { + console.log("++ UPDATE PARAMS LINKS (form definition) ++"); for (const ks in json) { switch (ks) { case "elements": -- GitLab