From 3abf164b48431b339c40c857434c3fd33cb46dca Mon Sep 17 00:00:00 2001 From: "mathias.chouet" <mathias.chouet@irstea.fr> Date: Mon, 29 Jul 2019 17:00:31 +0200 Subject: [PATCH] #157 : add help button option on select and input --- .../calculators/cloisons/cloisons.config.json | 4 ++-- .../generic-input/generic-input.component.html | 6 ++++++ .../generic-select.component.html | 5 +++++ .../ngparam-input/ngparam-input.component.scss | 12 ++++++++++++ .../ngparam-input/ngparam-input.component.ts | 15 +++++++++++++++ .../param-computed.component.scss | 2 +- .../param-values/param-values.component.scss | 2 +- .../select-field-line.component.scss | 12 ++++++++++++ .../select-field-line.component.ts | 18 ++++++++++++++++++ 9 files changed, 72 insertions(+), 4 deletions(-) diff --git a/src/app/calculators/cloisons/cloisons.config.json b/src/app/calculators/cloisons/cloisons.config.json index 7295b9408..6b90ef466 100644 --- a/src/app/calculators/cloisons/cloisons.config.json +++ b/src/app/calculators/cloisons/cloisons.config.json @@ -33,12 +33,12 @@ "source": "device_loi_debit", "help": "pab/cloisonsSelect" }, + "h1", { - "id": "h1", + "id": "L", "type": "input", "help": "pab/cloisonsInput" }, - "L", "CdWSL", "CdWR", "CdGR", diff --git a/src/app/components/generic-input/generic-input.component.html b/src/app/components/generic-input/generic-input.component.html index c60194a79..0e261b797 100644 --- a/src/app/components/generic-input/generic-input.component.html +++ b/src/app/components/generic-input/generic-input.component.html @@ -4,5 +4,11 @@ (keydown.Tab)="onTabPressed($event, false)" (keydown.shift.Tab)="onTabPressed($event, true)" pattern="^-?([0-9]*\.)?([0-9]+[Ee]-?)?[0-9]+$" required> + <div *ngIf="enableHelpButton" class="overlap-input"> + <mat-icon (click)="openHelp($event)" [title]="uitextOpenHelp" color="accent"> + help + </mat-icon> + </div> + <mat-error>{{ errorMessage }}</mat-error> </mat-form-field> diff --git a/src/app/components/generic-select/generic-select.component.html b/src/app/components/generic-select/generic-select.component.html index f4200c534..6d38167d3 100644 --- a/src/app/components/generic-select/generic-select.component.html +++ b/src/app/components/generic-select/generic-select.component.html @@ -4,4 +4,9 @@ {{ entryLabel(e) }} </mat-option> </mat-select> + <div *ngIf="enableHelpButton" class="overlap-select"> + <mat-icon (click)="openHelp($event)" [title]="uitextOpenHelp" color="accent"> + help + </mat-icon> + </div> </mat-form-field> diff --git a/src/app/components/ngparam-input/ngparam-input.component.scss b/src/app/components/ngparam-input/ngparam-input.component.scss index 6d5f7d7ed..004662c2b 100644 --- a/src/app/components/ngparam-input/ngparam-input.component.scss +++ b/src/app/components/ngparam-input/ngparam-input.component.scss @@ -20,4 +20,16 @@ mat-form-field { font-size: 1em; } } + + .overlap-input { + position: absolute; + right: 0; + text-align: right; + top: 0; + + mat-icon { + cursor: pointer; + transform: scale(0.9); + } + } } diff --git a/src/app/components/ngparam-input/ngparam-input.component.ts b/src/app/components/ngparam-input/ngparam-input.component.ts index c61a4fb78..c56cb8c2d 100644 --- a/src/app/components/ngparam-input/ngparam-input.component.ts +++ b/src/app/components/ngparam-input/ngparam-input.component.ts @@ -112,4 +112,19 @@ export class NgParamInputComponent extends GenericInputComponent implements Obse public ngOnDestroy() { this._paramDef.removeObserver(this); } + + public openHelp($event: any) { + window.open("assets/docs-fr/calculators/" + this._model.helpLink + ".html", "_blank"); + $event.preventDefault(); + $event.stopPropagation(); + return false; + } + + public get enableHelpButton() { + return this._model && this._model.helpLink; + } + + public get uitextOpenHelp() { + return this.intlService.localizeText("INFO_CALCULATOR_OPEN_HELP"); + } } diff --git a/src/app/components/param-computed/param-computed.component.scss b/src/app/components/param-computed/param-computed.component.scss index 404691336..829a805dd 100644 --- a/src/app/components/param-computed/param-computed.component.scss +++ b/src/app/components/param-computed/param-computed.component.scss @@ -15,7 +15,7 @@ .param-computed-more { position: absolute; bottom: 0; - right: 0; + right: -7px; } ::ng-deep .mat-form-field-label { diff --git a/src/app/components/param-values/param-values.component.scss b/src/app/components/param-values/param-values.component.scss index 1edcbe0ed..4bd6ca386 100644 --- a/src/app/components/param-values/param-values.component.scss +++ b/src/app/components/param-values/param-values.component.scss @@ -15,7 +15,7 @@ .param-values-more { position: absolute; bottom: 0; - right: 0; + right: -7px; } ::ng-deep .mat-form-field-label { diff --git a/src/app/components/select-field-line/select-field-line.component.scss b/src/app/components/select-field-line/select-field-line.component.scss index 6f94917d1..0ca9e0024 100644 --- a/src/app/components/select-field-line/select-field-line.component.scss +++ b/src/app/components/select-field-line/select-field-line.component.scss @@ -21,4 +21,16 @@ mat-form-field { font-size: 1em; } } + + .overlap-select { + position: absolute; + right: 20px; + text-align: right; + top: 2px; + + mat-icon { + cursor: pointer; + transform: scale(0.9); + } + } } diff --git a/src/app/components/select-field-line/select-field-line.component.ts b/src/app/components/select-field-line/select-field-line.component.ts index 61c4cc62a..e430231f2 100644 --- a/src/app/components/select-field-line/select-field-line.component.ts +++ b/src/app/components/select-field-line/select-field-line.component.ts @@ -2,6 +2,7 @@ import { Component, Input } from "@angular/core"; import { SelectField } from "../../formulaire/select-field"; import { SelectEntry } from "../../formulaire/select-entry"; +import { I18nService } from "../../services/internationalisation/internationalisation.service"; @Component({ selector: "select-field-line", @@ -14,6 +15,8 @@ export class SelectFieldLineComponent { @Input() private _select: SelectField; + public constructor(private i18nService: I18nService) {} + public get selectId() { return this._select.id; } @@ -44,4 +47,19 @@ export class SelectFieldLineComponent { return ""; } } + + public openHelp($event: any) { + window.open("assets/docs-fr/calculators/" + this._select.helpLink + ".html", "_blank"); + $event.preventDefault(); + $event.stopPropagation(); + return false; + } + + public get enableHelpButton() { + return this._select && this._select.helpLink; + } + + public get uitextOpenHelp() { + return this.i18nService.localizeText("INFO_CALCULATOR_OPEN_HELP"); + } } -- GitLab