Merge branch 'dmp-refactoring' of https://code-repo.d4science.org/MaDgiK-CITE/argos into dmp-refactoring
This commit is contained in:
commit
6fb094f23e
|
@ -51,12 +51,12 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.opencdmp</groupId>
|
<groupId>org.opencdmp</groupId>
|
||||||
<artifactId>repositorydepositbase</artifactId>
|
<artifactId>repositorydepositbase</artifactId>
|
||||||
<version>2.0.13</version>
|
<version>2.0.14</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.opencdmp</groupId>
|
<groupId>org.opencdmp</groupId>
|
||||||
<artifactId>common-models</artifactId>
|
<artifactId>common-models</artifactId>
|
||||||
<version>0.0.16</version>
|
<version>0.0.17</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>gr.cite</groupId>
|
<groupId>gr.cite</groupId>
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.opencdmp</groupId>
|
<groupId>org.opencdmp</groupId>
|
||||||
<artifactId>file-transformer-base</artifactId>
|
<artifactId>file-transformer-base</artifactId>
|
||||||
<version>0.0.20</version>
|
<version>0.0.21</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>gr.cite</groupId>
|
<groupId>gr.cite</groupId>
|
||||||
|
|
|
@ -2,7 +2,12 @@ package org.opencdmp.model.builder.commonmodels.dmp;
|
||||||
|
|
||||||
import org.opencdmp.authorization.AuthorizationFlags;
|
import org.opencdmp.authorization.AuthorizationFlags;
|
||||||
import org.opencdmp.commonmodels.models.dmp.DmpBlueprintValueModel;
|
import org.opencdmp.commonmodels.models.dmp.DmpBlueprintValueModel;
|
||||||
|
import org.opencdmp.commons.enums.DmpBlueprintExtraFieldDataType;
|
||||||
|
import org.opencdmp.commons.enums.DmpBlueprintFieldCategory;
|
||||||
import org.opencdmp.commons.types.dmp.DmpBlueprintValueEntity;
|
import org.opencdmp.commons.types.dmp.DmpBlueprintValueEntity;
|
||||||
|
import org.opencdmp.commons.types.dmpblueprint.DefinitionEntity;
|
||||||
|
import org.opencdmp.commons.types.dmpblueprint.ExtraFieldEntity;
|
||||||
|
import org.opencdmp.commons.types.dmpblueprint.FieldEntity;
|
||||||
import org.opencdmp.convention.ConventionService;
|
import org.opencdmp.convention.ConventionService;
|
||||||
import org.opencdmp.model.builder.commonmodels.BaseCommonModelBuilder;
|
import org.opencdmp.model.builder.commonmodels.BaseCommonModelBuilder;
|
||||||
import org.opencdmp.model.builder.commonmodels.CommonModelBuilderItemResponse;
|
import org.opencdmp.model.builder.commonmodels.CommonModelBuilderItemResponse;
|
||||||
|
@ -23,6 +28,8 @@ import java.util.Optional;
|
||||||
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
public class DmpBlueprintValueCommonModelBuilder extends BaseCommonModelBuilder<DmpBlueprintValueModel, DmpBlueprintValueEntity> {
|
public class DmpBlueprintValueCommonModelBuilder extends BaseCommonModelBuilder<DmpBlueprintValueModel, DmpBlueprintValueEntity> {
|
||||||
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
||||||
|
private DefinitionEntity definition;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public DmpBlueprintValueCommonModelBuilder(
|
public DmpBlueprintValueCommonModelBuilder(
|
||||||
ConventionService conventionService
|
ConventionService conventionService
|
||||||
|
@ -35,6 +42,11 @@ public class DmpBlueprintValueCommonModelBuilder extends BaseCommonModelBuilder<
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DmpBlueprintValueCommonModelBuilder withDefinition(DefinitionEntity definition) {
|
||||||
|
this.definition = definition;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<CommonModelBuilderItemResponse<DmpBlueprintValueModel, DmpBlueprintValueEntity>> buildInternal(List<DmpBlueprintValueEntity> data) throws MyApplicationException {
|
protected List<CommonModelBuilderItemResponse<DmpBlueprintValueModel, DmpBlueprintValueEntity>> buildInternal(List<DmpBlueprintValueEntity> data) throws MyApplicationException {
|
||||||
this.logger.debug("building for {}", Optional.ofNullable(data).map(List::size).orElse(0));
|
this.logger.debug("building for {}", Optional.ofNullable(data).map(List::size).orElse(0));
|
||||||
|
@ -42,11 +54,22 @@ public class DmpBlueprintValueCommonModelBuilder extends BaseCommonModelBuilder<
|
||||||
|
|
||||||
List<CommonModelBuilderItemResponse<DmpBlueprintValueModel, DmpBlueprintValueEntity>> models = new ArrayList<>();
|
List<CommonModelBuilderItemResponse<DmpBlueprintValueModel, DmpBlueprintValueEntity>> models = new ArrayList<>();
|
||||||
for (DmpBlueprintValueEntity d : data) {
|
for (DmpBlueprintValueEntity d : data) {
|
||||||
|
FieldEntity fieldEntity = this.definition != null ? this.definition.getFieldById(d.getFieldId()).stream().findFirst().orElse(null) : null;
|
||||||
|
|
||||||
|
if (fieldEntity != null && fieldEntity.getCategory().equals(DmpBlueprintFieldCategory.Extra)) {
|
||||||
|
ExtraFieldEntity extraFieldEntity = (ExtraFieldEntity) fieldEntity;
|
||||||
DmpBlueprintValueModel m = new DmpBlueprintValueModel();
|
DmpBlueprintValueModel m = new DmpBlueprintValueModel();
|
||||||
m.setValue(d.getValue());
|
|
||||||
m.setFieldId(d.getFieldId());
|
m.setFieldId(d.getFieldId());
|
||||||
|
if (extraFieldEntity != null && DmpBlueprintExtraFieldDataType.isDateType(extraFieldEntity.getType())){
|
||||||
|
m.setDateValue(d.getDateValue());
|
||||||
|
} else if (extraFieldEntity != null && DmpBlueprintExtraFieldDataType.isNumberType(extraFieldEntity.getType())){
|
||||||
|
m.setNumberValue(d.getNumberValue());
|
||||||
|
} else {
|
||||||
|
m.setValue(d.getValue());
|
||||||
|
}
|
||||||
models.add(new CommonModelBuilderItemResponse<>(m, d));
|
models.add(new CommonModelBuilderItemResponse<>(m, d));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.logger.debug("build {} items", Optional.of(models).map(List::size).orElse(0));
|
this.logger.debug("build {} items", Optional.of(models).map(List::size).orElse(0));
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,10 @@ import org.opencdmp.commonmodels.models.dmp.DmpModel;
|
||||||
import org.opencdmp.commonmodels.models.dmpblueprint.DmpBlueprintModel;
|
import org.opencdmp.commonmodels.models.dmpblueprint.DmpBlueprintModel;
|
||||||
import org.opencdmp.commonmodels.models.dmpreference.DmpReferenceModel;
|
import org.opencdmp.commonmodels.models.dmpreference.DmpReferenceModel;
|
||||||
import org.opencdmp.commons.JsonHandlingService;
|
import org.opencdmp.commons.JsonHandlingService;
|
||||||
|
import org.opencdmp.commons.XmlHandlingService;
|
||||||
import org.opencdmp.commons.enums.IsActive;
|
import org.opencdmp.commons.enums.IsActive;
|
||||||
import org.opencdmp.commons.types.dmp.DmpPropertiesEntity;
|
import org.opencdmp.commons.types.dmp.DmpPropertiesEntity;
|
||||||
|
import org.opencdmp.commons.types.dmpblueprint.DefinitionEntity;
|
||||||
import org.opencdmp.convention.ConventionService;
|
import org.opencdmp.convention.ConventionService;
|
||||||
import org.opencdmp.data.*;
|
import org.opencdmp.data.*;
|
||||||
import org.opencdmp.model.DmpUser;
|
import org.opencdmp.model.DmpUser;
|
||||||
|
@ -30,6 +32,7 @@ import org.opencdmp.model.builder.commonmodels.dmpblueprint.DmpBlueprintCommonMo
|
||||||
import org.opencdmp.model.builder.commonmodels.dmpreference.DmpReferenceCommonModelBuilder;
|
import org.opencdmp.model.builder.commonmodels.dmpreference.DmpReferenceCommonModelBuilder;
|
||||||
import org.opencdmp.model.description.Description;
|
import org.opencdmp.model.description.Description;
|
||||||
import org.opencdmp.model.dmp.Dmp;
|
import org.opencdmp.model.dmp.Dmp;
|
||||||
|
import org.opencdmp.model.dmpblueprint.DmpBlueprint;
|
||||||
import org.opencdmp.model.dmpreference.DmpReference;
|
import org.opencdmp.model.dmpreference.DmpReference;
|
||||||
import org.opencdmp.query.*;
|
import org.opencdmp.query.*;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -49,6 +52,7 @@ public class DmpCommonModelBuilder extends BaseCommonModelBuilder<DmpModel, DmpE
|
||||||
|
|
||||||
private final BuilderFactory builderFactory;
|
private final BuilderFactory builderFactory;
|
||||||
private final JsonHandlingService jsonHandlingService;
|
private final JsonHandlingService jsonHandlingService;
|
||||||
|
private final XmlHandlingService xmlHandlingService;
|
||||||
private FileEnvelopeModel pdfFile;
|
private FileEnvelopeModel pdfFile;
|
||||||
private FileEnvelopeModel rdaJsonFile;
|
private FileEnvelopeModel rdaJsonFile;
|
||||||
private String repositoryId;
|
private String repositoryId;
|
||||||
|
@ -58,11 +62,12 @@ public class DmpCommonModelBuilder extends BaseCommonModelBuilder<DmpModel, DmpE
|
||||||
@Autowired
|
@Autowired
|
||||||
public DmpCommonModelBuilder(ConventionService conventionService,
|
public DmpCommonModelBuilder(ConventionService conventionService,
|
||||||
QueryFactory queryFactory,
|
QueryFactory queryFactory,
|
||||||
BuilderFactory builderFactory, JsonHandlingService jsonHandlingService) {
|
BuilderFactory builderFactory, JsonHandlingService jsonHandlingService, XmlHandlingService xmlHandlingService) {
|
||||||
super(conventionService, new LoggerService(LoggerFactory.getLogger(DmpCommonModelBuilder.class)));
|
super(conventionService, new LoggerService(LoggerFactory.getLogger(DmpCommonModelBuilder.class)));
|
||||||
this.queryFactory = queryFactory;
|
this.queryFactory = queryFactory;
|
||||||
this.builderFactory = builderFactory;
|
this.builderFactory = builderFactory;
|
||||||
this.jsonHandlingService = jsonHandlingService;
|
this.jsonHandlingService = jsonHandlingService;
|
||||||
|
this.xmlHandlingService = xmlHandlingService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DmpCommonModelBuilder authorize(EnumSet<AuthorizationFlags> values) {
|
public DmpCommonModelBuilder authorize(EnumSet<AuthorizationFlags> values) {
|
||||||
|
@ -110,6 +115,7 @@ public class DmpCommonModelBuilder extends BaseCommonModelBuilder<DmpModel, DmpE
|
||||||
Map<UUID, List<EntityDoiModel>> entityDois = this.collectDmpEntityDois(data);
|
Map<UUID, List<EntityDoiModel>> entityDois = this.collectDmpEntityDois(data);
|
||||||
Map<UUID, UserModel> creators = this.collectCreators(data);
|
Map<UUID, UserModel> creators = this.collectCreators(data);
|
||||||
Map<UUID, DmpBlueprintModel> dmpBlueprints = this.collectDmpBlueprints(data);
|
Map<UUID, DmpBlueprintModel> dmpBlueprints = this.collectDmpBlueprints(data);
|
||||||
|
Map<UUID, DefinitionEntity> definitionEntityMap = this.collectDmpBlueprintDefinitions(data);
|
||||||
|
|
||||||
for (DmpEntity d : data) {
|
for (DmpEntity d : data) {
|
||||||
DmpModel m = new DmpModel();
|
DmpModel m = new DmpModel();
|
||||||
|
@ -131,7 +137,7 @@ public class DmpCommonModelBuilder extends BaseCommonModelBuilder<DmpModel, DmpE
|
||||||
if (d.getProperties() != null){
|
if (d.getProperties() != null){
|
||||||
//TODO Update with the new logic of property definition
|
//TODO Update with the new logic of property definition
|
||||||
DmpPropertiesEntity propertyDefinition = this.jsonHandlingService.fromJsonSafe(DmpPropertiesEntity.class, d.getProperties());
|
DmpPropertiesEntity propertyDefinition = this.jsonHandlingService.fromJsonSafe(DmpPropertiesEntity.class, d.getProperties());
|
||||||
m.setProperties(this.builderFactory.builder(DmpPropertiesCommonModelBuilder.class).authorize(this.authorize).build(propertyDefinition));
|
m.setProperties(this.builderFactory.builder(DmpPropertiesCommonModelBuilder.class).withDefinition(definitionEntityMap != null ? definitionEntityMap.getOrDefault(d.getBlueprintId(), null) : null).authorize(this.authorize).build(propertyDefinition));
|
||||||
}
|
}
|
||||||
m.setPublicAfter(d.getPublicAfter());
|
m.setPublicAfter(d.getPublicAfter());
|
||||||
m.setUpdatedAt(d.getUpdatedAt());
|
m.setUpdatedAt(d.getUpdatedAt());
|
||||||
|
@ -237,4 +243,20 @@ public class DmpCommonModelBuilder extends BaseCommonModelBuilder<DmpModel, DmpE
|
||||||
return itemMap;
|
return itemMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<UUID, DefinitionEntity> collectDmpBlueprintDefinitions(List<DmpEntity> data) throws MyApplicationException {
|
||||||
|
if (data.isEmpty())
|
||||||
|
return null;
|
||||||
|
this.logger.debug("checking related - {}", DefinitionEntity.class.getSimpleName());
|
||||||
|
|
||||||
|
Map<java.util.UUID, DefinitionEntity> itemMap = new HashMap<>();
|
||||||
|
DmpBlueprintQuery q = this.queryFactory.query(DmpBlueprintQuery.class).disableTracking().authorize(this.authorize).ids(data.stream().map(DmpEntity::getBlueprintId).distinct().collect(Collectors.toList()));
|
||||||
|
List<DmpBlueprintEntity> items = q.collectAs(new BaseFieldSet().ensure(DmpBlueprint._id).ensure(DmpBlueprint._definition));
|
||||||
|
for (DmpBlueprintEntity item : items){
|
||||||
|
DefinitionEntity definition = this.xmlHandlingService.fromXmlSafe(DefinitionEntity.class, item.getDefinition());
|
||||||
|
itemMap.put(item.getId(), definition);
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemMap;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.opencdmp.model.builder.commonmodels.dmp;
|
||||||
import org.opencdmp.authorization.AuthorizationFlags;
|
import org.opencdmp.authorization.AuthorizationFlags;
|
||||||
import org.opencdmp.commonmodels.models.dmp.DmpPropertiesModel;
|
import org.opencdmp.commonmodels.models.dmp.DmpPropertiesModel;
|
||||||
import org.opencdmp.commons.types.dmp.DmpPropertiesEntity;
|
import org.opencdmp.commons.types.dmp.DmpPropertiesEntity;
|
||||||
|
import org.opencdmp.commons.types.dmpblueprint.DefinitionEntity;
|
||||||
import org.opencdmp.convention.ConventionService;
|
import org.opencdmp.convention.ConventionService;
|
||||||
import org.opencdmp.model.builder.commonmodels.BaseCommonModelBuilder;
|
import org.opencdmp.model.builder.commonmodels.BaseCommonModelBuilder;
|
||||||
import org.opencdmp.model.builder.commonmodels.CommonModelBuilderItemResponse;
|
import org.opencdmp.model.builder.commonmodels.CommonModelBuilderItemResponse;
|
||||||
|
@ -10,6 +11,7 @@ import org.opencdmp.model.builder.commonmodels.descriptiontemplate.PageCommonMod
|
||||||
import gr.cite.tools.data.builder.BuilderFactory;
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
import gr.cite.tools.exception.MyApplicationException;
|
import gr.cite.tools.exception.MyApplicationException;
|
||||||
import gr.cite.tools.logging.LoggerService;
|
import gr.cite.tools.logging.LoggerService;
|
||||||
|
import org.opencdmp.model.builder.dmp.DmpPropertiesBuilder;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
|
@ -26,6 +28,7 @@ import java.util.Optional;
|
||||||
public class DmpPropertiesCommonModelBuilder extends BaseCommonModelBuilder<DmpPropertiesModel, DmpPropertiesEntity> {
|
public class DmpPropertiesCommonModelBuilder extends BaseCommonModelBuilder<DmpPropertiesModel, DmpPropertiesEntity> {
|
||||||
private final BuilderFactory builderFactory;
|
private final BuilderFactory builderFactory;
|
||||||
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
||||||
|
private DefinitionEntity definition;
|
||||||
@Autowired
|
@Autowired
|
||||||
public DmpPropertiesCommonModelBuilder(
|
public DmpPropertiesCommonModelBuilder(
|
||||||
ConventionService conventionService, BuilderFactory builderFactory
|
ConventionService conventionService, BuilderFactory builderFactory
|
||||||
|
@ -34,6 +37,11 @@ public class DmpPropertiesCommonModelBuilder extends BaseCommonModelBuilder<DmpP
|
||||||
this.builderFactory = builderFactory;
|
this.builderFactory = builderFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DmpPropertiesCommonModelBuilder withDefinition(DefinitionEntity definition) {
|
||||||
|
this.definition = definition;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public DmpPropertiesCommonModelBuilder authorize(EnumSet<AuthorizationFlags> values) {
|
public DmpPropertiesCommonModelBuilder authorize(EnumSet<AuthorizationFlags> values) {
|
||||||
this.authorize = values;
|
this.authorize = values;
|
||||||
return this;
|
return this;
|
||||||
|
@ -47,7 +55,7 @@ public class DmpPropertiesCommonModelBuilder extends BaseCommonModelBuilder<DmpP
|
||||||
List<CommonModelBuilderItemResponse<DmpPropertiesModel, DmpPropertiesEntity>> models = new ArrayList<>();
|
List<CommonModelBuilderItemResponse<DmpPropertiesModel, DmpPropertiesEntity>> models = new ArrayList<>();
|
||||||
for (DmpPropertiesEntity d : data) {
|
for (DmpPropertiesEntity d : data) {
|
||||||
DmpPropertiesModel m = new DmpPropertiesModel();
|
DmpPropertiesModel m = new DmpPropertiesModel();
|
||||||
if (d.getDmpBlueprintValues() != null) m.setDmpBlueprintValues(this.builderFactory.builder(DmpBlueprintValueCommonModelBuilder.class).authorize(this.authorize).build(d.getDmpBlueprintValues()));
|
if (d.getDmpBlueprintValues() != null) m.setDmpBlueprintValues(this.builderFactory.builder(DmpBlueprintValueCommonModelBuilder.class).withDefinition(definition).authorize(this.authorize).build(d.getDmpBlueprintValues()));
|
||||||
if (d.getContacts() != null) m.setContacts(this.builderFactory.builder(DmpContactCommonModelBuilder.class).authorize(this.authorize).build(d.getContacts()));
|
if (d.getContacts() != null) m.setContacts(this.builderFactory.builder(DmpContactCommonModelBuilder.class).authorize(this.authorize).build(d.getContacts()));
|
||||||
|
|
||||||
models.add(new CommonModelBuilderItemResponse<>(m, d));
|
models.add(new CommonModelBuilderItemResponse<>(m, d));
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.opencdmp.commonmodels.models.description.DescriptionModel;
|
||||||
import org.opencdmp.commonmodels.models.dmp.DmpBlueprintValueModel;
|
import org.opencdmp.commonmodels.models.dmp.DmpBlueprintValueModel;
|
||||||
import org.opencdmp.commonmodels.models.dmp.DmpContactModel;
|
import org.opencdmp.commonmodels.models.dmp.DmpContactModel;
|
||||||
import org.opencdmp.commonmodels.models.dmp.DmpModel;
|
import org.opencdmp.commonmodels.models.dmp.DmpModel;
|
||||||
|
import org.opencdmp.commonmodels.models.dmpblueprint.ExtraFieldModel;
|
||||||
import org.opencdmp.commonmodels.models.dmpblueprint.FieldModel;
|
import org.opencdmp.commonmodels.models.dmpblueprint.FieldModel;
|
||||||
import org.opencdmp.commonmodels.models.dmpblueprint.ReferenceTypeFieldModel;
|
import org.opencdmp.commonmodels.models.dmpblueprint.ReferenceTypeFieldModel;
|
||||||
import org.opencdmp.commonmodels.models.dmpblueprint.SectionModel;
|
import org.opencdmp.commonmodels.models.dmpblueprint.SectionModel;
|
||||||
|
@ -1992,9 +1993,10 @@ public class DmpServiceImpl implements DmpService {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// custom fields
|
// custom fields
|
||||||
if (model.getProperties() != null && this.conventionService.isListNullOrEmpty(model.getProperties().getDmpBlueprintValues())){
|
if (field.getCategory().equals(DmpBlueprintFieldCategory.Extra) && model.getProperties() != null && this.conventionService.isListNullOrEmpty(model.getProperties().getDmpBlueprintValues())){
|
||||||
DmpBlueprintValueModel dmpBlueprintValueModel = model.getProperties().getDmpBlueprintValues().stream().filter(x -> x.getFieldId().equals(field.getId())).findFirst().orElse(null);
|
DmpBlueprintValueModel dmpBlueprintValueModel = model.getProperties().getDmpBlueprintValues().stream().filter(x -> x.getFieldId().equals(field.getId())).findFirst().orElse(null);
|
||||||
if (dmpBlueprintValueModel != null) dmpBlueprintValues.put(dmpBlueprintValueModel.getFieldId(), this.commonDmpBlueprintValueToPersist(dmpBlueprintValueModel));
|
ExtraFieldModel extraFieldModel = (ExtraFieldModel) field;
|
||||||
|
if (dmpBlueprintValueModel != null && extraFieldModel != null) dmpBlueprintValues.put(dmpBlueprintValueModel.getFieldId(), this.commonDmpBlueprintValueToPersist(dmpBlueprintValueModel, extraFieldModel));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2051,14 +2053,20 @@ public class DmpServiceImpl implements DmpService {
|
||||||
return persist;
|
return persist;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DmpBlueprintValuePersist commonDmpBlueprintValueToPersist(DmpBlueprintValueModel model) {
|
private DmpBlueprintValuePersist commonDmpBlueprintValueToPersist(DmpBlueprintValueModel model, ExtraFieldModel extraFieldModel) {
|
||||||
if (model == null)
|
if (model == null || extraFieldModel == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
DmpBlueprintValuePersist persist = new DmpBlueprintValuePersist();
|
DmpBlueprintValuePersist persist = new DmpBlueprintValuePersist();
|
||||||
|
|
||||||
persist.setFieldId(model.getFieldId());
|
persist.setFieldId(model.getFieldId());
|
||||||
|
if (extraFieldModel.getDataType().equals(org.opencdmp.commonmodels.enums.DmpBlueprintExtraFieldDataType.Date)){
|
||||||
|
persist.setDateValue(model.getDateValue());
|
||||||
|
} else if (extraFieldModel.getDataType().equals(org.opencdmp.commonmodels.enums.DmpBlueprintExtraFieldDataType.Number)){
|
||||||
|
persist.setNumberValue(model.getNumberValue());
|
||||||
|
} else {
|
||||||
persist.setFieldValue(model.getValue());
|
persist.setFieldValue(model.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
return persist;
|
return persist;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,6 @@ export class DmpDepositDropdown extends BaseComponent implements OnInit {
|
||||||
private depositRepositoriesService: DepositService,
|
private depositRepositoriesService: DepositService,
|
||||||
private dialog: MatDialog,
|
private dialog: MatDialog,
|
||||||
private language: TranslateService,
|
private language: TranslateService,
|
||||||
private translate: TranslateService,
|
|
||||||
private uiNotificationService: UiNotificationService,
|
private uiNotificationService: UiNotificationService,
|
||||||
private depositOauth2DialogService: DepositOauth2DialogService,
|
private depositOauth2DialogService: DepositOauth2DialogService,
|
||||||
private sanitizer: DomSanitizer
|
private sanitizer: DomSanitizer
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { DepositConfiguration } from '@app/core/model/deposit/deposit-configurat
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class DepositOauth2DialogService extends BaseService{
|
export class DepositOauth2DialogService extends BaseService{
|
||||||
|
|
||||||
private code: BehaviorSubject<any> = new BehaviorSubject(undefined);
|
|
||||||
|
|
||||||
constructor(private configurationService: ConfigurationService) {
|
constructor(private configurationService: ConfigurationService) {
|
||||||
super();
|
super();
|
||||||
|
@ -21,6 +21,7 @@ export class DepositOauth2DialogService extends BaseService{
|
||||||
}
|
}
|
||||||
|
|
||||||
public login(url: string): Observable<any> {
|
public login(url: string): Observable<any> {
|
||||||
|
const code: BehaviorSubject<any> = new BehaviorSubject(undefined);
|
||||||
const windows = window.open(this.configurationService.app + 'deposit/oauth2?url=' + encodeURIComponent(url) ,'', `height=500px,width=500px,top=${(window.screen.height / 2) - 200}px,left=${(window.screen.width / 2) - 200}px`);
|
const windows = window.open(this.configurationService.app + 'deposit/oauth2?url=' + encodeURIComponent(url) ,'', `height=500px,width=500px,top=${(window.screen.height / 2) - 200}px,left=${(window.screen.width / 2) - 200}px`);
|
||||||
const sub = interval(300).pipe(takeUntil(this._destroyed)).subscribe(() => {
|
const sub = interval(300).pipe(takeUntil(this._destroyed)).subscribe(() => {
|
||||||
if (windows.closed) {
|
if (windows.closed) {
|
||||||
|
@ -29,12 +30,11 @@ export class DepositOauth2DialogService extends BaseService{
|
||||||
oauthCode = localStorage.getItem('repositoryOauthCode');
|
oauthCode = localStorage.getItem('repositoryOauthCode');
|
||||||
localStorage.removeItem('repositoryOauthCode');
|
localStorage.removeItem('repositoryOauthCode');
|
||||||
}
|
}
|
||||||
this.code.next(oauthCode);
|
code.next(oauthCode);
|
||||||
this.code.next(undefined);
|
|
||||||
sub.unsubscribe();
|
sub.unsubscribe();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return this.code.asObservable();
|
return code.asObservable();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue