From 7374318842be02775d2a1f99f48125f0c99db499 Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Thu, 21 Jun 2018 10:24:51 +0200 Subject: [PATCH] =?UTF-8?q?=20#48=20ParamLinkComponent=20:=20raffinement?= =?UTF-8?q?=20des=20=C3=A9tiquettes=20dans=20le=20s=C3=A9lecteur=20de=20pa?= =?UTF-8?q?ram=C3=A8tres=20liables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param-link/param-link.component.ts | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts index e3efcd9ac..ab78d4d85 100644 --- a/src/app/components/param-link/param-link.component.ts +++ b/src/app/components/param-link/param-link.component.ts @@ -29,7 +29,17 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy { /** * liste des paramètres liables sous la forme - * {"value":<valeur liable>, "nub":<Nub d'origine du paramètre>, "formTitle":<nom de la calculette liée au nub>} + * {"name":<étiquette>, "value":<valeur liable>, "nub":<Nub d'origine du paramètre>, "formTitle":<nom de la calculette liée au nub>} + * + * l'étiquette "name" est de la forme <n|N1>[.[N2]] + * n : indice de de l'ouvrage dans le cas des ouvrages parallèles + * N1 : un nom de paramètre/résultat (dans le cas d'un résultat, il est suivi d'un point) + * N2 : nom de résultat complémentaire (optionnel) + * ex : + * Q, Z1 (paramètres) + * J. (résultat) + * .Yf (résultat complémentaire du résultat courant) + * Q.Yf (résultat complémentaire du résultat nommé "Q") */ private _linkableParams: any[]; @@ -94,9 +104,32 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy { * attribut "label" d'une entrée du select des paramètres */ private selectItemLabel(i: any) { - const s = i.value.name; - const c = i.formTitle; - return `${s} (${c})`; + const s = i.name; // nom associé au paramètre/à la valeur + const c = i.formTitle; // nom de la calculette + + const re1 = /([^\.]+)\.$/; // forme xxx. (résultat) + const match1 = re1.exec(s); + if (match1 !== null) + return `${match1[1]} (résultat de ${c})`; + + const re4 = /(\d+)\.(.+)/; // forme <nombre>.xxx (ouvrage) + const match4 = re4.exec(s); + if (match4 !== null) { + const n = +match4[1] + 1 + return `${match4[2]} (${c}, ouvrage n°${n})`; + } + + const re2 = /([^\.]+)\.(.+)/; // forme xxx.yyy (résultat complémentaire) + const match2 = re2.exec(s); + if (match2 !== null) + return `${match2[2]} (${c}, résultat complémentaire de ${match2[1]})`; + + const re3 = /^\.(.+)/; // forme .xxx (résultat complémentaire) + const match3 = re3.exec(s); + if (match3 !== null) + return `${match3[1]} (${c}, résultat complémentaire)`; + + return `${s} (${c})`; // forme simple (paramètre) } /** -- GitLab