From dd6da1dffcae3c51de9923329112757b7f86cb9d Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Thu, 25 Jul 2019 17:51:19 +0200 Subject: [PATCH] Removed "option" from config, read acceptable modes from parameter calculability instead --- .../calculators/cloisons/cloisons.config.json | 14 +++------ .../cond_distri/cond_distri.config.json | 1 - src/app/calculators/dever/dever.config.json | 8 ++--- .../lechapt-calmon/lechapt-calmon.config.json | 2 -- .../macrorugo/macrorugo.config.json | 3 -- .../pab-chute/pab-chute.config.json | 1 - .../pab-dimensions/pab-dimensions.config.json | 1 - .../pab-nombre/pab-nombre.config.json | 1 - .../pab-puissance/pab-puissance.config.json | 1 - src/app/calculators/pab/pab.config.json | 4 +-- .../parallel-structures.config.json | 2 -- .../regime-uniforme.config.json | 3 -- src/app/calculators/remous/remous.config.json | 4 --- .../section-param/section-param.config.json | 3 -- src/app/formulaire/fieldset.ts | 12 ++++---- src/app/formulaire/ngparam.ts | 30 +++++++++---------- 16 files changed, 27 insertions(+), 63 deletions(-) diff --git a/src/app/calculators/cloisons/cloisons.config.json b/src/app/calculators/cloisons/cloisons.config.json index 43f69863c..fe39ea7f1 100644 --- a/src/app/calculators/cloisons/cloisons.config.json +++ b/src/app/calculators/cloisons/cloisons.config.json @@ -3,26 +3,21 @@ "id": "fs_param_hydro", "type": "fieldset", "calcType": "Dever", - "option": "cal", "fields": [ { "id": "Q" }, { - "id": "Z1", - "option": "var" + "id": "Z1" }, { - "id": "LB", - "option": "var" + "id": "LB" }, { - "id": "BB", - "option": "var" + "id": "BB" }, { - "id": "PB", - "option": "var" + "id": "PB" }, { "id": "DH" @@ -36,7 +31,6 @@ "defaultNodeType": "StructureRectangle", "defaultStructType": "SeuilRectangulaire", "defaultLoiDebit": "WeirSubmergedLarinier", - "option": "cal", "fields": [ { "id": "select_ouvrage", diff --git a/src/app/calculators/cond_distri/cond_distri.config.json b/src/app/calculators/cond_distri/cond_distri.config.json index d4ebc675d..27563717a 100644 --- a/src/app/calculators/cond_distri/cond_distri.config.json +++ b/src/app/calculators/cond_distri/cond_distri.config.json @@ -2,7 +2,6 @@ { "id": "fs_hydraulique", "type": "fieldset", - "option": "cal", "fields": [ { "id": "Q" diff --git a/src/app/calculators/dever/dever.config.json b/src/app/calculators/dever/dever.config.json index c49fe100c..501eb6e78 100644 --- a/src/app/calculators/dever/dever.config.json +++ b/src/app/calculators/dever/dever.config.json @@ -3,7 +3,6 @@ "id": "fs_param_hydro", "type": "fieldset", "calcType": "Dever", - "option": "cal", "fields": [ { "id": "Q" @@ -12,12 +11,10 @@ "id": "Z1" }, { - "id": "BR", - "option": "var" + "id": "BR" }, { - "id": "ZR", - "option": "var" + "id": "ZR" } ] }, @@ -28,7 +25,6 @@ "defaultNodeType": "StructureRectangle", "defaultStructType": "SeuilRectangulaire", "defaultLoiDebit": "WeirFree", - "option": "cal", "fields": [ { "id": "select_ouvrage", diff --git a/src/app/calculators/lechapt-calmon/lechapt-calmon.config.json b/src/app/calculators/lechapt-calmon/lechapt-calmon.config.json index 3505e8fa8..dcb289eec 100644 --- a/src/app/calculators/lechapt-calmon/lechapt-calmon.config.json +++ b/src/app/calculators/lechapt-calmon/lechapt-calmon.config.json @@ -2,7 +2,6 @@ { "id": "fs_materiau", "type": "fieldset", - "option": "fix", "fields": [ { "id": "select_material", @@ -23,7 +22,6 @@ { "id": "fs_hydraulique", "type": "fieldset", - "option": "cal", "fields": [ { "id": "Q" diff --git a/src/app/calculators/macrorugo/macrorugo.config.json b/src/app/calculators/macrorugo/macrorugo.config.json index 0f5f9b00a..5c7dc9968 100644 --- a/src/app/calculators/macrorugo/macrorugo.config.json +++ b/src/app/calculators/macrorugo/macrorugo.config.json @@ -2,7 +2,6 @@ { "id": "fs_hydraulique_fix", "type": "fieldset", - "option": "var", "fields": [ { "id": "ZF1" @@ -18,7 +17,6 @@ { "id": "fs_hydraulique_cal", "type": "fieldset", - "option": "cal", "fields": [ { "id": "B" @@ -40,7 +38,6 @@ { "id": "fs_bloc", "type": "fieldset", - "option": "var", "fields": [ { "id": "PBD" diff --git a/src/app/calculators/pab-chute/pab-chute.config.json b/src/app/calculators/pab-chute/pab-chute.config.json index f45e9317b..acdd425b7 100644 --- a/src/app/calculators/pab-chute/pab-chute.config.json +++ b/src/app/calculators/pab-chute/pab-chute.config.json @@ -2,7 +2,6 @@ { "id": "fs_chute", "type": "fieldset", - "option": "cal", "fields": [ { "id": "Z1" diff --git a/src/app/calculators/pab-dimensions/pab-dimensions.config.json b/src/app/calculators/pab-dimensions/pab-dimensions.config.json index 88837dddf..0dc5a6724 100644 --- a/src/app/calculators/pab-dimensions/pab-dimensions.config.json +++ b/src/app/calculators/pab-dimensions/pab-dimensions.config.json @@ -2,7 +2,6 @@ { "id": "fs_dimensions", "type": "fieldset", - "option": "cal", "fields": [ { "id": "L" diff --git a/src/app/calculators/pab-nombre/pab-nombre.config.json b/src/app/calculators/pab-nombre/pab-nombre.config.json index 983a87bbf..152afc882 100644 --- a/src/app/calculators/pab-nombre/pab-nombre.config.json +++ b/src/app/calculators/pab-nombre/pab-nombre.config.json @@ -2,7 +2,6 @@ { "id": "fs_nombre", "type": "fieldset", - "option": "cal", "fields": [ { "id": "DHT" diff --git a/src/app/calculators/pab-puissance/pab-puissance.config.json b/src/app/calculators/pab-puissance/pab-puissance.config.json index 3cf2766c7..d7e9228a5 100644 --- a/src/app/calculators/pab-puissance/pab-puissance.config.json +++ b/src/app/calculators/pab-puissance/pab-puissance.config.json @@ -2,7 +2,6 @@ { "id": "fs_puissance", "type": "fieldset", - "option": "cal", "fields": [ { "id": "DH" diff --git a/src/app/calculators/pab/pab.config.json b/src/app/calculators/pab/pab.config.json index 1e7ae82cd..2028b9a19 100644 --- a/src/app/calculators/pab/pab.config.json +++ b/src/app/calculators/pab/pab.config.json @@ -3,7 +3,6 @@ "id": "fs_param_hydro", "type": "fieldset", "calcType": "Pab", - "option": "cal", "fields": [ { "id": "Q" @@ -12,8 +11,7 @@ "id": "Z1" }, { - "id": "Z2", - "option": "var" + "id": "Z2" } ] }, diff --git a/src/app/calculators/parallel-structures/parallel-structures.config.json b/src/app/calculators/parallel-structures/parallel-structures.config.json index a1ea704a2..1fb0a205e 100644 --- a/src/app/calculators/parallel-structures/parallel-structures.config.json +++ b/src/app/calculators/parallel-structures/parallel-structures.config.json @@ -3,7 +3,6 @@ "id": "fs_param_hydro", "type": "fieldset", "calcType": "ParallelStructure", - "option": "cal", "fields": [ { "id": "Q" @@ -23,7 +22,6 @@ "defaultNodeType": "StructureRectangle", "defaultStructType": "VanneRectangulaire", "defaultLoiDebit": "GateCem88v", - "option": "cal", "fields": [ { "id": "select_ouvrage", diff --git a/src/app/calculators/regime-uniforme/regime-uniforme.config.json b/src/app/calculators/regime-uniforme/regime-uniforme.config.json index e976dfaf1..393a1f3a6 100644 --- a/src/app/calculators/regime-uniforme/regime-uniforme.config.json +++ b/src/app/calculators/regime-uniforme/regime-uniforme.config.json @@ -2,7 +2,6 @@ { "id": "fs_section", "type": "fieldset", - "option": "cal", "fields": [ { "id": "select_section", @@ -29,7 +28,6 @@ { "id": "fs_bief", "type": "fieldset", - "option": "cal", "fields": [ { "id": "Ks" @@ -45,7 +43,6 @@ { "id": "fs_hydraulique", "type": "fieldset", - "option": "cal", "fields": [ { "id": "Q" diff --git a/src/app/calculators/remous/remous.config.json b/src/app/calculators/remous/remous.config.json index 99163d72f..a87ad77e0 100644 --- a/src/app/calculators/remous/remous.config.json +++ b/src/app/calculators/remous/remous.config.json @@ -2,7 +2,6 @@ { "id": "fs_section", "type": "fieldset", - "option": "fix", "fields": [ { "id": "select_section", @@ -29,7 +28,6 @@ { "id": "fs_bief", "type": "fieldset", - "option": "fix", "fields": [ { "id": "Ks" @@ -48,7 +46,6 @@ { "id": "fs_condlim", "type": "fieldset", - "option": "fix", "fields": [ { "id": "Q" @@ -64,7 +61,6 @@ { "id": "fs_param_calc", "type": "fieldset", - "option": "fix", "fields": [ { "id": "Dx" diff --git a/src/app/calculators/section-param/section-param.config.json b/src/app/calculators/section-param/section-param.config.json index 41a03556a..b92c51876 100644 --- a/src/app/calculators/section-param/section-param.config.json +++ b/src/app/calculators/section-param/section-param.config.json @@ -2,7 +2,6 @@ { "id": "fs_section", "type": "fieldset", - "option": "var", "fields": [ { "id": "select_section", @@ -29,7 +28,6 @@ { "id": "fs_bief", "type": "fieldset", - "option": "var", "fields": [ { "id": "Ks" @@ -45,7 +43,6 @@ { "id": "fs_hydraulique", "type": "fieldset", - "option": "var", "fields": [ { "id": "Q" diff --git a/src/app/formulaire/fieldset.ts b/src/app/formulaire/fieldset.ts index e888256e4..01b95f337 100644 --- a/src/app/formulaire/fieldset.ts +++ b/src/app/formulaire/fieldset.ts @@ -114,14 +114,14 @@ export class FieldSet extends FormulaireElement implements Observer { * @param node_type_filter filtre sur le type de noeud (input créé si undefined ou égal) * @param default_radio_config config du radio fixé/à varier/à calculer */ - private parse_input(json: {}, default_radio_config: string): NgParameter { + private parse_input(json: {}): NgParameter { const input_id: string = json["id"]; let res: NgParameter; let nubParam: ParamDefinition; try { nubParam = this.getNubParamFromSymbol(input_id); res = new NgParameter(nubParam, this); - res.parseConfig(json, { "radioConfig": default_radio_config }); + res.parseConfig(json); } catch (e) { // parameter does not exist in Nub, it's normal, simply do not show it (silent fail) // console.error(`FieldSet::parse_input : cannot find param from symbol ${input_id}`); @@ -138,10 +138,10 @@ export class FieldSet extends FormulaireElement implements Observer { switch (type) { case "input": - const default_radio_config = this._jsonConfig["option"]; - param = this.parse_input(field, default_radio_config); - // tslint:disable-next-line:max-line-length - if (param) { // potentiellement undefined car certaines définitions de FieldSet comportent des paramètres qui ne sont pas tous affichés en même temps (cf. ouvrages //) + param = this.parse_input(field); + // potentiellement undefined car certaines définitions de FieldSet comportent des paramètres + // qui ne sont pas tous affichés en même temps (cf. ouvrages //) + if (param) { this.addField(param); } break; diff --git a/src/app/formulaire/ngparam.ts b/src/app/formulaire/ngparam.ts index 46d010e42..c10a48d45 100644 --- a/src/app/formulaire/ngparam.ts +++ b/src/app/formulaire/ngparam.ts @@ -261,20 +261,19 @@ export class NgParameter extends InputField implements Observer { return this._paramDef.valuesIterator; } - private static getRadioConfig(s: string) { - if (s === "fix") { - return ParamRadioConfig.FIX; - } - - if (s === "var") { - return ParamRadioConfig.VAR; - } - - if (s === "cal") { - return ParamRadioConfig.CAL; + /** + * Reads radio config from parameter calculability + */ + private getRadioConfig() { + switch (this.paramDefinition.calculability) { + case ParamCalculability.FIXED: + return ParamRadioConfig.FIX; + case ParamCalculability.FREE: + return ParamRadioConfig.VAR; + case ParamCalculability.DICHO: + case ParamCalculability.EQUATION: + return ParamRadioConfig.CAL; } - - throw new Error("invalid parameter radio configuration " + s); } /** @@ -438,11 +437,10 @@ export class NgParameter extends InputField implements Observer { return this._paramDef.checkStep(step); } - public parseConfig(json: {}, data?: {}) { - const radioConfig: string = json["option"] || data["radioConfig"]; + public parseConfig(json: {}) { this._confId = json["id"]; this.unit = this.paramDefinition.unit; - this.radioConfig = NgParameter.getRadioConfig(radioConfig); + this.radioConfig = this.getRadioConfig(); } // interface Observer -- GitLab