diff --git a/dmp-frontend/src/app/core/model/grant/grant-listing.ts b/dmp-frontend/src/app/core/model/grant/grant-listing.ts index f4657d28e..0334a1012 100644 --- a/dmp-frontend/src/app/core/model/grant/grant-listing.ts +++ b/dmp-frontend/src/app/core/model/grant/grant-listing.ts @@ -1,6 +1,7 @@ import { UrlListingItem } from "../../../library/url-listing/url-listing-item"; import { GrantType } from '../../common/enum/grant-type'; import { Status } from '../../common/enum/Status'; +import { FunderModel } from "../funder/funder"; export interface GrantListingModel { id?: string; @@ -14,6 +15,7 @@ export interface GrantListingModel { endDate?: Date; description?: String; contentUrl?: string; + funder?: FunderModel; files?: ContentFile[]; dmps?: UrlListingItem[]; } diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html index 35cc45433..29a3a648c 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.html @@ -49,7 +49,7 @@ work_outline {{ 'DMP-LISTING.COLUMNS.GRANT' | translate }} - + diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts index 356dc43b4..36ad282ed 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts @@ -111,7 +111,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC this.dmp = new DmpEditorModel(); this.dmp.grant = new GrantTabModel(); this.dmp.project = new ProjectFormModel(); - this.dmp.funder = new FunderFormModel(); + this.dmp.grant.funder = new FunderFormModel(); this.dmp.fromModel(data); this.formGroup = this.dmp.buildForm(); //this.registerFormEventsForDmpProfile(this.dmp.definition); @@ -148,7 +148,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC this.dmp = new DmpEditorModel(); this.dmp.grant = new GrantTabModel(); this.dmp.project = new ProjectFormModel(); - this.dmp.funder = new FunderFormModel(); + this.dmp.grant.funder = new FunderFormModel(); this.dmp.fromModel(data); this.formGroup = this.dmp.buildForm(); //this.registerFormEventsForDmpProfile(this.dmp.definition); @@ -173,7 +173,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC this.dmp = new DmpEditorModel(); this.dmp.grant = new GrantTabModel(); this.dmp.project = new ProjectFormModel(); - this.dmp.funder = new FunderFormModel(); + this.dmp.grant.funder = new FunderFormModel(); this.formGroup = this.dmp.buildForm(); this.registerFormEventsForNewItem(); if (this.isAuthenticated) { @@ -238,7 +238,8 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC } public isFormValid() { - return this.formGroup.get('label').valid && this.formGroup.get('profiles').valid && this.formGroup.get('grant').valid; + return this.formGroup.get('label').valid && this.formGroup.get('profiles').valid && + (this.formGroup.get('grant').get('label').valid || this.formGroup.get('grant').get('existGrant').valid); } onSubmit(showAddDatasetDialog?: boolean): void { diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts index cd7bf98f8..7bccf2cac 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts @@ -34,7 +34,7 @@ export class DmpEditorModel { public description: String; public grant: GrantTabModel; public project: ProjectFormModel; - public funder: FunderFormModel; + // public funder: FunderFormModel; public organisations: OrganizationModel[] = []; public researchers: ResearcherModel[] = []; public profiles: DmpProfile[] = []; @@ -57,7 +57,7 @@ export class DmpEditorModel { this.description = item.description; this.grant.fromModel(item.grant); this.project.fromModel(item.project); - this.funder.fromModel(item.funder); + // this.funder.fromModel(item.funder); this.organisations = item.organisations; this.researchers = item.researchers; this.profiles = item.profiles; @@ -84,7 +84,7 @@ export class DmpEditorModel { description: [{ value: this.description, disabled: disabled }], grant: this.grant.buildForm(), project: this.project.buildForm(), - funder: this.funder.buildForm(), + // funder: this.funder.buildForm(), organisations: [{ value: this.organisations, disabled: disabled }, context.getValidation('organisations').validators], researchers: [{ value: this.researchers, disabled: disabled }, context.getValidation('researchers').validators], profiles: [{ value: this.profiles, disabled: disabled }, context.getValidation('profiles').validators], @@ -121,7 +121,7 @@ export class DmpEditorModel { baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'description')] }); baseContext.validation.push({ key: 'grant', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'grant')] }); baseContext.validation.push({ key: 'project', validators: [BackendErrorValidator(this.validationErrorModel, 'project')] }); - baseContext.validation.push({ key: 'funder', validators: [BackendErrorValidator(this.validationErrorModel, 'funder')] }); + // baseContext.validation.push({ key: 'funder', validators: [BackendErrorValidator(this.validationErrorModel, 'funder')] }); baseContext.validation.push({ key: 'organisations', validators: [BackendErrorValidator(this.validationErrorModel, 'organisations')] }); baseContext.validation.push({ key: 'researchers', validators: [BackendErrorValidator(this.validationErrorModel, 'researchers')] }); baseContext.validation.push({ key: 'profiles', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'profiles')] }); diff --git a/dmp-frontend/src/app/ui/dmp/editor/grant-tab/funder-form-model.ts b/dmp-frontend/src/app/ui/dmp/editor/grant-tab/funder-form-model.ts index 1108dc7ce..9b0132635 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/grant-tab/funder-form-model.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/grant-tab/funder-form-model.ts @@ -10,7 +10,6 @@ export class FunderFormModel { public id: string; public label?: string; public status: Status = Status.Active; - public definition: String; public existFunder: FunderModel; public validationErrorModel: ValidationErrorModel = new ValidationErrorModel(); @@ -27,7 +26,6 @@ export class FunderFormModel { id: [{ value: this.id, disabled: disabled }, context.getValidation('id').validators], label: [{ value: this.label, disabled: disabled }, context.getValidation('label').validators], status: [{ value: this.status, disabled: disabled }, context.getValidation('status').validators], - definition: [{ value: this.definition, disabled: disabled }, context.getValidation('definition').validators], existFunder: [{ value: this.existFunder, disabled: disabled }, context.getValidation('existFunder').validators], }); return formGroup; @@ -38,7 +36,6 @@ export class FunderFormModel { baseContext.validation.push({ key: 'id', validators: [] }); baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'label')] }); baseContext.validation.push({ key: 'status', validators: [] }); - baseContext.validation.push({ key: 'definition', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'definition')] }); baseContext.validation.push({ key: 'existFunder', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'existFunder')] }); return baseContext; } diff --git a/dmp-frontend/src/app/ui/dmp/editor/grant-tab/grant-tab-model.ts b/dmp-frontend/src/app/ui/dmp/editor/grant-tab/grant-tab-model.ts index 08c789c9d..48c41868e 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/grant-tab/grant-tab-model.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/grant-tab/grant-tab-model.ts @@ -1,22 +1,24 @@ import { Status } from "../../../../core/common/enum/Status"; import { GrantListingModel } from "../../../../core/model/grant/grant-listing"; import { ValidationErrorModel } from "../../../../common/forms/validation/error-model/validation-error-model"; -import { GrantEditorWizardModel } from "../../../quick-wizard/grant-editor/grant-editor-wizard-model"; import { ValidationContext } from "../../../../common/forms/validation/validation-context"; import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator"; import { ValidJsonValidator } from "../../../../library/auto-complete/auto-complete-custom-validator"; +import { FunderFormModel } from "./funder-form-model"; export class GrantTabModel { public id: string; public label?: string; public status: Status = Status.Active; public description: String; + public funder: FunderFormModel; public existGrant: GrantListingModel; public validationErrorModel: ValidationErrorModel = new ValidationErrorModel(); fromModel(item: GrantListingModel): GrantTabModel { + this.funder.fromModel(item.funder); this.existGrant = item; return this; } @@ -29,6 +31,7 @@ export class GrantTabModel { label: [{ value: this.label, disabled: disabled }, context.getValidation('label').validators], status: [{ value: this.status, disabled: disabled }, context.getValidation('status').validators], description: [{ value: this.description, disabled: disabled }, context.getValidation('description').validators], + funder: this.funder.buildForm(), existGrant: [{ value: this.existGrant, disabled: disabled }, context.getValidation('existGrant').validators], }); return formGroup; @@ -40,6 +43,7 @@ export class GrantTabModel { baseContext.validation.push({ key: 'label', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'label')] }); baseContext.validation.push({ key: 'status', validators: [] }); baseContext.validation.push({ key: 'description', validators: [Validators.required, BackendErrorValidator(this.validationErrorModel, 'description')] }); + baseContext.validation.push({ key: 'funder', validators: [BackendErrorValidator(this.validationErrorModel, 'funder')] }); baseContext.validation.push({ key: 'existGrant', validators: [Validators.required, ValidJsonValidator, BackendErrorValidator(this.validationErrorModel, 'existGrant')] }); return baseContext; }