From da69273893807f5336b95db21fcb57696aa4bce1 Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Fri, 21 Feb 2020 14:34:40 +0100 Subject: [PATCH] Adaptation to jalhyd#199 --- src/app/util.ts | 28 +++++++++++++++++----------- src/locale/messages.en.json | 3 ++- src/locale/messages.fr.json | 3 ++- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/app/util.ts b/src/app/util.ts index a8fbfd572..f4a315c75 100644 --- a/src/app/util.ts +++ b/src/app/util.ts @@ -1,7 +1,7 @@ import { NgParameter } from "./formulaire/elements/ngparam"; import { ServiceFactory } from "./services/service-factory"; -import { formattedValue } from "jalhyd"; +import { formattedValue, Nub, ParamDefinition, ParamValues } from "jalhyd"; export function logObject(obj: {}, m?: string) { // évite le message "Value below was evaluated just now" dans le debugger de Chrome @@ -48,20 +48,26 @@ export function decodeHtml(html: string): string { * @param varParams */ export function longestVarParam(varParams: NgParameter[]): { param: NgParameter, index: number, size: number } { - let i = 0; - let longest = 0; - let size = 0; - for (const v of varParams) { - const s = v.valuesIterator.count(); - if (s > size) { - size = s; - longest = i; + const variated: { param: ParamDefinition, values: ParamValues }[] = []; + for (const vp of varParams) { + variated.push({ + param: vp.paramDefinition, + values: vp.paramDefinition.paramValues + }); + } + const { size, longest, minLinkedResultParam } = Nub.findVariatedSize(variated); + let realSize = size; + // if at least one linked variated result was found + if (minLinkedResultParam !== undefined) { + // if the size limited by linked variated results is shorter + // than the size of the longest variating element, limit it + if (minLinkedResultParam.values.valuesIterator.count() < realSize) { + realSize = minLinkedResultParam.values.valuesIterator.count(); } - i++; } return { param: varParams[longest], index: longest, - size: size + size: realSize }; } diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json index 89299e905..90fafec0d 100644 --- a/src/locale/messages.en.json +++ b/src/locale/messages.en.json @@ -510,5 +510,6 @@ "WARNING_SECTION_OVERFLOW": "Overflow: water elevation exceeds embankment elevation", "WARNING_SECTION_OVERFLOW_ABSC": "Overflow: water elevation exceeds embankment elevation between abscissae %xa% et %xb%", "WARNING_SESSION_LOAD_NOTES_MERGED": "Notes have been merged", - "WARNING_VALUE_ROUNDED_TO_INTEGER": "Value of %symbol% was rounded to %rounded%" + "WARNING_VALUE_ROUNDED_TO_INTEGER": "Value of %symbol% was rounded to %rounded%", + "WARNING_VARIATED_LENGTH_LIMITED_BY_LINKED_RESULT": "Number of results is limited by linked result %symbol%" } diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json index b9c0993ee..db945e314 100644 --- a/src/locale/messages.fr.json +++ b/src/locale/messages.fr.json @@ -509,5 +509,6 @@ "WARNING_SECTION_OVERFLOW": "Débordement: la cote de l'eau dépasse la cote de berge", "WARNING_SECTION_OVERFLOW_ABSC": "Débordement: la cote de l'eau dépasse la cote de berge entre les abscisses %xa% et %xb%", "WARNING_SESSION_LOAD_NOTES_MERGED": "Les notes ont été fusionnées", - "WARNING_VALUE_ROUNDED_TO_INTEGER": "La valeur de %symbol% a été arrondie à %rounded%" + "WARNING_VALUE_ROUNDED_TO_INTEGER": "La valeur de %symbol% a été arrondie à %rounded%", + "WARNING_VARIATED_LENGTH_LIMITED_BY_LINKED_RESULT": "Le nombre de résultats est limité par le résultat lié %symbol%" } -- GitLab