From bccb4460a72b65c0aca943a679cb3acb55a76d2a Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Mon, 9 Dec 2019 18:23:21 +0200 Subject: [PATCH] Fixes bug not having validators on adding new Researcher on a DMP. (Issue #207) --- .../eu/eudat/models/data/dmp/Researcher.java | 4 ++-- .../add-researcher.component.html | 2 +- .../add-researcher/add-researcher.component.ts | 4 ++++ .../add-researcher/add-researcher.model.ts | 17 ++++++++++++++--- .../editor/general-tab/general-tab.component.ts | 2 +- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java index 9cf079480..c610c92e6 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java @@ -74,10 +74,10 @@ public class Researcher implements DataModel
-
+
diff --git a/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts b/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts index 08d3940aa..7d677020e 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts @@ -37,4 +37,8 @@ export class AddResearcherComponent extends BaseComponent implements OnInit { addResearcher() { this.dialogRef.close(this.formGroup.value); } + + isFormValid() { + return this.formGroup.valid; + } } diff --git a/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.model.ts b/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.model.ts index 529a0bb3d..a5fa6df33 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.model.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.model.ts @@ -1,5 +1,8 @@ import { FormBuilder, FormGroup } from '@angular/forms'; import { ResearcherModel } from '../../../../core/model/researcher/researcher'; +import { ValidationContext } from "../../../../common/forms/validation/validation-context"; +import { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator"; +import { ValidationErrorModel } from "../../../../common/forms/validation/error-model/validation-error-model"; export class ResearcherEditorModel { public id: String; @@ -7,6 +10,7 @@ export class ResearcherEditorModel { public lastName: String; public uri: String; public email: String; + public validationErrorModel: ValidationErrorModel = new ValidationErrorModel(); fromModel(item: ResearcherModel): ResearcherEditorModel { this.id = item.id; @@ -17,13 +21,20 @@ export class ResearcherEditorModel { return this; } - buildForm(): FormGroup { + buildForm(context: ValidationContext = null, disabled: boolean = false): FormGroup { + if (context == null) { context = this.createValidationContext(); } const formGroup = new FormBuilder().group({ - firstName: [this.name], - lastName: [this.lastName] + firstName: [{ value: this.name, disabled: disabled }, context.getValidation('firstName').validators], + lastName: [{ value: this.lastName, disabled: disabled }, context.getValidation('lastName').validators] }); return formGroup; } + createValidationContext(): ValidationContext { + const baseContext: ValidationContext = new ValidationContext(); + baseContext.validation.push({ key: 'firstName', validators: [BackendErrorValidator(this.validationErrorModel, 'firstName')] }); + baseContext.validation.push({ key: 'lastName', validators: [BackendErrorValidator(this.validationErrorModel, 'lastName')] }); + return baseContext; + } } diff --git a/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts b/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts index dff382cfd..28621b809 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts @@ -179,7 +179,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit { name: fullName, id: "dmp:" + fullName, status: 0, - tag: null, + tag: "Internal", }); } });