Skip to content
Snippets Groups Projects
Commit c757cbb9 authored by François Grand's avatar François Grand
Browse files

fix: wrong searched parameter selected in solver

refs #555
parent d3d41339
No related branches found
No related tags found
1 merge request!164Resolve "Solveur: le paramètre recherché n'est pas conservé"
Pipeline #139813 passed
......@@ -3,7 +3,7 @@ import { ServiceFactory } from "../../services/service-factory";
import { SelectField } from "./select-field";
import { decodeHtml, arraysAreEqual } from "../../util";
import { FishSpecies, Session, Solveur, FishPass, CalculatorType, Verificateur, Nub, PbCloison, PreBarrage } from "jalhyd";
import { FishSpecies, Session, Solveur, FishPass, CalculatorType, Verificateur, Nub, PbCloison, PreBarrage, acSection } from "jalhyd";
import { sprintf } from "sprintf-js";
......@@ -30,7 +30,15 @@ export class SelectFieldCustom extends SelectField {
case "solveur_searched": // Solveur, paramètre recherché (à faire varier)
const sp = (nub as Solveur).searchedParameter;
if (sp !== undefined) {
this.setValueFromId(this._entriesBaseId + sp.nubUid + "_" + sp.symbol);
let parentNubUid;
const parentNub = sp.getParentComputeNode(false);
if (parentNub instanceof acSection) {
parentNubUid = parentNub.uid;
}
else {
parentNubUid = sp.nubUid
}
this.setValueFromId(this._entriesBaseId + parentNubUid + "_" + sp.symbol);
}
break;
......@@ -225,7 +233,7 @@ export class SelectFieldCustom extends SelectField {
// default to first available entry if any
if (this._entries.length > 0) {
if (this._multiple) {
this.setValue([ this._entries[0] ]);
this.setValue([this._entries[0]]);
} else {
this.setValue(this._entries[0]);
}
......@@ -265,10 +273,10 @@ export class SelectFieldCustom extends SelectField {
} else {
// keep previously selected entry(ies) if possible
if (pse) {
if (! Array.isArray(pse) && pse.id) {
if (!Array.isArray(pse) && pse.id) {
this.setValueFromId(pse.id);
} else if (Array.isArray(pse) && pse.length > 0) {
this.setValueFromId(pse.map((e) => e.id ));
this.setValueFromId(pse.map((e) => e.id));
} else {
this.setDefaultValue();
}
......@@ -287,16 +295,16 @@ export class SelectFieldCustom extends SelectField {
this._selectedEntry = v;
// if value changed
const valueChanged = (
! previousSelectedEntry
!previousSelectedEntry
|| (
! Array.isArray(previousSelectedEntry)
&& ! Array.isArray(v)
!Array.isArray(previousSelectedEntry)
&& !Array.isArray(v)
&& previousSelectedEntry.id !== v.id
)
|| (
Array.isArray(previousSelectedEntry)
&& Array.isArray(v)
&& ! arraysAreEqual(previousSelectedEntry, v, "id", true)
&& !arraysAreEqual(previousSelectedEntry, v, "id", true)
)
);
if (valueChanged) {
......@@ -327,7 +335,7 @@ export class SelectFieldCustom extends SelectField {
}
}
}
if (! found) {
if (!found) {
this.setDefaultValue();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment