diff --git a/src/app/formulaire/elements/select/select-field-factory.ts b/src/app/formulaire/elements/select/select-field-factory.ts index afb4246e01c12c991552a742e86f31ca9495954c..68a9fae0fb596a02f2bbe47f95b0ee8e2b7f2c01 100644 --- a/src/app/formulaire/elements/select/select-field-factory.ts +++ b/src/app/formulaire/elements/select/select-field-factory.ts @@ -11,6 +11,7 @@ import { SelectFieldSearchedParam } from "./select-field-searched-param"; import { SelectFieldSpeciesList } from "./select-field-species-list"; import { SelectFieldTargetPass } from "./select-field-target-pass"; import { SelectFieldNubProperty } from "./select-field-nub-prop"; +import { SelectFieldTargetPam } from "./select-field-target-pam"; export class SelectFieldFactory { /** @@ -57,6 +58,9 @@ export class SelectFieldFactory { case "select_upstream_basin": return new SelectFieldUpstreamBasin(parent); + case "select_target_pam": + return new SelectFieldTargetPam(parent); + case "select_divingjetsupported": case "select_gridprofile": case "select_gridtype": diff --git a/src/app/formulaire/elements/select/select-field-target-pam.ts b/src/app/formulaire/elements/select/select-field-target-pam.ts new file mode 100644 index 0000000000000000000000000000000000000000..9970670afd9c20a6c9d43c755817bf96a51ed6d2 --- /dev/null +++ b/src/app/formulaire/elements/select/select-field-target-pam.ts @@ -0,0 +1,39 @@ +import { ServiceFactory } from "app/services/service-factory"; +import { decodeHtml } from "../../../util/util"; +import { CalculatorType, MacroRugoRemous } from "jalhyd"; +import { SelectField } from "./select-field"; +import { FormulaireNode } from "../formulaire-node"; + +// Courbe de remous dans une passe à macro-rugo. +export class SelectFieldTargetPam extends SelectField { + constructor(parent: FormulaireNode) { + super(parent); + this._associatedProperty = "nubMacroRugo"; + } + + protected populate() { + + const fs = ServiceFactory.formulaireService; + + // find all rock-ramp fishpass forms + const macroForms: any[] = fs.formulaires.filter((element, index, self) => + element.calculatorType === CalculatorType.MacroRugo + ); + for (const cn of macroForms) { + const calc = cn.calculatorName; + this.addEntry(this.createOrGetEntry(this._entriesBaseId + cn.uid, cn.uid, decodeHtml(calc))); + } + } + + protected initSelectedValue() { + const mrr = (this.nub as MacroRugoRemous).nubMacroRugo; + if (mrr !== undefined) { + this.setValueFromId(this._entriesBaseId + mrr.uid); + } + } + + public updateLocalisation() { + // do not override localisation done in populate() + // ie. avoid what is done by SelectField.updateLocalisation() + } +}