Skip to content
Snippets Groups Projects
Commit 3234ec9b authored by jojohoch's avatar jojohoch
Browse files

[player] Refactor validation messages

* Fix scrollbar bug
* Remove using of timeout method
* Add Material fonts
parent 16fec28e
No related branches found
No related tags found
No related merge requests found
<app-element-overlay <ng-container *ngTemplateOutlet="elementModel.dynamicPositioning ? dynamicElement : staticElement"></ng-container>
[elementModel]="elementModel"
[parentForm]="elementForm" <ng-template #staticElement>
[parentArrayIndex]="parentArrayIndex" <app-element-overlay
[isInputElement]="isInputElement"> [style.display]="'block'"
</app-element-overlay> [style.overflow]="'auto'"
<app-validation-message *ngIf="isInputElement && elementForm" [style.width.px]="elementModel.width"
[style.height.px]="elementModel.height"
[elementModel]="elementModel"
[parentForm]="elementForm"
[parentArrayIndex]="parentArrayIndex"
[isInputElement]="isInputElement">
</app-element-overlay>
</ng-template>
<ng-template #dynamicElement>
<app-element-overlay
[elementModel]="elementModel"
[parentForm]="elementForm"
[parentArrayIndex]="parentArrayIndex"
[isInputElement]="isInputElement">
</app-element-overlay>
</ng-template>
<app-validation-message *ngIf="isInputElement"
[ngClass]="{'dynamic-validation-messages' : elementModel.dynamicPositioning}" [ngClass]="{'dynamic-validation-messages' : elementModel.dynamicPositioning}"
[parentForm]="elementForm" [parentForm]="elementForm"
[elementModel]="elementModel"> [elementModel]="elementModel">
......
...@@ -3,9 +3,6 @@ ...@@ -3,9 +3,6 @@
<ng-template #staticElements> <ng-template #staticElements>
<ng-container *ngFor="let element of section.elements; let i = index"> <ng-container *ngFor="let element of section.elements; let i = index">
<app-element <app-element
[style.overflow]="'auto'"
[style.width.px]="element.width"
[style.height.px]="element.height"
[style.position]="'absolute'" [style.position]="'absolute'"
[style.left.px]="element.xPosition" [style.left.px]="element.xPosition"
[style.top.px]="element.yPosition" [style.top.px]="element.yPosition"
......
<ng-container *ngIf="formElementControl && formElementControl.touched"> <div *ngIf="formElementControl?.touched" class="mat-typography">
<mat-error *ngIf="formElementControl.errors?.required && elementModel.type !== 'checkbox'" <mat-error *ngIf="formElementControl.errors?.required && elementModel.type !== 'checkbox'"
[ngClass]="{'dynamic-validation-message' : elementModel.dynamicPositioning}" > [ngClass]="{'dynamic-validation-message' : elementModel.dynamicPositioning}" >
{{requiredMessage}} {{requiredMessage}}
...@@ -19,4 +19,4 @@ ...@@ -19,4 +19,4 @@
[ngClass]="{'dynamic-validation-message' : elementModel.dynamicPositioning}" > [ngClass]="{'dynamic-validation-message' : elementModel.dynamicPositioning}" >
{{patternMessage}} {{patternMessage}}
</mat-error> </mat-error>
</ng-container> </div>
import { import {
AfterViewInit, Component, Input, OnInit Component, Input, OnInit
} from '@angular/core'; } from '@angular/core';
import { import {
FormControl, FormGroup, ValidatorFn, Validators FormControl, FormGroup, ValidatorFn, Validators
...@@ -17,7 +17,7 @@ import { FormService } from '../../../../../common/form.service'; ...@@ -17,7 +17,7 @@ import { FormService } from '../../../../../common/form.service';
styleUrls: ['./validation-message.component.css'] styleUrls: ['./validation-message.component.css']
}) })
export class ValidationMessageComponent implements OnInit, AfterViewInit { export class ValidationMessageComponent implements OnInit {
@Input() elementModel!: UnitUIElement; @Input() elementModel!: UnitUIElement;
@Input() parentForm!: FormGroup; @Input() parentForm!: FormGroup;
formElementControl!: FormControl; formElementControl!: FormControl;
...@@ -32,6 +32,12 @@ export class ValidationMessageComponent implements OnInit, AfterViewInit { ...@@ -32,6 +32,12 @@ export class ValidationMessageComponent implements OnInit, AfterViewInit {
ngOnInit(): void { ngOnInit(): void {
this.setErrorMessages(); this.setErrorMessages();
this.formElementControl = this.parentForm.controls[this.elementModel.id] as FormControl;
this.formService.setValidators({
id: this.elementModel.id,
validators: this.validators,
formGroup: this.parentForm
});
} }
private get validators(): ValidatorFn[] { private get validators(): ValidatorFn[] {
...@@ -71,16 +77,4 @@ export class ValidationMessageComponent implements OnInit, AfterViewInit { ...@@ -71,16 +77,4 @@ export class ValidationMessageComponent implements OnInit, AfterViewInit {
this.patternMessage = (this.elementModel as TextFieldElement).patternWarnMessage || this.patternMessage = (this.elementModel as TextFieldElement).patternWarnMessage ||
this.translateService.instant('validators.wrongPattern'); this.translateService.instant('validators.wrongPattern');
} }
ngAfterViewInit(): void {
// TODO: Remove timeout
setTimeout(() => {
this.formElementControl = this.parentForm.controls[this.elementModel.id] as FormControl;
this.formService.setValidators({
id: this.elementModel.id,
validators: this.validators,
formGroup: this.parentForm
});
});
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment