From 346c731aae2cd3e162a20d03739baf5928df673c Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Fri, 26 Jun 2020 18:57:04 +0300 Subject: [PATCH] Fixed issue not passing DMP Extra Properties on clones and new Versions --- .../data/dmp/DataManagementPlanNewVersionModel.java | 11 +++++++++++ .../src/app/ui/dmp/clone/dmp-clone.component.ts | 2 ++ .../src/app/ui/dmp/editor/dmp-editor.model.ts | 5 ++++- .../src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts | 4 ++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java index 2d961107b..c3ec5855f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlanNewVersionModel.java @@ -7,6 +7,7 @@ import eu.eudat.models.data.funder.FunderDMPEditorModel; import eu.eudat.models.data.grant.GrantDMPEditorModel; import eu.eudat.models.data.project.ProjectDMPEditorModel; import eu.eudat.models.data.userinfo.UserInfo; +import net.minidev.json.JSONObject; import java.util.*; import java.util.stream.Collectors; @@ -31,6 +32,7 @@ public class DataManagementPlanNewVersionModel implements DataModel datasets; private ProjectDMPEditorModel project; private FunderDMPEditorModel funder; + private Map extraProperties; public UUID getId() { return id; @@ -144,6 +146,14 @@ public class DataManagementPlanNewVersionModel implements DataModel getExtraProperties() { + return extraProperties; + } + + public void setExtraProperties(Map extraProperties) { + this.extraProperties = extraProperties; + } + @Override public DataManagementPlanNewVersionModel fromDataModel(DMP entity) { return null; @@ -244,6 +254,7 @@ public class DataManagementPlanNewVersionModel implements DataModel x.toData()).collect(Collectors.toSet())); return entity; diff --git a/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts b/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts index e3ec8a6e6..a915fdb04 100644 --- a/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts +++ b/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts @@ -17,6 +17,7 @@ import { TranslateService } from '@ngx-translate/core'; import { Observable, of as observableOf } from 'rxjs'; import { map, takeUntil } from 'rxjs/operators'; import { DmpStatus } from '@app/core/common/enum/dmp-status'; +import { ExtraPropertiesFormModel } from '../editor/general-tab/extra-properties-form.model'; @Component({ @@ -60,6 +61,7 @@ export class DmpCloneComponent extends BaseComponent implements OnInit { this.dmp.grant = new GrantTabModel(); this.dmp.project = new ProjectFormModel(); this.dmp.funder = new FunderFormModel(); + this.dmp.extraProperties = new ExtraPropertiesFormModel(); this.dmp.fromModel(data); this.dmp.status = DmpStatus.Draft; this.formGroup = this.dmp.buildForm(); 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 df0079530..b67f9549d 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 @@ -21,6 +21,7 @@ import { BackendErrorValidator } from '@common/forms/validation/custom-validator import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model'; import { ValidationContext } from '@common/forms/validation/validation-context'; import { ExtraPropertiesFormModel } from './general-tab/extra-properties-form.model'; +import { isNullOrUndefined } from 'util'; export class DmpEditorModel { public id: string; @@ -71,7 +72,9 @@ export class DmpEditorModel { if (item.dynamicFields) { item.dynamicFields.map(x => this.dynamicFields.push(new DmpDynamicFieldEditorModel().fromModel(x))); } this.creator = item.creator; this.modified = new Date(item.modified); - this.extraProperties.fromModel(item.extraProperties); + if (!isNullOrUndefined(item.extraProperties)) { + this.extraProperties.fromModel(item.extraProperties); + } return this; } diff --git a/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts b/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts index 7edeacf8d..7541a8b68 100644 --- a/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts +++ b/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts @@ -15,6 +15,7 @@ import { BackendErrorValidator } from '@common/forms/validation/custom-validator import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model'; import { ValidationContext } from '@common/forms/validation/validation-context'; import { DmpStatus } from '@app/core/common/enum/dmp-status'; +import { ExtraPropertiesFormModel } from '../editor/general-tab/extra-properties-form.model'; export class DmpWizardEditorModel { public id: string; @@ -36,6 +37,7 @@ export class DmpWizardEditorModel { public definition: DmpProfileDefinition; public dynamicFields: Array = []; public validationErrorModel: ValidationErrorModel = new ValidationErrorModel(); + public extraProperties: ExtraPropertiesFormModel; fromModel(item: DmpModel): DmpWizardEditorModel { this.id = item.id; @@ -56,6 +58,7 @@ export class DmpWizardEditorModel { if (item.definition) { this.definition = item.definition; } if (item.dynamicFields) { item.dynamicFields.map(x => this.dynamicFields.push(new DmpDynamicFieldEditorModel().fromModel(x))); } this.creator = item.creator; + this.extraProperties.fromModel(item.extraProperties); return this; } @@ -78,6 +81,7 @@ export class DmpWizardEditorModel { researchers: [{ value: this.researchers, disabled: disabled }, context.getValidation('researchers').validators], profiles: [{ value: this.profiles, disabled: disabled }, context.getValidation('profiles').validators], associatedUsers: [{ value: this.associatedUsers, disabled: disabled }, context.getValidation('associatedUsers').validators], + extraProperties: this.extraProperties.buildForm(), }); const dynamicFields = new Array();