diff --git a/src/app/components/field-set/field-set.component.html b/src/app/components/field-set/field-set.component.html index cd33a4983f88f4856124c8d689120633478c725d..50c2405b0c634e5a09900bec421bfe3a95bbf49b 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 4626446278cd5d8a8fce6d640dd4da9e8099aeee..a192bd1d7d11fe21f5ab1242f62460032111b3d7 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 1546960415c226045779381f33adac85c5996c4f..9ba68f2347d8b34feee3203451948883f8be36ff 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 26ac2f5f1ca3a1f15857b18c9719ff613ea6a902..e091ef408152e70017bb85f9d237d3c3e8d16785 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 47e2a2e53aeb9f5bd4f5702cc34821eb0a9dee44..058792c2a910c38e9b9f77ea7e5593abd13c023b 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 3e0d053222dd83968d1b7c204ed02c0db1b1f981..2ed9990ca1d2555d624f5311468f2fa3da7ecd0d 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 5ec1d3de026458141c26c41424b4188ab5fbe3dd..ebee96d49be32e9fbf2a3477fe79d79fcd278092 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; } }