From 6cfd1047a2b9895c268097bf9bce29d535b1041c Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Fri, 30 Mar 2018 10:21:33 +0200 Subject: [PATCH] =?UTF-8?q?=20#77=20effacement=20des=20r=C3=A9sultats=20qu?= =?UTF-8?q?and=20on=20modifie=20un=20input?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../field-set/field-set.component.html | 2 +- .../components/field-set/field-set.component.ts | 13 +++++++++++++ .../fieldset-container.component.html | 2 +- .../fieldset-container.component.ts | 13 +++++++++++++ .../generic-calculator/calculator.component.html | 2 +- .../generic-calculator/calculator.component.ts | 7 +++++++ .../param-field-line.component.ts | 16 +++++++++++++--- 7 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/app/components/field-set/field-set.component.html b/src/app/components/field-set/field-set.component.html index cd33a4983..50c2405b0 100644 --- a/src/app/components/field-set/field-set.component.html +++ b/src/app/components/field-set/field-set.component.html @@ -15,7 +15,7 @@ --> <ng-template ngFor let-p [ngForOf]="fields"> - <param-field-line *ngIf="isInputField(p)" [param]=p (onRadio)=onRadioClick($event) (onValid)=onParamLineValid()> + <param-field-line *ngIf="isInputField(p)" [param]=p (onRadio)=onRadioClick($event) (onValid)=onParamLineValid() (inputChange)=onInputChange()> </param-field-line> <select-field-line *ngIf="isSelectField(p)" [param]=p> diff --git a/src/app/components/field-set/field-set.component.ts b/src/app/components/field-set/field-set.component.ts index 462644627..a192bd1d7 100644 --- a/src/app/components/field-set/field-set.component.ts +++ b/src/app/components/field-set/field-set.component.ts @@ -45,6 +45,12 @@ export class FieldSetComponent implements DoCheck { @Output() private validChange = new EventEmitter(); + /** + * événément de changement de valeur d'un input + */ + @Output() + private inputChange = new EventEmitter(); + /** * flag de validité de la saisie */ @@ -177,4 +183,11 @@ export class FieldSetComponent implements DoCheck { private onParamLineValid(event: boolean) { this.updateValidity(); } + + /** + * réception d'un événement de changement de valeur d'un input + */ + private onInputChange(event: boolean) { + this.inputChange.emit(); + } } diff --git a/src/app/components/fieldset-container/fieldset-container.component.html b/src/app/components/fieldset-container/fieldset-container.component.html index 154696041..9ba68f234 100644 --- a/src/app/components/fieldset-container/fieldset-container.component.html +++ b/src/app/components/fieldset-container/fieldset-container.component.html @@ -6,6 +6,6 @@ <!-- bouton d'ajout d'un ouvrage --> <button type="button" class="btn btn-grey waves-light" mdbRippleRadius (click)="addStructure()">Ajouter un ouvrage</button> </div> - <field-set *ngFor="let fs of fieldsets" [fieldSet]=fs (onRadio)=onRadioClick($event) (onValid)=onFieldsetValid()> + <field-set *ngFor="let fs of fieldsets" [fieldSet]=fs (onRadio)=onRadioClick($event) (onValid)=onFieldsetValid() (inputChange)=onInputChange()> </field-set> </div> \ No newline at end of file diff --git a/src/app/components/fieldset-container/fieldset-container.component.ts b/src/app/components/fieldset-container/fieldset-container.component.ts index 26ac2f5f1..e091ef408 100644 --- a/src/app/components/fieldset-container/fieldset-container.component.ts +++ b/src/app/components/fieldset-container/fieldset-container.component.ts @@ -101,4 +101,17 @@ export class FieldsetContainerComponent implements DoCheck { private onFieldsetValid() { this.updateValidity(); } + + /** + * événément de changement de valeur d'un input + */ + @Output() + private inputChange = new EventEmitter(); + + /** + * réception d'un événement de changement de valeur d'un input + */ + private onInputChange(event: boolean) { + this.inputChange.emit(); + } } \ No newline at end of file diff --git a/src/app/components/generic-calculator/calculator.component.html b/src/app/components/generic-calculator/calculator.component.html index 47e2a2e53..058792c2a 100644 --- a/src/app/components/generic-calculator/calculator.component.html +++ b/src/app/components/generic-calculator/calculator.component.html @@ -24,7 +24,7 @@ <!-- chapitres --> <ng-template ngFor let-fe [ngForOf]="formElements"> <field-set *ngIf="isFieldset(fe)" [style.display]="getFieldsetStyleDisplay(fe.id)" [fieldSet]=fe (onRadio)=onRadioClick($event) - (validChange)=OnFieldsetValid()></field-set> + (validChange)=OnFieldsetValid() (inputChange)=onInputChange()></field-set> <fieldset-container *ngIf="isFieldsetContainer(fe)" [container]=fe (onRadio)=onRadioClick($event) (validChange)=onFieldsetContainerValid()></fieldset-container> </ng-template> diff --git a/src/app/components/generic-calculator/calculator.component.ts b/src/app/components/generic-calculator/calculator.component.ts index 3e0d05322..2ed9990ca 100644 --- a/src/app/components/generic-calculator/calculator.component.ts +++ b/src/app/components/generic-calculator/calculator.component.ts @@ -332,4 +332,11 @@ export class GenericCalculatorComponent extends BaseComponent implements OnInit, private onFieldsetContainerValid() { this.updateUIValidity(); } + + /** + * réception d'un événement de changement de valeur d'un input + */ + private onInputChange() { + this._formulaire.reset(); + } } diff --git a/src/app/components/param-field-line/param-field-line.component.ts b/src/app/components/param-field-line/param-field-line.component.ts index 5ec1d3de0..ebee96d49 100644 --- a/src/app/components/param-field-line/param-field-line.component.ts +++ b/src/app/components/param-field-line/param-field-line.component.ts @@ -36,6 +36,9 @@ export class ParamFieldLineComponent implements OnChanges { @Output() private onValid: EventEmitter<void>; + @Output() + private inputChange: EventEmitter<void>; + /** * true si la valeur saisie est valide */ @@ -50,6 +53,7 @@ export class ParamFieldLineComponent implements OnChanges { private formulaireService: FormulaireService ) { this.onValid = new EventEmitter(); + this.inputChange = new EventEmitter(); } private get title(): string { @@ -261,9 +265,15 @@ export class ParamFieldLineComponent implements OnChanges { * réception d'un événement de NgParamInputComponent */ private onInputChange(event: any) { - if (event.action == "valid") { - this._isInputValid = event.value; - this.emitValidity(); + switch (event.action) { + case "valid": + this._isInputValid = event.value; + this.emitValidity(); + break; + + case "model": + this.inputChange.emit(); + break; } } -- GitLab