diff --git a/src/app/modules/colors/pages/add/add.component.ts b/src/app/modules/colors/pages/add/add.component.ts index 8fbe040..4b98990 100644 --- a/src/app/modules/colors/pages/add/add.component.ts +++ b/src/app/modules/colors/pages/add/add.component.ts @@ -20,7 +20,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Nom', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Un nom est requis'} ] @@ -30,7 +30,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Description', icon: 'text', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Une description est requise'} ] @@ -41,7 +41,7 @@ export class AddComponent extends ErrorHandlingComponent { icon: 'palette', type: 'color', defaultValue: "#ffffff", - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Une couleur est requise'} ] @@ -53,7 +53,7 @@ export class AddComponent extends ErrorHandlingComponent { min: 0, max: 100, defaultValue: 10, - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Le lustre de la couleur est requis'} ] @@ -86,7 +86,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Bannière', icon: 'domain', type: 'select', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Une bannière est requise'} ], diff --git a/src/app/modules/colors/pages/edit/edit.component.ts b/src/app/modules/colors/pages/edit/edit.component.ts index 31332cc..d61827c 100644 --- a/src/app/modules/colors/pages/edit/edit.component.ts +++ b/src/app/modules/colors/pages/edit/edit.component.ts @@ -30,7 +30,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Nom', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Un nom est requis'} ] @@ -40,7 +40,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Description', icon: 'text', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Une description est requise'} ] @@ -50,7 +50,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Couleur', icon: 'palette', type: 'color', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Une couleur est requise'} ] diff --git a/src/app/modules/company/pages/add/add.component.ts b/src/app/modules/company/pages/add/add.component.ts index 0579fe3..96a7243 100644 --- a/src/app/modules/company/pages/add/add.component.ts +++ b/src/app/modules/company/pages/add/add.component.ts @@ -1,6 +1,5 @@ import {Component} from '@angular/core' import {CompanyService} from '../../service/company.service' -import {Validators} from '@angular/forms' import {ErrorHandlingComponent} from '../../../shared/components/subscribing.component' import {FormField} from '../../../shared/components/entity-add/entity-add.component' import {ActivatedRoute, Router} from '@angular/router' @@ -18,7 +17,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Nom', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Un nom est requis'} ] diff --git a/src/app/modules/company/pages/edit/edit.component.ts b/src/app/modules/company/pages/edit/edit.component.ts index af7ebbf..2ea1b35 100644 --- a/src/app/modules/company/pages/edit/edit.component.ts +++ b/src/app/modules/company/pages/edit/edit.component.ts @@ -20,7 +20,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Nom', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Un nom est requis'} ] diff --git a/src/app/modules/material-type/pages/add/add.component.ts b/src/app/modules/material-type/pages/add/add.component.ts index 36b19e4..dd765a1 100644 --- a/src/app/modules/material-type/pages/add/add.component.ts +++ b/src/app/modules/material-type/pages/add/add.component.ts @@ -18,7 +18,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Nom', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: (errors) => errors.required, message: 'Un nom est requis'}, ] @@ -28,7 +28,8 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Préfixe', icon: 'label-variant', type: 'text', - validator: Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(3)]), + required: true, + validator: Validators.compose([Validators.minLength(3), Validators.maxLength(3)]), errorMessages: [ {conditionFn: (errors) => errors.required, message: 'Un préfixe est requis'}, { diff --git a/src/app/modules/material-type/pages/edit/edit.component.ts b/src/app/modules/material-type/pages/edit/edit.component.ts index c110e99..96a642c 100644 --- a/src/app/modules/material-type/pages/edit/edit.component.ts +++ b/src/app/modules/material-type/pages/edit/edit.component.ts @@ -20,7 +20,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Nom', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: (errors) => errors.required, message: 'Un nom est requis'}, ] @@ -30,7 +30,8 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Préfixe', icon: 'label-variant', type: 'text', - validator: Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(3)]), + required: true, + validator: Validators.compose([Validators.minLength(3), Validators.maxLength(3)]), errorMessages: [ {conditionFn: (errors) => errors.required, message: 'Un préfixe est requis'}, { diff --git a/src/app/modules/material/pages/add/add.component.ts b/src/app/modules/material/pages/add/add.component.ts index a895cb6..0faa0c4 100644 --- a/src/app/modules/material/pages/add/add.component.ts +++ b/src/app/modules/material/pages/add/add.component.ts @@ -20,7 +20,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Code', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: (errors) => errors.required, message: 'Un code est requis'} ] @@ -30,7 +30,8 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Quantité en inventaire', icon: 'beaker-outline', type: 'number', - validator: Validators.compose([Validators.required, Validators.min(0)]), + required: true, + validator: Validators.min(0), errorMessages: [ {conditionFn: errors => errors.required, message: 'Une quantité en inventaire est requise'}, {conditionFn: errors => errors.min, message: 'La quantité doit être supérieure ou égale à 0'} @@ -42,7 +43,7 @@ export class AddComponent extends ErrorHandlingComponent { label: 'Type de produit', icon: 'shape-outline', type: 'select', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Un type de produit est requis'} ], diff --git a/src/app/modules/material/pages/edit/edit.component.ts b/src/app/modules/material/pages/edit/edit.component.ts index 0395e5f..c8078aa 100644 --- a/src/app/modules/material/pages/edit/edit.component.ts +++ b/src/app/modules/material/pages/edit/edit.component.ts @@ -25,7 +25,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Code', icon: 'form-textbox', type: 'text', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: (errors) => errors.required, message: 'Un code est requis'} ] @@ -35,7 +35,8 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Quantité en inventaire', icon: 'beaker-outline', type: 'number', - validator: Validators.compose([Validators.required, Validators.min(0)]), + required: true, + validator: Validators.min(0), errorMessages: [ {conditionFn: errors => errors.required, message: 'Une quantité en inventaire est requise'}, {conditionFn: errors => errors.min, message: 'La quantité doit être supérieure ou égale à 0'} @@ -47,7 +48,7 @@ export class EditComponent extends ErrorHandlingComponent { label: 'Type de produit', icon: 'shape-outline', type: 'select', - validator: Validators.required, + required: true, errorMessages: [ {conditionFn: errors => errors.required, message: 'Un type de produit est requis'} ], diff --git a/src/app/modules/shared/components/entity-add/entity-add.component.html b/src/app/modules/shared/components/entity-add/entity-add.component.html index c153826..f353ea8 100644 --- a/src/app/modules/shared/components/entity-add/entity-add.component.html +++ b/src/app/modules/shared/components/entity-add/entity-add.component.html @@ -44,7 +44,12 @@ let-control="control" let-field="field"> {{field.label}} - + @@ -57,7 +62,7 @@ - + {{field.label}} @@ -67,7 +72,7 @@ let-control="control" let-field="field"> {{field.label}} - + {{option.label}} @@ -81,7 +86,11 @@ let-control="control" let-field="field"> {{field.label}} - + + diff --git a/src/app/modules/shared/components/entity-add/entity-add.component.ts b/src/app/modules/shared/components/entity-add/entity-add.component.ts index 3e11984..a3bde83 100644 --- a/src/app/modules/shared/components/entity-add/entity-add.component.ts +++ b/src/app/modules/shared/components/entity-add/entity-add.component.ts @@ -1,5 +1,5 @@ import {Component, EventEmitter, Input, Output} from '@angular/core' -import {FormBuilder, FormControl, FormGroup, ValidatorFn} from '@angular/forms' +import {FormBuilder, FormControl, FormGroup, ValidatorFn, Validators} from '@angular/forms' import {Observable} from 'rxjs' @Component({ @@ -23,7 +23,8 @@ export class EntityAddComponent { ngOnInit() { const formGroup = {} this.formFields.forEach(f => { - formGroup[f.name] = new FormControl(f.defaultValue, f.validator) + const validator = f.required ? Validators.compose([Validators.required, f.validator]) : f.validator + formGroup[f.name] = new FormControl(f.defaultValue, validator) }) this.form = this.formBuilder.group(formGroup) } @@ -47,6 +48,7 @@ export class FormField { public label?: string, public icon?: string, public type?: string, + public required?: boolean, public validator?: ValidatorFn, public errorMessages?: FormErrorMessage[], public valueFn?: (any) => any, diff --git a/src/app/modules/shared/components/entity-edit/entity-edit.component.html b/src/app/modules/shared/components/entity-edit/entity-edit.component.html index ce2ef3b..fcafab1 100644 --- a/src/app/modules/shared/components/entity-edit/entity-edit.component.html +++ b/src/app/modules/shared/components/entity-edit/entity-edit.component.html @@ -46,7 +46,12 @@ let-control="control" let-field="field"> {{field.label}} - + @@ -61,7 +66,7 @@ let-control="control" let-field="field"> {{field.label}} - + {{option.label}} @@ -75,7 +80,11 @@ let-control="control" let-field="field"> {{field.label}} - + +