Merge branch 'dmp-refactoring-file-transformer-builder' into dmp-refactoring
This commit is contained in:
commit
e39d8d25b6
|
@ -47,7 +47,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>gr.cite.opendmp</groupId>
|
<groupId>gr.cite.opendmp</groupId>
|
||||||
<artifactId>file-transformer-base</artifactId>
|
<artifactId>file-transformer-base</artifactId>
|
||||||
<version>1.0.0-SNAPSHOT</version>
|
<version>0.0.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>gr.cite</groupId>
|
<groupId>gr.cite</groupId>
|
||||||
|
|
|
@ -8,7 +8,8 @@ import java.util.Map;
|
||||||
public enum StorageType implements DatabaseEnum<Short> {
|
public enum StorageType implements DatabaseEnum<Short> {
|
||||||
|
|
||||||
Temp((short) 0),
|
Temp((short) 0),
|
||||||
Main((short) 1);
|
Main((short) 1),
|
||||||
|
Transformer((short)2);
|
||||||
|
|
||||||
private final Short value;
|
private final Short value;
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,7 @@ import eu.eudat.convention.ConventionService;
|
||||||
import eu.eudat.depositinterface.enums.FieldType;
|
import eu.eudat.depositinterface.enums.FieldType;
|
||||||
import eu.eudat.depositinterface.models.DescriptionFieldDepositModel;
|
import eu.eudat.depositinterface.models.DescriptionFieldDepositModel;
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateFileTransformerModel;
|
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.definition.FieldFileTransformerModel;
|
import eu.eudat.file.transformer.models.descriptiontemplate.definition.*;
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.definition.FieldSetFileTransformerModel;
|
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.definition.PageFileTransformerModel;
|
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.definition.SectionFileTransformerModel;
|
|
||||||
import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider;
|
import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider;
|
||||||
import gr.cite.tools.exception.MyApplicationException;
|
import gr.cite.tools.exception.MyApplicationException;
|
||||||
import gr.cite.tools.logging.LoggerService;
|
import gr.cite.tools.logging.LoggerService;
|
||||||
|
@ -23,10 +20,7 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.EnumSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
|
@ -35,6 +29,7 @@ public class DescriptionFieldFileTransformerBuilder extends BaseFileTransformerB
|
||||||
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
||||||
private DescriptionTemplateFileTransformerModel definition;
|
private DescriptionTemplateFileTransformerModel definition;
|
||||||
private final FieldDataHelperServiceProvider fieldDataHelperServiceProvider;
|
private final FieldDataHelperServiceProvider fieldDataHelperServiceProvider;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public DescriptionFieldFileTransformerBuilder(
|
public DescriptionFieldFileTransformerBuilder(
|
||||||
ConventionService conventionService, FieldDataHelperServiceProvider fieldDataHelperServiceProvider
|
ConventionService conventionService, FieldDataHelperServiceProvider fieldDataHelperServiceProvider
|
||||||
|
@ -110,6 +105,10 @@ public class DescriptionFieldFileTransformerBuilder extends BaseFileTransformerB
|
||||||
//models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
//models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (PageFileTransformerModel page : definition.getDefinition().getPages()) {
|
||||||
|
page.setSections(calculateSectionVisibility(page.getSections()));
|
||||||
|
}
|
||||||
|
|
||||||
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));
|
||||||
|
|
||||||
return List.of(new FileTransformerBuilderItemResponse<>(definition, data.get(0)));
|
return List.of(new FileTransformerBuilderItemResponse<>(definition, data.get(0)));
|
||||||
|
@ -158,4 +157,112 @@ public class DescriptionFieldFileTransformerBuilder extends BaseFileTransformerB
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<SectionFileTransformerModel> calculateSectionVisibility(List<SectionFileTransformerModel> sections) {
|
||||||
|
List<SectionFileTransformerModel> result = new ArrayList<>();
|
||||||
|
|
||||||
|
for (SectionFileTransformerModel section : sections) {
|
||||||
|
if (section.getSections() != null && !section.getSections().isEmpty()) {
|
||||||
|
section.setSections(calculateSectionVisibility(section.getSections()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (section.getFieldSets() != null && !section.getFieldSets().isEmpty()) {
|
||||||
|
section.setFieldSets(calculateFieldSetVisibility(section.getFieldSets()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((section.getSections() != null && !section.getSections().isEmpty()) || (section.getFieldSets() != null && !section.getFieldSets().isEmpty())) {
|
||||||
|
result.add(section);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FieldSetFileTransformerModel> calculateFieldSetVisibility(List<FieldSetFileTransformerModel> fieldSets) {
|
||||||
|
List<FieldSetFileTransformerModel> result = new ArrayList<>();
|
||||||
|
for (FieldSetFileTransformerModel fieldSet : fieldSets) {
|
||||||
|
if (fieldSet.getFields() != null && !fieldSet.getFields().isEmpty()) {
|
||||||
|
fieldSet.setFields(calculateFieldVisibility(fieldSet.getFields()));
|
||||||
|
if (fieldSet.getFields() != null && !fieldSet.getFields().isEmpty()) {
|
||||||
|
result.add(fieldSet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FieldFileTransformerModel> calculateFieldVisibility(List<FieldFileTransformerModel> fields) {
|
||||||
|
List<FieldFileTransformerModel> result = new ArrayList<>();
|
||||||
|
for (FieldFileTransformerModel field : fields) {
|
||||||
|
if (field.getVisibilityRules() != null && !field.getVisibilityRules().isEmpty()) {
|
||||||
|
Integer maxChecks = field.getVisibilityRules().size();
|
||||||
|
Integer successfulChecks = 0;
|
||||||
|
for (RuleFileTransformerModel rule : field.getVisibilityRules()) {
|
||||||
|
FieldFileTransformerModel targetField = findFieldByPages(definition.getDefinition().getPages(), rule.getTarget());
|
||||||
|
if (targetField.getData() != null ) {
|
||||||
|
successfulChecks = targetField.getData().getValue().equals(rule.getValue()) ? successfulChecks + 1 : successfulChecks;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (successfulChecks.equals(maxChecks)) {
|
||||||
|
result.add(field);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result.add(field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FieldFileTransformerModel findFieldByPages(List<PageFileTransformerModel> pages, String fieldId) {
|
||||||
|
FieldFileTransformerModel result = null;
|
||||||
|
for (PageFileTransformerModel page : pages) {
|
||||||
|
result = findFieldBySections(page.getSections(), fieldId);
|
||||||
|
if (result != null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FieldFileTransformerModel findFieldBySections(List<SectionFileTransformerModel> sections, String fieldId) {
|
||||||
|
FieldFileTransformerModel result = null;
|
||||||
|
for (SectionFileTransformerModel section : sections) {
|
||||||
|
if (section.getSections() != null && !section.getSections().isEmpty()) {
|
||||||
|
result = findFieldBySections(section.getSections(), fieldId);
|
||||||
|
if (result != null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (section.getFieldSets() != null && !section.getFieldSets().isEmpty()) {
|
||||||
|
result = findFieldByFieldSets(section.getFieldSets(), fieldId);
|
||||||
|
if (result != null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FieldFileTransformerModel findFieldByFieldSets(List<FieldSetFileTransformerModel> fieldSets, String fieldId) {
|
||||||
|
FieldFileTransformerModel result = null;
|
||||||
|
for (FieldSetFileTransformerModel fieldSet: fieldSets) {
|
||||||
|
result = findField(fieldSet.getFields(), fieldId);
|
||||||
|
if (result != null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FieldFileTransformerModel findField(List<FieldFileTransformerModel> fields, String fieldId) {
|
||||||
|
FieldFileTransformerModel result = null;
|
||||||
|
for (FieldFileTransformerModel field: fields) {
|
||||||
|
if (field.getId().equals(fieldId)) {
|
||||||
|
result = field;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,24 @@ import eu.eudat.commons.XmlHandlingService;
|
||||||
import eu.eudat.commons.enums.IsActive;
|
import eu.eudat.commons.enums.IsActive;
|
||||||
import eu.eudat.commons.types.description.PropertyDefinitionEntity;
|
import eu.eudat.commons.types.description.PropertyDefinitionEntity;
|
||||||
import eu.eudat.convention.ConventionService;
|
import eu.eudat.convention.ConventionService;
|
||||||
import eu.eudat.data.DescriptionEntity;
|
import eu.eudat.data.*;
|
||||||
import eu.eudat.data.DescriptionTemplateEntity;
|
|
||||||
import eu.eudat.depositinterface.models.DescriptionDepositModel;
|
import eu.eudat.depositinterface.models.DescriptionDepositModel;
|
||||||
import eu.eudat.file.transformer.enums.DescriptionStatus;
|
import eu.eudat.file.transformer.enums.DescriptionStatus;
|
||||||
import eu.eudat.file.transformer.models.description.DescriptionFileTransformerModel;
|
import eu.eudat.file.transformer.models.description.DescriptionFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.description.DescriptionReferenceFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.description.DescriptionTagFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateFileTransformerModel;
|
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel;
|
import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.dmp.DmpReferenceFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.reference.ReferenceFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.tag.TagFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.user.UserFileTransformerModel;
|
||||||
|
import eu.eudat.model.DescriptionReference;
|
||||||
import eu.eudat.model.DescriptionTemplate;
|
import eu.eudat.model.DescriptionTemplate;
|
||||||
import eu.eudat.query.DescriptionTemplateQuery;
|
import eu.eudat.model.DmpReference;
|
||||||
import eu.eudat.query.DmpQuery;
|
import eu.eudat.model.Tag;
|
||||||
|
import eu.eudat.model.builder.TagBuilder;
|
||||||
|
import eu.eudat.query.*;
|
||||||
import gr.cite.tools.data.builder.BuilderFactory;
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
import gr.cite.tools.data.query.QueryFactory;
|
import gr.cite.tools.data.query.QueryFactory;
|
||||||
import gr.cite.tools.exception.MyApplicationException;
|
import gr.cite.tools.exception.MyApplicationException;
|
||||||
|
@ -65,6 +73,9 @@ public class DescriptionFileTransformerBuilder extends BaseFileTransformerBuilde
|
||||||
if (data == null || data.isEmpty()) return new ArrayList<>();
|
if (data == null || data.isEmpty()) return new ArrayList<>();
|
||||||
|
|
||||||
List<DescriptionTemplateFileTransformerModel> definitionMap = this.collectDescriptionTemplates(data);
|
List<DescriptionTemplateFileTransformerModel> definitionMap = this.collectDescriptionTemplates(data);
|
||||||
|
Map<UUID, List<DescriptionReferenceFileTransformerModel>> referenceMap = collectReferences(data);
|
||||||
|
Map<UUID, List<DescriptionTagFileTransformerModel>> tagMap = collectTags(data);
|
||||||
|
|
||||||
|
|
||||||
DmpFileTransformerModel dmp = this.getDmp(data.get(0).getDmpId());
|
DmpFileTransformerModel dmp = this.getDmp(data.get(0).getDmpId());
|
||||||
|
|
||||||
|
@ -84,6 +95,9 @@ public class DescriptionFileTransformerBuilder extends BaseFileTransformerBuilde
|
||||||
|
|
||||||
if (definitionMap != null && definitionMap.stream().anyMatch(dt -> dt.getId().equals(d.getDescriptionTemplateId())) && propertyDefinition != null && !this.conventionService.isListNullOrEmpty(propertyDefinition.getFields())) m.setDescriptionTemplate(this.builderFactory.builder(DescriptionFieldFileTransformerBuilder.class).authorize(this.authorize).setDefinition(definitionMap.stream().filter(dm -> dm.getId().equals(d.getDescriptionTemplateId())).findFirst().get()).build(propertyDefinition.getFields()).get(0));
|
if (definitionMap != null && definitionMap.stream().anyMatch(dt -> dt.getId().equals(d.getDescriptionTemplateId())) && propertyDefinition != null && !this.conventionService.isListNullOrEmpty(propertyDefinition.getFields())) m.setDescriptionTemplate(this.builderFactory.builder(DescriptionFieldFileTransformerBuilder.class).authorize(this.authorize).setDefinition(definitionMap.stream().filter(dm -> dm.getId().equals(d.getDescriptionTemplateId())).findFirst().get()).build(propertyDefinition.getFields()).get(0));
|
||||||
}
|
}
|
||||||
|
if (referenceMap != null && !referenceMap.isEmpty() && referenceMap.containsKey(d.getId())) m.setDescriptionReferenceFileTransformerModels(referenceMap.get(d.getId()));
|
||||||
|
if (tagMap != null && !tagMap.isEmpty() && tagMap.containsKey(d.getId())) m.setDescriptionTagFileTransformerModels(tagMap.get(d.getId()));
|
||||||
|
|
||||||
m.setDmp(dmp);
|
m.setDmp(dmp);
|
||||||
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
||||||
}
|
}
|
||||||
|
@ -108,4 +122,49 @@ public class DescriptionFileTransformerBuilder extends BaseFileTransformerBuilde
|
||||||
return this.builderFactory.builder(DescriptionTemplateFileTransformerBuilder.class).authorize(authorize).build(descriptionTemplateEntities);
|
return this.builderFactory.builder(DescriptionTemplateFileTransformerBuilder.class).authorize(authorize).build(descriptionTemplateEntities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Map<UUID, List<DescriptionReferenceFileTransformerModel>> collectReferences(List<DescriptionEntity> data) throws MyApplicationException {
|
||||||
|
if (data.isEmpty()) return null;
|
||||||
|
this.logger.debug("checking related - {}", DmpReference.class.getSimpleName());
|
||||||
|
|
||||||
|
List<DescriptionReferenceEntity> descriptionReferences = this.queryFactory.query(DescriptionReferenceQuery.class).authorize(this.authorize).descriptionIds(data.stream().map(DescriptionEntity::getId).distinct().collect(Collectors.toList())).collectAs(new BaseFieldSet().ensure(DescriptionReference._description).ensure(DescriptionReference._reference));
|
||||||
|
|
||||||
|
Map<UUID, List<DescriptionReferenceFileTransformerModel>> itemMap = new HashMap<>();
|
||||||
|
ReferenceQuery query = this.queryFactory.query(ReferenceQuery.class).authorize(this.authorize).isActive(IsActive.Active).ids(descriptionReferences.stream().map(DescriptionReferenceEntity::getReferenceId).distinct().collect(Collectors.toList()));
|
||||||
|
Map<UUID, ReferenceFileTransformerModel> referenceDepositModelMap = this.builderFactory.builder(ReferenceFileTransformerBuilder.class).authorize(this.authorize).asForeignKey(query, ReferenceEntity::getId);
|
||||||
|
if (referenceDepositModelMap == null) return null;
|
||||||
|
for (DescriptionReferenceEntity descriptionReference : descriptionReferences) {
|
||||||
|
DescriptionReferenceFileTransformerModel descriptionReferenceFileTransformerModel = new DescriptionReferenceFileTransformerModel();
|
||||||
|
descriptionReferenceFileTransformerModel.setId(descriptionReference.getId());
|
||||||
|
descriptionReferenceFileTransformerModel.setReference(referenceDepositModelMap.getOrDefault(descriptionReference.getReferenceId(), null));
|
||||||
|
DescriptionReferenceFileTransformerModel model = descriptionReferenceFileTransformerModel;
|
||||||
|
if (model == null) continue;
|
||||||
|
UUID key = descriptionReference.getDescriptionId();
|
||||||
|
if (!itemMap.containsKey(key)) itemMap.put(key, new ArrayList<>());
|
||||||
|
itemMap.get(key).add(model);
|
||||||
|
}
|
||||||
|
return itemMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<UUID, List<DescriptionTagFileTransformerModel>> collectTags(List<DescriptionEntity> data) {
|
||||||
|
if (data.isEmpty()) return null;
|
||||||
|
|
||||||
|
List<DescriptionTagEntity> descriptionTags = this.queryFactory.query(DescriptionTagQuery.class).authorize(this.authorize).descriptionIds(data.stream().map(DescriptionEntity::getId).distinct().toList()).collect();
|
||||||
|
|
||||||
|
Map<UUID, List<DescriptionTagFileTransformerModel>> itemMap = new HashMap<>();
|
||||||
|
TagQuery query = this.queryFactory.query(TagQuery.class).authorize(this.authorize).isActive(IsActive.Active).ids(descriptionTags.stream().map(DescriptionTagEntity::getTagId).distinct().toList());
|
||||||
|
Map<UUID, TagFileTransformerModel> tagMap = this.builderFactory.builder(TagFileTransformerBuilder.class).asForeignKey(query, TagEntity::getId);
|
||||||
|
for (DescriptionTagEntity descriptionTag : descriptionTags) {
|
||||||
|
DescriptionTagFileTransformerModel descriptionTagFileTransformerModel = new DescriptionTagFileTransformerModel();
|
||||||
|
descriptionTagFileTransformerModel.setId(descriptionTag.getId());
|
||||||
|
descriptionTagFileTransformerModel.setTagFileTransformerModel(tagMap.getOrDefault(descriptionTag.getTagId(), null));
|
||||||
|
DescriptionTagFileTransformerModel model = descriptionTagFileTransformerModel;
|
||||||
|
if (model == null) continue;
|
||||||
|
UUID key = descriptionTag.getDescriptionId();
|
||||||
|
if (!itemMap.containsKey(key)) itemMap.put(key, new ArrayList<>());
|
||||||
|
itemMap.get(key).add(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
return itemMap;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,19 +3,13 @@ package eu.eudat.model.builder.filetransformer;
|
||||||
import eu.eudat.authorization.AuthorizationFlags;
|
import eu.eudat.authorization.AuthorizationFlags;
|
||||||
import eu.eudat.commons.JsonHandlingService;
|
import eu.eudat.commons.JsonHandlingService;
|
||||||
import eu.eudat.commons.XmlHandlingService;
|
import eu.eudat.commons.XmlHandlingService;
|
||||||
import eu.eudat.commons.enums.IsActive;
|
|
||||||
import eu.eudat.commons.types.description.PropertyDefinitionEntity;
|
|
||||||
import eu.eudat.convention.ConventionService;
|
import eu.eudat.convention.ConventionService;
|
||||||
import eu.eudat.data.DescriptionEntity;
|
|
||||||
import eu.eudat.data.DescriptionTemplateEntity;
|
import eu.eudat.data.DescriptionTemplateEntity;
|
||||||
import eu.eudat.file.transformer.models.description.DescriptionFileTransformerModel;
|
|
||||||
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateFileTransformerModel;
|
import eu.eudat.file.transformer.models.descriptiontemplate.DescriptionTemplateFileTransformerModel;
|
||||||
import eu.eudat.model.DescriptionTemplate;
|
|
||||||
import eu.eudat.query.DescriptionTemplateQuery;
|
import eu.eudat.query.DescriptionTemplateQuery;
|
||||||
import gr.cite.tools.data.builder.BuilderFactory;
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
import gr.cite.tools.data.query.QueryFactory;
|
import gr.cite.tools.data.query.QueryFactory;
|
||||||
import gr.cite.tools.exception.MyApplicationException;
|
import gr.cite.tools.exception.MyApplicationException;
|
||||||
import gr.cite.tools.fieldset.BaseFieldSet;
|
|
||||||
import gr.cite.tools.logging.LoggerService;
|
import gr.cite.tools.logging.LoggerService;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -23,8 +17,10 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
import java.util.stream.Collectors;
|
import java.util.EnumSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
|
@ -68,6 +64,8 @@ public class DescriptionTemplateFileTransformerBuilder extends BaseFileTransform
|
||||||
m.setId(d.getId());
|
m.setId(d.getId());
|
||||||
m.setLabel(d.getLabel());
|
m.setLabel(d.getLabel());
|
||||||
m.setDescription(d.getDescription());
|
m.setDescription(d.getDescription());
|
||||||
|
m.setLanguage(d.getLanguage());
|
||||||
|
m.setVersion(d.getVersion());
|
||||||
m.setDefinition(this.builderFactory.builder(DescriptionTemplateDefinitionFileTransformerBuilder.class).authorize(authorize).build(collectDescriptionTemplates(d)));
|
m.setDefinition(this.builderFactory.builder(DescriptionTemplateDefinitionFileTransformerBuilder.class).authorize(authorize).build(collectDescriptionTemplates(d)));
|
||||||
|
|
||||||
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
||||||
|
|
|
@ -92,6 +92,7 @@ public class DmpBlueprintFileTransformerBuilder extends BaseFileTransformerBuild
|
||||||
SectionFileTransformerModel m = new SectionFileTransformerModel();
|
SectionFileTransformerModel m = new SectionFileTransformerModel();
|
||||||
m.setId(section.getId());
|
m.setId(section.getId());
|
||||||
m.setLabel(section.getLabel());
|
m.setLabel(section.getLabel());
|
||||||
|
m.setOrdinal(section.getOrdinal());
|
||||||
m.setDescription(section.getDescription());
|
m.setDescription(section.getDescription());
|
||||||
m.setFields(mapFields(section.getFields()));
|
m.setFields(mapFields(section.getFields()));
|
||||||
m.setHasTemplates(section.getHasTemplates());
|
m.setHasTemplates(section.getHasTemplates());
|
||||||
|
|
|
@ -12,9 +12,12 @@ import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.dmp.DmpReferenceFileTransformerModel;
|
import eu.eudat.file.transformer.models.dmp.DmpReferenceFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.dmp.DmpUserFileTransformerModel;
|
import eu.eudat.file.transformer.models.dmp.DmpUserFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.dmpblueprint.DmpBlueprintFileTransformerModel;
|
import eu.eudat.file.transformer.models.dmpblueprint.DmpBlueprintFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.dmpblueprint.definition.SectionFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.entitydoi.EntityDoiFileTransformerModel;
|
import eu.eudat.file.transformer.models.entitydoi.EntityDoiFileTransformerModel;
|
||||||
|
import eu.eudat.file.transformer.models.reference.ReferenceFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.user.UserFileTransformerModel;
|
import eu.eudat.file.transformer.models.user.UserFileTransformerModel;
|
||||||
import eu.eudat.model.*;
|
import eu.eudat.model.*;
|
||||||
|
import eu.eudat.model.builder.DmpReferenceBuilder;
|
||||||
import eu.eudat.query.*;
|
import eu.eudat.query.*;
|
||||||
import gr.cite.tools.data.builder.BuilderFactory;
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
import gr.cite.tools.data.query.Ordering;
|
import gr.cite.tools.data.query.Ordering;
|
||||||
|
@ -109,7 +112,15 @@ public class DmpFileTransformerBuilder extends BaseFileTransformerBuilder<DmpFil
|
||||||
if (descriptionsMap != null && !descriptionsMap.isEmpty() && descriptionsMap.containsKey(d.getId())) m.setDescriptions(descriptionsMap.get(d.getId()));
|
if (descriptionsMap != null && !descriptionsMap.isEmpty() && descriptionsMap.containsKey(d.getId())) m.setDescriptions(descriptionsMap.get(d.getId()));
|
||||||
if (doiMap != null && !doiMap.isEmpty() && doiMap.containsKey(d.getId())) m.setEntityDois(doiMap.get(d.getId()));
|
if (doiMap != null && !doiMap.isEmpty() && doiMap.containsKey(d.getId())) m.setEntityDois(doiMap.get(d.getId()));
|
||||||
if (creatorMap != null && !creatorMap.isEmpty() && creatorMap.containsKey(d.getId())) m.setCreator(creatorMap.get(d.getId()));
|
if (creatorMap != null && !creatorMap.isEmpty() && creatorMap.containsKey(d.getId())) m.setCreator(creatorMap.get(d.getId()));
|
||||||
if (blueprintMap != null && !blueprintMap.isEmpty() && blueprintMap.containsKey(d.getId())) m.setBlueprint(blueprintMap.get(d.getId()));
|
if (blueprintMap != null && !blueprintMap.isEmpty() && blueprintMap.containsKey(d.getBlueprintId())) m.setBlueprint(blueprintMap.get(d.getBlueprintId()));
|
||||||
|
|
||||||
|
SectionFileTransformerModel templateSection = m.getBlueprint().getDefinitionFileTransformerModel().getSections().stream().filter(SectionFileTransformerModel::getHasTemplates).findFirst().orElse(null);
|
||||||
|
if (templateSection != null && m.getDescriptions() != null && !m.getDescriptions().isEmpty()) {
|
||||||
|
m.getDescriptions().forEach(description -> {
|
||||||
|
description.setSectionId(templateSection.getId());
|
||||||
|
description.setCreatedBy(m.getCreator());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
||||||
}
|
}
|
||||||
|
@ -126,11 +137,15 @@ public class DmpFileTransformerBuilder extends BaseFileTransformerBuilder<DmpFil
|
||||||
|
|
||||||
Map<UUID, List<DmpReferenceFileTransformerModel>> itemMap = new HashMap<>();
|
Map<UUID, List<DmpReferenceFileTransformerModel>> itemMap = new HashMap<>();
|
||||||
ReferenceQuery query = this.queryFactory.query(ReferenceQuery.class).authorize(this.authorize).isActive(IsActive.Active).ids(dmpReferences.stream().map(DmpReferenceEntity::getReferenceId).distinct().collect(Collectors.toList()));
|
ReferenceQuery query = this.queryFactory.query(ReferenceQuery.class).authorize(this.authorize).isActive(IsActive.Active).ids(dmpReferences.stream().map(DmpReferenceEntity::getReferenceId).distinct().collect(Collectors.toList()));
|
||||||
Map<UUID, DmpReferenceFileTransformerModel> referenceDepositModelMap = this.builderFactory.builder(ReferenceFileTransformerBuilder.class).authorize(this.authorize).asForeignKey(query, ReferenceEntity::getId);
|
Map<UUID, ReferenceFileTransformerModel> referenceDepositModelMap = this.builderFactory.builder(ReferenceFileTransformerBuilder.class).authorize(this.authorize).asForeignKey(query, ReferenceEntity::getId);
|
||||||
if (referenceDepositModelMap == null) return null;
|
if (referenceDepositModelMap == null) return null;
|
||||||
for (DmpReferenceEntity dmpReference : dmpReferences) {
|
for (DmpReferenceEntity dmpReference : dmpReferences) {
|
||||||
DmpReferenceFileTransformerModel model =referenceDepositModelMap.getOrDefault(dmpReference.getReferenceId(), null);
|
DmpReferenceFileTransformerModel dmpReferenceFileTransformerModel = new DmpReferenceFileTransformerModel();
|
||||||
if (model == null) continue;;
|
dmpReferenceFileTransformerModel.setId(dmpReference.getId());
|
||||||
|
dmpReferenceFileTransformerModel.setData(dmpReference.getData());
|
||||||
|
dmpReferenceFileTransformerModel.setReference(referenceDepositModelMap.getOrDefault(dmpReference.getReferenceId(), null));
|
||||||
|
DmpReferenceFileTransformerModel model = dmpReferenceFileTransformerModel;
|
||||||
|
if (model == null) continue;
|
||||||
UUID key = dmpReference.getDmpId();
|
UUID key = dmpReference.getDmpId();
|
||||||
if (!itemMap.containsKey(key)) itemMap.put(key, new ArrayList<>());
|
if (!itemMap.containsKey(key)) itemMap.put(key, new ArrayList<>());
|
||||||
itemMap.get(key).add(model);
|
itemMap.get(key).add(model);
|
||||||
|
@ -171,7 +186,7 @@ public class DmpFileTransformerBuilder extends BaseFileTransformerBuilder<DmpFil
|
||||||
DmpBlueprintQuery query = this.queryFactory.query(DmpBlueprintQuery.class).isActive(IsActive.Active).authorize(this.authorize).ids(data.stream().map(DmpEntity::getBlueprintId).toList());
|
DmpBlueprintQuery query = this.queryFactory.query(DmpBlueprintQuery.class).isActive(IsActive.Active).authorize(this.authorize).ids(data.stream().map(DmpEntity::getBlueprintId).toList());
|
||||||
return this.builderFactory.builder(DmpBlueprintFileTransformerBuilder.class).authorize(this.authorize).asMasterKey(query, DmpBlueprintEntity::getId)
|
return this.builderFactory.builder(DmpBlueprintFileTransformerBuilder.class).authorize(this.authorize).asMasterKey(query, DmpBlueprintEntity::getId)
|
||||||
.entrySet().stream().map(uuidListEntry -> Map.entry(uuidListEntry.getKey(), uuidListEntry.getValue().get(0)))
|
.entrySet().stream().map(uuidListEntry -> Map.entry(uuidListEntry.getKey(), uuidListEntry.getValue().get(0)))
|
||||||
.collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue()));
|
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<UUID, List<EntityDoiFileTransformerModel>> collectEntityDois(List<DmpEntity> data) {
|
private Map<UUID, List<EntityDoiFileTransformerModel>> collectEntityDois(List<DmpEntity> data) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import eu.eudat.convention.ConventionService;
|
||||||
import eu.eudat.data.ReferenceEntity;
|
import eu.eudat.data.ReferenceEntity;
|
||||||
import eu.eudat.file.transformer.enums.ReferenceSourceType;
|
import eu.eudat.file.transformer.enums.ReferenceSourceType;
|
||||||
import eu.eudat.file.transformer.enums.ReferenceType;
|
import eu.eudat.file.transformer.enums.ReferenceType;
|
||||||
|
import eu.eudat.file.transformer.models.description.DescriptionReferenceFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.dmp.DmpReferenceFileTransformerModel;
|
import eu.eudat.file.transformer.models.dmp.DmpReferenceFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.reference.ReferenceFileTransformerModel;
|
import eu.eudat.file.transformer.models.reference.ReferenceFileTransformerModel;
|
||||||
import gr.cite.tools.data.builder.BuilderFactory;
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
|
@ -25,7 +26,7 @@ import java.util.Optional;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
public class ReferenceFileTransformerBuilder extends BaseFileTransformerBuilder<DmpReferenceFileTransformerModel, ReferenceEntity> {
|
public class ReferenceFileTransformerBuilder extends BaseFileTransformerBuilder<ReferenceFileTransformerModel, ReferenceEntity> {
|
||||||
|
|
||||||
private final BuilderFactory builderFactory;
|
private final BuilderFactory builderFactory;
|
||||||
private final XmlHandlingService xmlHandlingService;
|
private final XmlHandlingService xmlHandlingService;
|
||||||
|
@ -46,11 +47,11 @@ public class ReferenceFileTransformerBuilder extends BaseFileTransformerBuilder<
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<FileTransformerBuilderItemResponse<DmpReferenceFileTransformerModel, ReferenceEntity>> buildInternal(List<ReferenceEntity> data) throws MyApplicationException {
|
protected List<FileTransformerBuilderItemResponse<ReferenceFileTransformerModel, ReferenceEntity>> buildInternal(List<ReferenceEntity> 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));
|
||||||
if (data == null || data.isEmpty()) return new ArrayList<>();
|
if (data == null || data.isEmpty()) return new ArrayList<>();
|
||||||
|
|
||||||
List<FileTransformerBuilderItemResponse<DmpReferenceFileTransformerModel, ReferenceEntity>> models = new ArrayList<>();
|
List<FileTransformerBuilderItemResponse<ReferenceFileTransformerModel, ReferenceEntity>> models = new ArrayList<>();
|
||||||
for (ReferenceEntity d : data) {
|
for (ReferenceEntity d : data) {
|
||||||
ReferenceFileTransformerModel m = new ReferenceFileTransformerModel();
|
ReferenceFileTransformerModel m = new ReferenceFileTransformerModel();
|
||||||
m.setId(d.getId());
|
m.setId(d.getId());
|
||||||
|
@ -85,10 +86,7 @@ public class ReferenceFileTransformerBuilder extends BaseFileTransformerBuilder<
|
||||||
case Researcher -> m.setType(ReferenceType.Researcher);
|
case Researcher -> m.setType(ReferenceType.Researcher);
|
||||||
default -> throw new MyApplicationException("unrecognized type " + d.getType().getValue());
|
default -> throw new MyApplicationException("unrecognized type " + d.getType().getValue());
|
||||||
}
|
}
|
||||||
|
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
||||||
DmpReferenceFileTransformerModel dmpReferenceFileTransformerModel = new DmpReferenceFileTransformerModel();
|
|
||||||
dmpReferenceFileTransformerModel.setReference(m);
|
|
||||||
models.add(new FileTransformerBuilderItemResponse<>(dmpReferenceFileTransformerModel, 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));
|
||||||
return models;
|
return models;
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
package eu.eudat.model.builder.filetransformer;
|
||||||
|
|
||||||
|
import eu.eudat.authorization.AuthorizationFlags;
|
||||||
|
import eu.eudat.commons.XmlHandlingService;
|
||||||
|
import eu.eudat.convention.ConventionService;
|
||||||
|
import eu.eudat.data.TagEntity;
|
||||||
|
import eu.eudat.file.transformer.models.tag.TagFileTransformerModel;
|
||||||
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
|
import gr.cite.tools.exception.MyApplicationException;
|
||||||
|
import gr.cite.tools.logging.LoggerService;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.EnumSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
|
public class TagFileTransformerBuilder extends BaseFileTransformerBuilder<TagFileTransformerModel, TagEntity> {
|
||||||
|
|
||||||
|
private final BuilderFactory builderFactory;
|
||||||
|
private final XmlHandlingService xmlHandlingService;
|
||||||
|
private EnumSet<AuthorizationFlags> authorize = EnumSet.of(AuthorizationFlags.None);
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public TagFileTransformerBuilder(
|
||||||
|
ConventionService conventionService,
|
||||||
|
BuilderFactory builderFactory, XmlHandlingService xmlHandlingService) {
|
||||||
|
super(conventionService, new LoggerService(LoggerFactory.getLogger(TagFileTransformerBuilder.class)));
|
||||||
|
this.builderFactory = builderFactory;
|
||||||
|
this.xmlHandlingService = xmlHandlingService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TagFileTransformerBuilder authorize(EnumSet<AuthorizationFlags> values) {
|
||||||
|
this.authorize = values;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected List<FileTransformerBuilderItemResponse<TagFileTransformerModel, TagEntity>> buildInternal(List<TagEntity> data) throws MyApplicationException {
|
||||||
|
this.logger.debug("building for {}", Optional.ofNullable(data).map(List::size).orElse(0));
|
||||||
|
if (data == null || data.isEmpty()) return new ArrayList<>();
|
||||||
|
|
||||||
|
List<FileTransformerBuilderItemResponse<TagFileTransformerModel, TagEntity>> models = new ArrayList<>();
|
||||||
|
for (TagEntity d : data) {
|
||||||
|
TagFileTransformerModel m = new TagFileTransformerModel();
|
||||||
|
m.setId(d.getId());
|
||||||
|
m.setLabel(d.getLabel());
|
||||||
|
models.add(new FileTransformerBuilderItemResponse<>(m, d));
|
||||||
|
}
|
||||||
|
this.logger.debug("build {} items", Optional.of(models).map(List::size).orElse(0));
|
||||||
|
return models;
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,8 +20,8 @@ public class TransformerRepository implements FileTransformerClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileEnvelope exportDmp(DmpFileTransformerModel dmpFileTransformerModel, String format) throws InvalidApplicationException, IOException {
|
public FileEnvelope exportDmp(DmpFileTransformerModel dmpFileTransformerModel) throws InvalidApplicationException, IOException {
|
||||||
return transformerClient.post().uri("/export/dmp", uriBuilder -> uriBuilder.queryParam("format", format).build()).bodyValue(dmpFileTransformerModel).exchangeToMono(mono -> mono.bodyToMono(FileEnvelope.class)).block();
|
return transformerClient.post().uri("/export/dmp").bodyValue(dmpFileTransformerModel).exchangeToMono(mono -> mono.bodyToMono(FileEnvelope.class)).block();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,7 +4,7 @@ import eu.eudat.authorization.AuthorizationFlags;
|
||||||
import eu.eudat.authorization.Permission;
|
import eu.eudat.authorization.Permission;
|
||||||
import eu.eudat.cache.transformer.FileTransformerConfigurationCache;
|
import eu.eudat.cache.transformer.FileTransformerConfigurationCache;
|
||||||
import eu.eudat.commons.JsonHandlingService;
|
import eu.eudat.commons.JsonHandlingService;
|
||||||
import eu.eudat.commons.enums.DmpUserRole;
|
import eu.eudat.commons.enums.StorageType;
|
||||||
import eu.eudat.configurations.transformer.TransformerProperties;
|
import eu.eudat.configurations.transformer.TransformerProperties;
|
||||||
import eu.eudat.convention.ConventionService;
|
import eu.eudat.convention.ConventionService;
|
||||||
import eu.eudat.file.transformer.interfaces.FileTransformerConfiguration;
|
import eu.eudat.file.transformer.interfaces.FileTransformerConfiguration;
|
||||||
|
@ -12,33 +12,21 @@ import eu.eudat.file.transformer.models.description.DescriptionFileTransformerMo
|
||||||
import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel;
|
import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel;
|
||||||
import eu.eudat.file.transformer.models.misc.FileEnvelope;
|
import eu.eudat.file.transformer.models.misc.FileEnvelope;
|
||||||
import eu.eudat.file.transformer.models.misc.FileFormat;
|
import eu.eudat.file.transformer.models.misc.FileFormat;
|
||||||
import eu.eudat.model.*;
|
|
||||||
import eu.eudat.model.builder.DescriptionBuilder;
|
|
||||||
import eu.eudat.model.builder.DmpBuilder;
|
|
||||||
import eu.eudat.model.builder.filetransformer.DescriptionFileTransformerBuilder;
|
import eu.eudat.model.builder.filetransformer.DescriptionFileTransformerBuilder;
|
||||||
import eu.eudat.model.builder.filetransformer.DmpFileTransformerBuilder;
|
import eu.eudat.model.builder.filetransformer.DmpFileTransformerBuilder;
|
||||||
import eu.eudat.model.descriptionproperties.PropertyDefinition;
|
|
||||||
import eu.eudat.model.descriptiontemplatedefinition.*;
|
|
||||||
import eu.eudat.model.descriptiontemplatedefinition.fielddata.AutoCompleteData;
|
|
||||||
import eu.eudat.model.descriptiontemplatedefinition.fielddata.AutoCompleteSingleData;
|
|
||||||
import eu.eudat.model.descriptiontemplatedefinition.fielddata.BaseFieldData;
|
|
||||||
import eu.eudat.model.descriptiontemplatedefinition.fielddata.ComboBoxOption;
|
|
||||||
import eu.eudat.model.dmpblueprintdefinition.ExtraField;
|
|
||||||
import eu.eudat.model.dmpblueprintdefinition.SystemField;
|
|
||||||
import eu.eudat.model.file.TransformerCacheModel;
|
import eu.eudat.model.file.TransformerCacheModel;
|
||||||
import eu.eudat.query.DescriptionQuery;
|
import eu.eudat.query.DescriptionQuery;
|
||||||
import eu.eudat.query.DmpQuery;
|
import eu.eudat.query.DmpQuery;
|
||||||
import eu.eudat.query.EntityDoiQuery;
|
import eu.eudat.query.EntityDoiQuery;
|
||||||
import eu.eudat.repository.TransformerRepository;
|
import eu.eudat.repository.TransformerRepository;
|
||||||
import eu.eudat.service.entitydoi.EntityDoiService;
|
import eu.eudat.service.entitydoi.EntityDoiService;
|
||||||
|
import eu.eudat.service.storage.StorageFileService;
|
||||||
import gr.cite.commons.web.authz.service.AuthorizationService;
|
import gr.cite.commons.web.authz.service.AuthorizationService;
|
||||||
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeCacheService;
|
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeCacheService;
|
||||||
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeFilterFunction;
|
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeFilterFunction;
|
||||||
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeModel;
|
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeModel;
|
||||||
import gr.cite.tools.data.builder.BuilderFactory;
|
import gr.cite.tools.data.builder.BuilderFactory;
|
||||||
import gr.cite.tools.data.query.QueryFactory;
|
import gr.cite.tools.data.query.QueryFactory;
|
||||||
import gr.cite.tools.fieldset.BaseFieldSet;
|
|
||||||
import gr.cite.tools.fieldset.FieldSet;
|
|
||||||
import jakarta.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -55,7 +43,6 @@ import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -75,10 +62,11 @@ public class FileTransformerService {
|
||||||
private final JsonHandlingService jsonHandlingService;
|
private final JsonHandlingService jsonHandlingService;
|
||||||
private final QueryFactory queryFactory;
|
private final QueryFactory queryFactory;
|
||||||
private final BuilderFactory builderFactory;
|
private final BuilderFactory builderFactory;
|
||||||
|
private final StorageFileService storageFileService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public FileTransformerService(TransformerProperties transformerProperties, TokenExchangeCacheService tokenExchangeCacheService, FileTransformerConfigurationCache fileTransformerConfigurationCache, WebClient.Builder builder, EntityManager entityManager, AuthorizationService authorizationService, ConventionService conventionService, Environment environment, DmpQuery dmpQuery, EntityDoiQuery doiQuery, EntityDoiService doiService, ApplicationContext applicationContext, JsonHandlingService jsonHandlingService, QueryFactory queryFactory, BuilderFactory builderFactory) {
|
public FileTransformerService(TransformerProperties transformerProperties, TokenExchangeCacheService tokenExchangeCacheService, FileTransformerConfigurationCache fileTransformerConfigurationCache, WebClient.Builder builder, EntityManager entityManager, AuthorizationService authorizationService, ConventionService conventionService, Environment environment, DmpQuery dmpQuery, EntityDoiQuery doiQuery, EntityDoiService doiService, ApplicationContext applicationContext, JsonHandlingService jsonHandlingService, QueryFactory queryFactory, BuilderFactory builderFactory, StorageFileService storageFileService) {
|
||||||
this.transformerProperties = transformerProperties;
|
this.transformerProperties = transformerProperties;
|
||||||
this.tokenExchangeCacheService = tokenExchangeCacheService;
|
this.tokenExchangeCacheService = tokenExchangeCacheService;
|
||||||
this.fileTransformerConfigurationCache = fileTransformerConfigurationCache;
|
this.fileTransformerConfigurationCache = fileTransformerConfigurationCache;
|
||||||
|
@ -91,6 +79,7 @@ public class FileTransformerService {
|
||||||
this.jsonHandlingService = jsonHandlingService;
|
this.jsonHandlingService = jsonHandlingService;
|
||||||
this.queryFactory = queryFactory;
|
this.queryFactory = queryFactory;
|
||||||
this.builderFactory = builderFactory;
|
this.builderFactory = builderFactory;
|
||||||
|
this.storageFileService = storageFileService;
|
||||||
this.clients = new HashMap<>();
|
this.clients = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,173 +131,15 @@ public class FileTransformerService {
|
||||||
//GK: First get the right client
|
//GK: First get the right client
|
||||||
TransformerRepository repository = getRepository(format);
|
TransformerRepository repository = getRepository(format);
|
||||||
//GK: Second get the Target Data Management Plan
|
//GK: Second get the Target Data Management Plan
|
||||||
/*FieldSet fieldSet = new BaseFieldSet(Dmp._id,
|
|
||||||
Dmp._accessType,
|
|
||||||
Dmp._dmpReferences,
|
|
||||||
Dmp._blueprint,
|
|
||||||
Dmp._dmpUsers,
|
|
||||||
Dmp._createdAt,
|
|
||||||
Dmp._creator,
|
|
||||||
Dmp._description,
|
|
||||||
Dmp._descriptions,
|
|
||||||
Dmp._entityDois,
|
|
||||||
Dmp._finalizedAt,
|
|
||||||
Dmp._groupId,
|
|
||||||
Dmp._isActive,
|
|
||||||
Dmp._label,
|
|
||||||
Dmp._properties,
|
|
||||||
Dmp._language,
|
|
||||||
Dmp._publicAfter,
|
|
||||||
Dmp._status,
|
|
||||||
Dmp._updatedAt,
|
|
||||||
Dmp._version,
|
|
||||||
Dmp._versionStatus,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._id,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._data,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._id,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._description,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._abbreviation,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._definition,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._label,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._source,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._sourceType,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._type,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._isActive,
|
|
||||||
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._reference,
|
|
||||||
Dmp._creator + "." + User._id,
|
|
||||||
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._avatarUrl,
|
|
||||||
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._culture,
|
|
||||||
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._language,
|
|
||||||
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._timezone,
|
|
||||||
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._roleOrganization,
|
|
||||||
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._organization,
|
|
||||||
Dmp._creator + "." + User._createdAt,
|
|
||||||
Dmp._creator + "." + User._isActive,
|
|
||||||
Dmp._creator + "." + User._name,
|
|
||||||
Dmp._creator + "." + User._roles + "." + UserRole._id,
|
|
||||||
Dmp._creator + "." + User._roles + "." + UserRole._role,
|
|
||||||
Dmp._descriptions + "." + Description._id,
|
|
||||||
Dmp._descriptions + "." + Description._label,
|
|
||||||
Dmp._descriptions + "." + Description._properties,
|
|
||||||
Dmp._descriptions + "." + Description._description,
|
|
||||||
Dmp._descriptions + "." + Description._status,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTags,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences,
|
|
||||||
Dmp._descriptions + "." + Description._isActive,
|
|
||||||
Dmp._descriptions + "." + Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._key,
|
|
||||||
Dmp._descriptions + "." + Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._value,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._description,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._abbreviation,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._definition,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._label,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._source,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._sourceType,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._type,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._isActive,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._reference,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._description,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._label,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._language,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._status,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._isActive,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._groupId,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._type,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._version,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._description,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._sections,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._title,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._page,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._ordinal,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._defaultVisibility,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._extendedDescription,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._max,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._min,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._placeholder,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._tableView,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._numbering,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._title,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._description,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._ordinal,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._numbering,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._max,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._min,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._tableView,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._placeholder,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._hasCommentField,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._additionalInformation,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._extendedDescription,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._ordinal,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._numbering,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._label,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._fieldType,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._multiAutoComplete,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._label,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._uri,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._source,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._value,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._defaultValue,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._includeInExport,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._schematics,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._validations,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._target,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._value,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._ordinal,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._title,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTags + "." + DescriptionTag._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._id,
|
|
||||||
Dmp._descriptions + "." + Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._label,
|
|
||||||
Dmp._descriptions + "." + Description._dmpDescriptionTemplate + "." + DmpDescriptionTemplate._sectionId,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._id,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._label,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._id,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._description,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._label,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._ordinal,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._id,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._description,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._ordinal,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._label,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._placeholder,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._category,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._required,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + SystemField._systemFieldType,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + ExtraField._dataType,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._id,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._label,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._descriptionTemplateId,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._maxMultiplicity,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._minMultiplicity,
|
|
||||||
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._hasTemplates,
|
|
||||||
Dmp._entityDois + "." + EntityDoi._doi,
|
|
||||||
Dmp._entityDois + "." + EntityDoi._id,
|
|
||||||
Dmp._entityDois + "." + EntityDoi._entityType,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._id,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._id,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._additionalInfo,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._createdAt,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._isActive,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._name,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._roles + "." + UserRole._id,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._user + "." + User._roles + "." + UserRole._role,
|
|
||||||
Dmp._dmpUsers + "." + DmpUser._role
|
|
||||||
);*/
|
|
||||||
DmpQuery query = this.queryFactory.query(DmpQuery.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).ids(dmpId);
|
DmpQuery query = this.queryFactory.query(DmpQuery.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).ids(dmpId);
|
||||||
DmpFileTransformerModel dmpFileTransformerModel = this.builderFactory.builder(DmpFileTransformerBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(query.first());
|
DmpFileTransformerModel dmpFileTransformerModel = this.builderFactory.builder(DmpFileTransformerBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(query.first());
|
||||||
FileEnvelope fileEnvelope = repository.exportDmp(dmpFileTransformerModel, format);
|
dmpFileTransformerModel.setVariant(format);
|
||||||
|
FileEnvelope fileEnvelope = repository.exportDmp(dmpFileTransformerModel);
|
||||||
eu.eudat.model.file.FileEnvelope result = new eu.eudat.model.file.FileEnvelope();
|
eu.eudat.model.file.FileEnvelope result = new eu.eudat.model.file.FileEnvelope();
|
||||||
|
byte[] data = storageFileService.readByFileRefAsBytesSafe(fileEnvelope.getFile(), StorageType.Transformer);
|
||||||
File temp = new File(environment.getProperty("path.path") + UUID.randomUUID());
|
File temp = new File(environment.getProperty("path.path") + UUID.randomUUID());
|
||||||
try (FileOutputStream fos = new FileOutputStream(temp)) {
|
try (FileOutputStream fos = new FileOutputStream(temp)) {
|
||||||
fos.write(fileEnvelope.getFile());
|
fos.write(data);
|
||||||
}
|
}
|
||||||
result.setFile(temp);
|
result.setFile(temp);
|
||||||
result.setFilename(fileEnvelope.getFilename());
|
result.setFilename(fileEnvelope.getFilename());
|
||||||
|
@ -322,125 +153,15 @@ public class FileTransformerService {
|
||||||
//GK: First get the right client
|
//GK: First get the right client
|
||||||
TransformerRepository repository = getRepository(format);
|
TransformerRepository repository = getRepository(format);
|
||||||
//GK: Second get the Target Data Management Plan
|
//GK: Second get the Target Data Management Plan
|
||||||
/*FieldSet fieldSet = new BaseFieldSet(
|
|
||||||
Description._dmp + "." + Dmp._id,
|
|
||||||
Description._dmp + "." + Dmp._createdAt,
|
|
||||||
Description._dmp + "." + Dmp._finalizedAt,
|
|
||||||
Description._dmp + "." + Dmp._groupId,
|
|
||||||
Description._dmp + "." + Dmp._isActive,
|
|
||||||
Description._dmp + "." + Dmp._label,
|
|
||||||
Description._dmp + "." + Dmp._language,
|
|
||||||
Description._dmp + "." + Dmp._publicAfter,
|
|
||||||
Description._dmp + "." + Dmp._status,
|
|
||||||
Description._dmp + "." + Dmp._updatedAt,
|
|
||||||
Description._dmp + "." + Dmp._version,
|
|
||||||
Description._dmp + "." + Dmp._properties,
|
|
||||||
Description._dmp + "." + Dmp._versionStatus,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._id,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._data,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._id,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._description,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._abbreviation,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._definition,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._label,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._source,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._sourceType,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._type,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._isActive,
|
|
||||||
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._reference,
|
|
||||||
Description._id,
|
|
||||||
Description._label,
|
|
||||||
Description._properties,
|
|
||||||
Description._description,
|
|
||||||
Description._status,
|
|
||||||
Description._descriptionTags,
|
|
||||||
Description._descriptionTemplate,
|
|
||||||
Description._descriptionReferences,
|
|
||||||
Description._isActive,
|
|
||||||
Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._key,
|
|
||||||
Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._value,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._id,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._id,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._description,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._abbreviation,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._definition,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._label,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._source,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._sourceType,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._type,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._isActive,
|
|
||||||
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._reference,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._id,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._description,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._label,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._language,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._status,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._isActive,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._groupId,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._type,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._version,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._id,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._description,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._sections,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._title,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._page,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._ordinal,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._defaultVisibility,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._extendedDescription,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._max,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._min,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._placeholder,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._tableView,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._numbering,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._id,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._title,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._description,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._ordinal,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._numbering,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._max,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._min,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._tableView,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._placeholder,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._hasCommentField,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._additionalInformation,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._extendedDescription,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._id,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._ordinal,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._numbering,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._label,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._fieldType,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._multiAutoComplete,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._label,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._uri,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._source,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._value,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._defaultValue,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._includeInExport,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._schematics,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._validations,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._target,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._value,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._id,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._ordinal,
|
|
||||||
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._title,
|
|
||||||
Description._descriptionTags + "." + DescriptionTag._id,
|
|
||||||
Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._id,
|
|
||||||
Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._label,
|
|
||||||
Description._dmp + "." + Dmp._entityDois + "." + EntityDoi._doi,
|
|
||||||
Description._dmp + "." + Dmp._entityDois + "." + EntityDoi._id,
|
|
||||||
Description._dmp + "." + Dmp._entityDois + "." + EntityDoi._entityType
|
|
||||||
);*/
|
|
||||||
DescriptionQuery query = this.queryFactory.query(DescriptionQuery.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).ids(descriptionId);
|
DescriptionQuery query = this.queryFactory.query(DescriptionQuery.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).ids(descriptionId);
|
||||||
DescriptionFileTransformerModel descriptionFileTransformerModel = this.builderFactory.builder(DescriptionFileTransformerBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(query.first());
|
DescriptionFileTransformerModel descriptionFileTransformerModel = this.builderFactory.builder(DescriptionFileTransformerBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(query.first());
|
||||||
|
descriptionFileTransformerModel.setCreatedBy(descriptionFileTransformerModel.getDmp().getCreator());
|
||||||
FileEnvelope fileEnvelope = repository.exportDescription(descriptionFileTransformerModel, format);
|
FileEnvelope fileEnvelope = repository.exportDescription(descriptionFileTransformerModel, format);
|
||||||
eu.eudat.model.file.FileEnvelope result = new eu.eudat.model.file.FileEnvelope();
|
eu.eudat.model.file.FileEnvelope result = new eu.eudat.model.file.FileEnvelope();
|
||||||
|
byte[] data = this.storageFileService.readByFileRefAsBytesSafe(fileEnvelope.getFile(), StorageType.Transformer);
|
||||||
File temp = new File(environment.getProperty("path.path") + UUID.randomUUID());
|
File temp = new File(environment.getProperty("path.path") + UUID.randomUUID());
|
||||||
try (FileOutputStream fos = new FileOutputStream(temp)) {
|
try (FileOutputStream fos = new FileOutputStream(temp)) {
|
||||||
fos.write(fileEnvelope.getFile());
|
fos.write(data);
|
||||||
}
|
}
|
||||||
result.setFile(temp);
|
result.setFile(temp);
|
||||||
result.setFilename(fileEnvelope.getFilename());
|
result.setFilename(fileEnvelope.getFilename());
|
||||||
|
|
|
@ -6,6 +6,8 @@ storage:
|
||||||
basePath: ./storage/temp
|
basePath: ./storage/temp
|
||||||
- type: Main
|
- type: Main
|
||||||
basePath: ./storage/main
|
basePath: ./storage/main
|
||||||
|
- type: Transformer
|
||||||
|
basePath: ${TRANSFORMER_BASE_PATH}
|
||||||
static-files:
|
static-files:
|
||||||
externalUrls: dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml
|
externalUrls: dmp-backend/web/src/main/resources/externalUrls/ExternalUrls.xml
|
||||||
semantics: Semantics.json
|
semantics: Semantics.json
|
||||||
|
|
|
@ -6,6 +6,18 @@ transformer:
|
||||||
client-id: ${IDP_APIKEY_CLIENT_ID:}
|
client-id: ${IDP_APIKEY_CLIENT_ID:}
|
||||||
client-secret: ${IDP_APIKEY_CLIENT_SECRET:}
|
client-secret: ${IDP_APIKEY_CLIENT_SECRET:}
|
||||||
scope: ${IDP_APIKEY_SCOPE:}
|
scope: ${IDP_APIKEY_SCOPE:}
|
||||||
|
- url: http://localhost:8086
|
||||||
|
codes: [ json ]
|
||||||
|
issuer-url: ${IDP_ISSUER_URI_TOKEN:}
|
||||||
|
client-id: ${IDP_APIKEY_CLIENT_ID:}
|
||||||
|
client-secret: ${IDP_APIKEY_CLIENT_SECRET:}
|
||||||
|
scope: ${IDP_APIKEY_SCOPE:}
|
||||||
|
- url: http://localhost:8087
|
||||||
|
codes: [ xml ]
|
||||||
|
issuer-url: ${IDP_ISSUER_URI_TOKEN:}
|
||||||
|
client-id: ${IDP_APIKEY_CLIENT_ID:}
|
||||||
|
client-secret: ${IDP_APIKEY_CLIENT_SECRET:}
|
||||||
|
scope: ${IDP_APIKEY_SCOPE:}
|
||||||
|
|
||||||
temp:
|
temp:
|
||||||
temp: ${TEMP_STORAGE}
|
temp: ${TEMP_STORAGE}
|
|
@ -1,5 +1,5 @@
|
||||||
export interface FileFormat {
|
export interface FileFormat {
|
||||||
format: string;
|
format: string;
|
||||||
formatName: string;
|
hasLogo: boolean;
|
||||||
icon: string;
|
icon: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,15 +25,15 @@ export class FileTransformerHttpService extends BaseService {
|
||||||
return this.http.get<FileFormat[]>(url).pipe(catchError((error: any) => throwError(error)));
|
return this.http.get<FileFormat[]>(url).pipe(catchError((error: any) => throwError(error)));
|
||||||
}
|
}
|
||||||
|
|
||||||
exportDmp(dmpId: Guid): Observable<any> {
|
exportDmp(dmpId: Guid, format: string): Observable<any> {
|
||||||
//TODO: implement
|
//TODO: implement
|
||||||
const url = `${this.apiBase}/export-dmp`;
|
const url = `${this.apiBase}/export-dmp`;
|
||||||
return this.http.post<any>(url, null).pipe(catchError((error: any) => throwError(error)));
|
return this.http.post<any>(url, {id: dmpId, format: format}, {responseType: 'blob', observe: 'response'}).pipe(catchError((error: any) => throwError(error)));
|
||||||
}
|
}
|
||||||
|
|
||||||
exportDescription(item: any): Observable<any> {
|
exportDescription(id: Guid, format: string): Observable<any> {
|
||||||
//TODO: implement
|
//TODO: implement
|
||||||
const url = `${this.apiBase}/export-description`;
|
const url = `${this.apiBase}/export-description`;
|
||||||
return this.http.post<any>(url, item).pipe(catchError((error: any) => throwError(error)));
|
return this.http.post<any>(url, {id: id, format: format}, {responseType: 'blob', observe: 'response'}).pipe(catchError((error: any) => throwError(error)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,18 @@ import { FileFormat } from '@app/core/model/file/file-format.model';
|
||||||
import { BaseService } from '@common/base/base.service';
|
import { BaseService } from '@common/base/base.service';
|
||||||
import { catchError, takeUntil } from 'rxjs/operators';
|
import { catchError, takeUntil } from 'rxjs/operators';
|
||||||
import { FileTransformerHttpService } from './file-transformer.http.service';
|
import { FileTransformerHttpService } from './file-transformer.http.service';
|
||||||
|
import { Guid } from '@common/types/guid';
|
||||||
|
import * as FileSaver from 'file-saver';
|
||||||
|
import { MatomoService } from '../matomo/matomo-service';
|
||||||
|
import { FileUtils } from '../utilities/file-utils.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class FileTransformerService extends BaseService {
|
export class FileTransformerService extends BaseService {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private fileTransformerHttpService: FileTransformerHttpService
|
private fileTransformerHttpService: FileTransformerHttpService,
|
||||||
|
private matomoService: MatomoService,
|
||||||
|
private fileUtils: FileUtils
|
||||||
) { super(); }
|
) { super(); }
|
||||||
|
|
||||||
private _initialized: boolean = false;
|
private _initialized: boolean = false;
|
||||||
|
@ -34,4 +40,36 @@ export class FileTransformerService extends BaseService {
|
||||||
this._initialized = true;
|
this._initialized = true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exportDmp(id: Guid, format: string) {
|
||||||
|
this._loading = true;
|
||||||
|
this.fileTransformerHttpService.exportDmp(id, format).pipe(takeUntil(this._destroyed), catchError((error) => {
|
||||||
|
this._loading = false;
|
||||||
|
return null;
|
||||||
|
})).subscribe(result => {
|
||||||
|
if (result !== null) {
|
||||||
|
const blob = new Blob([result.body], { type: 'application/octet-stream' });
|
||||||
|
const filename = this.fileUtils.getFilenameFromContentDispositionHeader(result.headers.get('Content-Disposition'));
|
||||||
|
|
||||||
|
FileSaver.saveAs(blob, filename);
|
||||||
|
this.matomoService.trackDownload('dmps', format, id.toString());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
exportDescription(id: Guid, format: string) {
|
||||||
|
this._loading = true;
|
||||||
|
this.fileTransformerHttpService.exportDescription(id, format).pipe(takeUntil(this._destroyed), catchError((error) => {
|
||||||
|
this._loading = false;
|
||||||
|
return null;
|
||||||
|
})).subscribe(result => {
|
||||||
|
if (result !== null) {
|
||||||
|
const blob = new Blob([result.body], { type: 'application/octet-stream' });
|
||||||
|
const filename = this.fileUtils.getFilenameFromContentDispositionHeader(result.headers.get('Content-Disposition'));
|
||||||
|
|
||||||
|
FileSaver.saveAs(blob, filename);
|
||||||
|
this.matomoService.trackDownload('descriptions', format, id.toString());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,19 +70,19 @@
|
||||||
<mat-menu #exportMenu="matMenu" xPosition="before">
|
<mat-menu #exportMenu="matMenu" xPosition="before">
|
||||||
<button mat-menu-item (click)="downloadPDF(activity.id)">
|
<button mat-menu-item (click)="downloadPDF(activity.id)">
|
||||||
<i class="fa fa-file-pdf-o pr-2"></i>
|
<i class="fa fa-file-pdf-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.PDF' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.PDF' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button mat-menu-item (click)="downloadDocx(activity.id)">
|
<button mat-menu-item (click)="downloadDocx(activity.id)">
|
||||||
<i class="fa fa-file-word-o pr-2"></i>
|
<i class="fa fa-file-word-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.DOC' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.DOC' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button mat-menu-item (click)="downloadXml(activity.id)">
|
<button mat-menu-item (click)="downloadXml(activity.id)">
|
||||||
<i class="fa fa-file-code-o pr-2"></i>
|
<i class="fa fa-file-code-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.XML' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.XML' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button mat-menu-item (click)="downloadJson(activity.id)">
|
<button mat-menu-item (click)="downloadJson(activity.id)">
|
||||||
<i class="fa fa-file-o pr-2"></i>
|
<i class="fa fa-file-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.JSON' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.JSON' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
<mat-menu #actionsMenu="matMenu" xPosition="before">
|
<mat-menu #actionsMenu="matMenu" xPosition="before">
|
||||||
|
|
|
@ -34,15 +34,15 @@
|
||||||
<mat-menu #exportMenu="matMenu" xPosition="before">
|
<mat-menu #exportMenu="matMenu" xPosition="before">
|
||||||
<button mat-menu-item (click)="downloadPDF(formGroup.get('id').value)">
|
<button mat-menu-item (click)="downloadPDF(formGroup.get('id').value)">
|
||||||
<i class="fa fa-file-pdf-o pr-2"></i>
|
<i class="fa fa-file-pdf-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.PDF' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.PDF' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button mat-menu-item (click)="downloadDOCX(formGroup.get('id').value)">
|
<button mat-menu-item (click)="downloadDOCX(formGroup.get('id').value)">
|
||||||
<i class="fa fa-file-word-o pr-2"></i>
|
<i class="fa fa-file-word-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.DOC' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.DOC' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button mat-menu-item (click)="downloadXML(formGroup.get('id').value)">
|
<button mat-menu-item (click)="downloadXML(formGroup.get('id').value)">
|
||||||
<i class="fa fa-file-code-o pr-2"></i>
|
<i class="fa fa-file-code-o pr-2"></i>
|
||||||
<span>{{'GENERAL.FILE-TYPES.XML' | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFOMER.XML' | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -716,7 +716,7 @@ export class DescriptionFormFieldComponent extends BaseComponent implements OnIn
|
||||||
// this.filesToUpload = null;
|
// this.filesToUpload = null;
|
||||||
// messages.push(this.language.instant('DATASET-WIZARD.MESSAGES.LARGE-FILE-OR-UNACCEPTED-TYPE'));
|
// messages.push(this.language.instant('DATASET-WIZARD.MESSAGES.LARGE-FILE-OR-UNACCEPTED-TYPE'));
|
||||||
// messages.push(this.language.instant('DATASET-WIZARD.MESSAGES.MAX-FILE-SIZE', { 'maxfilesize': this.form.get("data").value.maxFileSizeInMB }));
|
// messages.push(this.language.instant('DATASET-WIZARD.MESSAGES.MAX-FILE-SIZE', { 'maxfilesize': this.form.get("data").value.maxFileSizeInMB }));
|
||||||
// messages.push(this.language.instant('DATASET-WIZARD.MESSAGES.ACCEPTED-FILE-TYPES') + this.form.get("data").value.types.map(type => type.value).join(", "));
|
// messages.push(this.language.instant('DATASET-WIZARD.MESSAGES.ACCEPTED-FILE-TRANSFOMER') + this.form.get("data").value.types.map(type => type.value).join(", "));
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// if (messages && messages.length > 0) {
|
// if (messages && messages.length > 0) {
|
||||||
|
|
|
@ -38,9 +38,9 @@
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
<mat-menu #exportMenu="matMenu" xPosition="before">
|
<mat-menu #exportMenu="matMenu" xPosition="before">
|
||||||
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDescription(description.id)">
|
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDescription(description.id, fileTransformer.format)">
|
||||||
<i class="fa pr-2" [ngClass]="fileTransformer.icon"></i>
|
<i class="fa pr-2" [ngClass]="fileTransformer.icon ? fileTransformer.icon : 'fa-file-o'"></i>
|
||||||
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format.toUpperCase() | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
</div>
|
</div>
|
|
@ -117,9 +117,9 @@
|
||||||
{{ 'DESCRIPTION-OVERVIEW.ACTIONS.EXPORT' | translate }}</p>
|
{{ 'DESCRIPTION-OVERVIEW.ACTIONS.EXPORT' | translate }}</p>
|
||||||
</div>
|
</div>
|
||||||
<mat-menu #exportMenu="matMenu" xPosition="before">
|
<mat-menu #exportMenu="matMenu" xPosition="before">
|
||||||
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDescription(description.id)">
|
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDescription(description.id, fileTransformer.format)">
|
||||||
<i class="fa pr-2" [ngClass]="fileTransformer.icon"></i>
|
<i class="fa pr-2" [ngClass]="fileTransformer.icon ? fileTransformer.icon : 'fa-file-o'"></i>
|
||||||
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format.toUpperCase() | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -38,9 +38,9 @@
|
||||||
<a class="col-auto pointer" *ngIf="isAuthenticated()" [matMenuTriggerFor]="actionsMenu"><span class="material-icons icon-align pl-2">more_horiz</span></a>
|
<a class="col-auto pointer" *ngIf="isAuthenticated()" [matMenuTriggerFor]="actionsMenu"><span class="material-icons icon-align pl-2">more_horiz</span></a>
|
||||||
</div>
|
</div>
|
||||||
<mat-menu #exportMenu="matMenu" xPosition="before">
|
<mat-menu #exportMenu="matMenu" xPosition="before">
|
||||||
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDmp(dmp.id)">
|
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDmp(dmp.id, fileTransformer.format)">
|
||||||
<i class="fa pr-2" [ngClass]="fileTransformer.icon"></i>
|
<i class="fa pr-2" [ngClass]="fileTransformer.hasLogo ? fileTransformer.icon : 'fa-file-o'"></i>
|
||||||
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format.toUpperCase() | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
<mat-menu #actionsMenu="matMenu" xPosition="before">
|
<mat-menu #actionsMenu="matMenu" xPosition="before">
|
||||||
|
|
|
@ -166,9 +166,9 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<mat-menu #exportMenu="matMenu" xPosition="before">
|
<mat-menu #exportMenu="matMenu" xPosition="before">
|
||||||
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDmp(dmp.id)">
|
<button mat-menu-item *ngFor='let fileTransformer of fileTransformerService.availableFormats' (click)="fileTransformerService.exportDmp(dmp.id, fileTransformer.format)">
|
||||||
<i class="fa pr-2" [ngClass]="fileTransformer.icon"></i>
|
<i class="fa pr-2" [ngClass]="fileTransformer.icon ? fileTransformer.icon : 'fa-file-o'"></i>
|
||||||
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.format | translate}}</span>
|
<span>{{'GENERAL.FILE-TRANSFORMER.' + fileTransformer.formatName.toUpperCase() | translate}}</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Sprache",
|
"LANGUAGE": "Sprache",
|
||||||
"SIGN-IN": "Sign in to account"
|
"SIGN-IN": "Sign in to account"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "JSON",
|
"JSON": "JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Importieren",
|
"UPLOAD-XML": "Importieren",
|
||||||
|
|
|
@ -176,7 +176,7 @@
|
||||||
"TENANTS": "Tenants",
|
"TENANTS": "Tenants",
|
||||||
"REFERENCES": "References"
|
"REFERENCES": "References"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFORMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -849,7 +849,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Import",
|
"UPLOAD-XML": "Import",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Idioma",
|
"LANGUAGE": "Idioma",
|
||||||
"SIGN-IN": "Identificarse con su cuenta"
|
"SIGN-IN": "Identificarse con su cuenta"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Importar",
|
"UPLOAD-XML": "Importar",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Γλώσσα",
|
"LANGUAGE": "Γλώσσα",
|
||||||
"SIGN-IN": "Σύνδεση στο λογαριασμό"
|
"SIGN-IN": "Σύνδεση στο λογαριασμό"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "JSON",
|
"JSON": "JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "Δεν υπάρχουν επιλεγμένα αρχεία για μεταφόρτωση",
|
"NO-FILES-SELECTED": "Δεν υπάρχουν επιλεγμένα αρχεία για μεταφόρτωση",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "Το αρχείο είναι πολύ μεγάλο ή ο τύπος του δεν υποστηρίζεται.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "Το αρχείο είναι πολύ μεγάλο ή ο τύπος του δεν υποστηρίζεται.",
|
||||||
"MAX-FILE-SIZE": "Τα αρχεία πρέπει να είναι έως {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Τα αρχεία πρέπει να είναι έως {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Οι υποστηριζόμενοι τύποι πολυμέσων είναι: "
|
"ACCEPTED-FILE-TRANSFOMER": "Οι υποστηριζόμενοι τύποι πολυμέσων είναι: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Εισαγωγή",
|
"UPLOAD-XML": "Εισαγωγή",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Jezik",
|
"LANGUAGE": "Jezik",
|
||||||
"SIGN-IN": "Prijava"
|
"SIGN-IN": "Prijava"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "Nije izabrana niti jedna datoteka",
|
"NO-FILES-SELECTED": "Nije izabrana niti jedna datoteka",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "Datoteka je prevelika ili format nije podržan.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "Datoteka je prevelika ili format nije podržan.",
|
||||||
"MAX-FILE-SIZE": "Veličina odabranih datoteka ne smije biti veća od {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Veličina odabranih datoteka ne smije biti veća od {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Podržani formati datoteka su: "
|
"ACCEPTED-FILE-TRANSFOMER": "Podržani formati datoteka su: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Uvezi",
|
"UPLOAD-XML": "Uvezi",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Język",
|
"LANGUAGE": "Język",
|
||||||
"SIGN-IN": "Zaloguj się na konto"
|
"SIGN-IN": "Zaloguj się na konto"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "Nie zaznaczono pliku do przesłania",
|
"NO-FILES-SELECTED": "Nie zaznaczono pliku do przesłania",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "Plik jest za duży lub jego typ nie jest obsługiwany.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "Plik jest za duży lub jego typ nie jest obsługiwany.",
|
||||||
"MAX-FILE-SIZE": "Przesyłane pliki powinny mieć do {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Przesyłane pliki powinny mieć do {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Obsługiwane typy nośników to: "
|
"ACCEPTED-FILE-TRANSFOMER": "Obsługiwane typy nośników to: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Importuj",
|
"UPLOAD-XML": "Importuj",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Idioma",
|
"LANGUAGE": "Idioma",
|
||||||
"SIGN-IN": "Entrar na conta"
|
"SIGN-IN": "Entrar na conta"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Importar",
|
"UPLOAD-XML": "Importar",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Jazyk",
|
"LANGUAGE": "Jazyk",
|
||||||
"SIGN-IN": "Prihlásiť sa do účtu"
|
"SIGN-IN": "Prihlásiť sa do účtu"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "JSON",
|
"JSON": "JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Importovať",
|
"UPLOAD-XML": "Importovať",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Jezik",
|
"LANGUAGE": "Jezik",
|
||||||
"SIGN-IN": "Prijavljivanje korisnika"
|
"SIGN-IN": "Prijavljivanje korisnika"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "Uvezite",
|
"UPLOAD-XML": "Uvezite",
|
||||||
|
|
|
@ -175,7 +175,7 @@
|
||||||
"LANGUAGE": "Dil",
|
"LANGUAGE": "Dil",
|
||||||
"SIGN-IN": "Oturum aç"
|
"SIGN-IN": "Oturum aç"
|
||||||
},
|
},
|
||||||
"FILE-TYPES": {
|
"FILE-TRANSFOMER": {
|
||||||
"PDF": "PDF",
|
"PDF": "PDF",
|
||||||
"XML": "XML",
|
"XML": "XML",
|
||||||
"JSON": "RDA JSON",
|
"JSON": "RDA JSON",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"NO-FILES-SELECTED": "There is no selected file to upload",
|
"NO-FILES-SELECTED": "There is no selected file to upload",
|
||||||
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
"LARGE-FILE-OR-UNACCEPTED-TYPE": "The file is too large or its type is not supported.",
|
||||||
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
"MAX-FILE-SIZE": "Uploaded files should be up to {{maxfilesize}} MB.",
|
||||||
"ACCEPTED-FILE-TYPES": "Supported media types are: "
|
"ACCEPTED-FILE-TRANSFOMER": "Supported media types are: "
|
||||||
},
|
},
|
||||||
"UPLOAD": {
|
"UPLOAD": {
|
||||||
"UPLOAD-XML": "İçeri Aktar",
|
"UPLOAD-XML": "İçeri Aktar",
|
||||||
|
|
Loading…
Reference in New Issue