From cb6d46256cf3c713c1f7d06f1d3eb6006431e351 Mon Sep 17 00:00:00 2001 From: annampak Date: Mon, 8 Jan 2018 13:50:43 +0200 Subject: [PATCH] required validation --- .../dynamic-form-field.component.html | 5 ++++- .../dynamic-form-field.component.ts | 3 +++ .../dynamic-form-composite-field.ts | 2 +- .../src/app/form/dynamic-form.component.ts | 3 +++ dmp-frontend/src/app/models/Field.ts | 16 +++++++++++++--- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.html b/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.html index 6bdda7708..54926f19c 100644 --- a/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.html +++ b/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.html @@ -52,7 +52,10 @@
-
The field "{{field.label}}" is required
+ + The field "{{field.title}}" required + +
The field {{field.label}} must match a regular expression {{field.regex}}
The field {{field.label}} custom Validation
diff --git a/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts b/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts index a5742847d..c3afaa778 100644 --- a/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts +++ b/dmp-frontend/src/app/form/dynamic-fields/dynamic-form-field.component.ts @@ -31,6 +31,9 @@ export class DynamicFormFieldComponent { ngOnChanges(changeRecord) { } + ngOnInit(){ + debugger; + } clearInput(){ debugger; diff --git a/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts b/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts index 33d8dcf45..425e49d49 100644 --- a/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts +++ b/dmp-frontend/src/app/form/dynamic-form-composite-field/dynamic-form-composite-field.ts @@ -22,13 +22,13 @@ export class DynamicFormCompositeFieldComponent implements OnInit { constructor(private visibilityRulesService: VisibilityRulesService) { } ngOnInit() { - debugger; console.log(this.form); if (this.compositeField.hasCommentField == true) { let newfield: Field = new Field(); newfield.id = 'comment_' + this.compositeField.id; newfield.data = {label: "Comments"}; newfield.viewStyle = {renderStyle: 'freetext', cssClass: ''}; + newfield.validations = ["None"] this.compositeField.fields.push(newfield); (this.form.get("fields")).push(newfield.buildForm()); diff --git a/dmp-frontend/src/app/form/dynamic-form.component.ts b/dmp-frontend/src/app/form/dynamic-form.component.ts index 329245b01..ec0debfd0 100644 --- a/dmp-frontend/src/app/form/dynamic-form.component.ts +++ b/dmp-frontend/src/app/form/dynamic-form.component.ts @@ -89,6 +89,9 @@ export class DynamicFormComponent implements OnInit { submit() { //this.serverService.updateDataset(this.datasetId, this.form.value).subscribe() } + save(){ + debugger; + } toggleSidebar() { this.visibleSidebar = !this.visibleSidebar; diff --git a/dmp-frontend/src/app/models/Field.ts b/dmp-frontend/src/app/models/Field.ts index c545dd5c2..e7379dab3 100644 --- a/dmp-frontend/src/app/models/Field.ts +++ b/dmp-frontend/src/app/models/Field.ts @@ -1,5 +1,5 @@ import { BaseModel } from './BaseModel'; -import { FormGroup } from '@angular/forms'; +import { FormGroup, Validators } from '@angular/forms'; import { FormGenerator } from './interfaces/FormGenerator'; import { JsonSerializer } from '../utilities/JsonSerializer'; import { Serializable } from './interfaces/Serializable'; @@ -21,7 +21,7 @@ export class Field extends BaseModel implements Serializable, FormGenerat public multiplicity: Multiplicity; public multiplicityItems: Array = new Array(); public data: any; - public validations: Array; + public validations: Array;//Array fromJSONObject(item: any): Field { this.id = item.id; @@ -43,12 +43,22 @@ export class Field extends BaseModel implements Serializable, FormGenerat return this; } + + + buildForm(): FormGroup { + let validationRequired = "false"; + if(this.validations) + this.validations.forEach(validation => { + if (validation == "REQUIRED") + {validationRequired = "true";} + }); + let formGroup = this.formBuilder.group({ id: [this.id], data:[this.data], /* title: [this.title], */ - value: [this.value]/* , + value: [this.value, validationRequired == "true"? Validators.required:null]/* , description: [this.description], extendedDescription:[this.extendedDescription], viewStyle: [this.viewStyle],