This commit is contained in:
Diamantis Tziotzios 2023-11-03 13:24:01 +02:00
parent 44dab9c19a
commit 9fed92dbcb
22 changed files with 669 additions and 631 deletions

View File

@ -77,7 +77,7 @@ public class DMPDaoImpl extends DatabaseAccess<DMP> implements DMPDao {
query.where((builder, root) -> root.join("users", JoinType.LEFT).join("user", JoinType.LEFT).get("id").in(criteria.getCollaborators())); query.where((builder, root) -> root.join("users", JoinType.LEFT).join("user", JoinType.LEFT).get("id").in(criteria.getCollaborators()));
} }
if (criteria.getDatasetTemplates() != null && !criteria.getDatasetTemplates().isEmpty()) { if (criteria.getDatasetTemplates() != null && !criteria.getDatasetTemplates().isEmpty()) {
query.where((builder, root) -> root.join("associatedDmps", JoinType.LEFT).get("id").in(criteria.getDatasetTemplates())); query.where((builder, root) -> root.join("associatedDmps", JoinType.LEFT).get("datasetprofile").get("id").in(criteria.getDatasetTemplates()));
} }
if (criteria.getGrantStatus() != null) { if (criteria.getGrantStatus() != null) {
if (criteria.getGrantStatus().equals(GrantStateType.FINISHED.getValue().shortValue())) if (criteria.getGrantStatus().equals(GrantStateType.FINISHED.getValue().shortValue()))

View File

@ -1,5 +1,6 @@
package eu.eudat.logic.managers; package eu.eudat.logic.managers;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import eu.eudat.configurations.dynamicgrant.DynamicGrantConfiguration; import eu.eudat.configurations.dynamicgrant.DynamicGrantConfiguration;
@ -67,6 +68,7 @@ import eu.eudat.models.data.userinfo.UserListingModel;
import eu.eudat.queryable.QueryableList; import eu.eudat.queryable.QueryableList;
import eu.eudat.types.Authorities; import eu.eudat.types.Authorities;
import eu.eudat.types.MetricNames; import eu.eudat.types.MetricNames;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFRun;
@ -144,6 +146,7 @@ public class DataManagementPlanManager {
public DataTableData<DataManagementPlanListingModel> getPaged(DataManagementPlanTableRequest dataManagementPlanTableRequest, Principal principal, String fieldsGroup) throws Exception { public DataTableData<DataManagementPlanListingModel> getPaged(DataManagementPlanTableRequest dataManagementPlanTableRequest, Principal principal, String fieldsGroup) throws Exception {
UUID principalID = principal.getId(); UUID principalID = principal.getId();
List<Dmp> dmps = null; List<Dmp> dmps = null;
QueryableList<DMP> items = null; QueryableList<DMP> items = null;
QueryableList<DMP> authItems = null; QueryableList<DMP> authItems = null;
Long totalData = 0L; Long totalData = 0L;
@ -1360,103 +1363,104 @@ public class DataManagementPlanManager {
dmpBlueprintModel.fromDataModel(dmpProfile); dmpBlueprintModel.fromDataModel(dmpProfile);
DataManagementPlanBlueprint dmpBlueprint = dmpBlueprintModel.getDefinition(); DataManagementPlanBlueprint dmpBlueprint = dmpBlueprintModel.getDefinition();
for(Section section: dmpBlueprint.getSections()){ for(Section section: dmpBlueprint.getSections()){
wordBuilder.addParagraphContent("Section " + section.getOrdinal(), document, ParagraphStyle.HEADER1, BigInteger.ZERO, 0); wordBuilder.addParagraphContent(section.getOrdinal() + ". " + section.getLabel(), document, ParagraphStyle.HEADER1, BigInteger.ZERO, 0);
XWPFParagraph sectionInfoParagraph = document.createParagraph(); // XWPFParagraph sectionInfoParagraph = document.createParagraph();
sectionInfoParagraph.setSpacingBetween(1.0); // sectionInfoParagraph.setSpacingBetween(1.0);
XWPFRun runSectionTitle = sectionInfoParagraph.createRun(); // XWPFRun runSectionTitle = sectionInfoParagraph.createRun();
runSectionTitle.setText("Title: "); // runSectionTitle.setText("Title: ");
runSectionTitle.setColor("000000"); // runSectionTitle.setColor("000000");
XWPFRun runSectionTitleText = sectionInfoParagraph.createRun(); // XWPFRun runSectionTitleText = sectionInfoParagraph.createRun();
runSectionTitleText.setText(section.getLabel()); // runSectionTitleText.setText(section.getLabel());
runSectionTitleText.setColor("116a78"); // runSectionTitleText.setColor("116a78");
XWPFParagraph sectionDescriptionParagraph = document.createParagraph(); // XWPFParagraph sectionDescriptionParagraph = document.createParagraph();
XWPFRun runSectionDescription = sectionDescriptionParagraph.createRun(); // XWPFRun runSectionDescription = sectionDescriptionParagraph.createRun();
runSectionDescription.setText("Description: "); // runSectionDescription.setText("Description: ");
runSectionDescription.setColor("000000"); // runSectionDescription.setColor("000000");
XWPFRun runSectionDescriptionText = sectionDescriptionParagraph.createRun(); // XWPFRun runSectionDescriptionText = sectionDescriptionParagraph.createRun();
runSectionDescriptionText.setText(section.getDescription()); // runSectionDescriptionText.setText(section.getDescription());
runSectionDescriptionText.setColor("116a78"); // runSectionDescriptionText.setColor("116a78");
wordBuilder.addParagraphContent("Section Fields", document, ParagraphStyle.HEADER2, BigInteger.ZERO, 0); //wordBuilder.addParagraphContent("Section Fields", document, ParagraphStyle.HEADER2, BigInteger.ZERO, 0);
section.getFields().sort(Comparator.comparingInt(FieldModel::getOrdinal)); section.getFields().sort(Comparator.comparingInt(FieldModel::getOrdinal));
for(FieldModel field: section.getFields()){ for(FieldModel field: section.getFields()){
if(field.getCategory() == FieldCategory.SYSTEM){ if(field.getCategory() == FieldCategory.SYSTEM){
SystemField systemField = field.toSystemField(); SystemField systemField = field.toSystemField();
if (systemField.getType() == SystemFieldType.LANGUAGE) continue;
XWPFParagraph systemFieldParagraph = document.createParagraph(); XWPFParagraph systemFieldParagraph = document.createParagraph();
systemFieldParagraph.setSpacingBetween(1.0); // systemFieldParagraph.setSpacingBetween(1.0);
XWPFRun runSyStemFieldTitle = systemFieldParagraph.createRun(); XWPFRun runSyStemFieldTitle = systemFieldParagraph.createRun();
runSyStemFieldTitle.setText("Title: "); runSyStemFieldTitle.setText(systemField.getLabel() +": ");
runSyStemFieldTitle.setColor("000000"); runSyStemFieldTitle.setColor("000000");
XWPFRun runSystemFieldTitleText = systemFieldParagraph.createRun(); // XWPFRun runSystemFieldTitleText = systemFieldParagraph.createRun();
runSystemFieldTitleText.setText(systemField.getLabel()); // runSystemFieldTitleText.setText(systemField.getLabel());
runSystemFieldTitleText.setColor("116a78"); // runSystemFieldTitleText.setColor("116a78");
if(systemField.getDescription() != null && !systemField.getDescription().isEmpty()){ // if(systemField.getDescription() != null && !systemField.getDescription().isEmpty()){
XWPFParagraph systemFieldDescription = document.createParagraph(); // XWPFParagraph systemFieldDescription = document.createParagraph();
systemFieldDescription.setSpacingBetween(1.0); // systemFieldDescription.setSpacingBetween(1.0);
XWPFRun runSyStemFieldDescription = systemFieldDescription.createRun(); // XWPFRun runSyStemFieldDescription = systemFieldDescription.createRun();
runSyStemFieldDescription.setText("Description: "); // runSyStemFieldDescription.setText("Description: ");
runSyStemFieldDescription.setColor("000000"); // runSyStemFieldDescription.setColor("000000");
XWPFRun runSystemFieldDescriptionText = systemFieldDescription.createRun(); // XWPFRun runSystemFieldDescriptionText = systemFieldDescription.createRun();
runSystemFieldDescriptionText.setText(systemField.getDescription()); // runSystemFieldDescriptionText.setText(systemField.getDescription());
runSystemFieldDescriptionText.setColor("116a78"); // runSystemFieldDescriptionText.setColor("116a78");
} // }
XWPFParagraph systemFieldInput = document.createParagraph(); // XWPFParagraph systemFieldInput = document.createParagraph();
systemFieldInput.setSpacingBetween(1.0); // systemFieldInput.setSpacingBetween(1.0);
XWPFRun runInput = systemFieldInput.createRun(); // XWPFRun runInput = systemFieldInput.createRun();
runInput.setText("Input: "); // runInput.setText("Input: ");
runInput.setColor("000000"); // runInput.setColor("000000");
switch (systemField.getType()) { switch (systemField.getType()) {
case TEXT: case TEXT:
XWPFRun runTitle = systemFieldInput.createRun(); XWPFRun runTitle = systemFieldParagraph.createRun();
runTitle.setText(dmpEntity.getLabel()); runTitle.setText(dmpEntity.getLabel());
runTitle.setColor("116a78"); runTitle.setColor("116a78");
break; break;
case HTML_TEXT: case HTML_TEXT:
XWPFRun runDescription = systemFieldInput.createRun(); wordBuilder.addParagraphContent(dmpEntity.getDescription(), document, ParagraphStyle.HTML, BigInteger.ZERO, 0);
runDescription.setText(dmpEntity.getDescription());
runDescription.setColor("116a78");
break; break;
case RESEARCHERS: case RESEARCHERS:
for(Researcher researcher: dmpEntity.getResearchers()){ for(Researcher researcher: dmpEntity.getResearchers()){
XWPFRun runResearcher = systemFieldInput.createRun(); XWPFRun runResearcher = systemFieldParagraph.createRun();
runResearcher.addBreak();
runResearcher.setText("" + researcher.getLabel()); runResearcher.setText("" + researcher.getLabel());
runResearcher.setColor("116a78"); runResearcher.setColor("116a78");
} }
break; break;
case ORGANIZATIONS: case ORGANIZATIONS:
for(Organisation organisation: dmpEntity.getOrganisations()){ for(Organisation organisation: dmpEntity.getOrganisations()){
XWPFRun runOrganisation = systemFieldInput.createRun(); XWPFRun runOrganisation = systemFieldParagraph.createRun();
runOrganisation.addBreak();
runOrganisation.setText("" + organisation.getLabel()); runOrganisation.setText("" + organisation.getLabel());
runOrganisation.setColor("116a78"); runOrganisation.setColor("116a78");
} }
break; break;
case LANGUAGE: // case LANGUAGE:
XWPFRun runLanguage = systemFieldInput.createRun(); // XWPFRun runLanguage = systemFieldParagraph.createRun();
runLanguage.setText(objectMapper.readValue(dmpEntity.getExtraProperties(), HashMap.class).get("language").toString()); // runLanguage.setText(objectMapper.readValue(dmpEntity.getExtraProperties(), HashMap.class).get("language").toString());
runLanguage.setColor("116a78"); // runLanguage.setColor("116a78");
break; // break;
case CONTACT: case CONTACT:
XWPFRun runContact = systemFieldInput.createRun(); XWPFRun runContact = systemFieldParagraph.createRun();
runContact.setText(dmpEntity.getCreator().getName()); runContact.setText(dmpEntity.getCreator() == null ? "" : dmpEntity.getCreator().getName());
runContact.setColor("116a78"); runContact.setColor("116a78");
break; break;
case FUNDER: case FUNDER:
if (dmpEntity.getGrant() != null && dmpEntity.getGrant().getFunder() != null) { if (dmpEntity.getGrant() != null && dmpEntity.getGrant().getFunder() != null) {
XWPFRun runFunder = systemFieldInput.createRun(); XWPFRun runFunder = systemFieldParagraph.createRun();
runFunder.setText(dmpEntity.getGrant().getFunder().getLabel()); runFunder.setText(dmpEntity.getGrant().getFunder().getLabel());
runFunder.setColor("116a78"); runFunder.setColor("116a78");
} }
break; break;
case GRANT: case GRANT:
if (dmpEntity.getGrant() != null) { if (dmpEntity.getGrant() != null) {
XWPFRun runGrant = systemFieldInput.createRun(); XWPFRun runGrant = systemFieldParagraph.createRun();
runGrant.setText(dmpEntity.getGrant().getLabel()); runGrant.setText(dmpEntity.getGrant().getLabel());
runGrant.setColor("116a78"); runGrant.setColor("116a78");
} }
break; break;
case PROJECT: case PROJECT:
if (dmpEntity.getProject() != null ) { if (dmpEntity.getProject() != null ) {
XWPFRun runProject = systemFieldInput.createRun(); XWPFRun runProject = systemFieldParagraph.createRun();
runProject.setText(dmpEntity.getProject().getLabel()); runProject.setText(dmpEntity.getProject().getLabel());
runProject.setColor("116a78"); runProject.setColor("116a78");
} }
@ -1464,52 +1468,73 @@ public class DataManagementPlanManager {
case LICENSE: case LICENSE:
Map extraProperties = objectMapper.readValue(dmpEntity.getExtraProperties(), HashMap.class); Map extraProperties = objectMapper.readValue(dmpEntity.getExtraProperties(), HashMap.class);
if (extraProperties.containsKey("license")) { if (extraProperties.containsKey("license")) {
XWPFRun runLicense = systemFieldInput.createRun(); Map<String, String> license = ((Map<String, String>) extraProperties.get("license"));
runLicense.setText(extraProperties.get("license").toString()); if(!StringUtils.isEmpty(license.get("pid"))) {
XWPFRun runLicense = systemFieldParagraph.createRun();
runLicense.setText(license.get("pid").toString());
runLicense.setColor("116a78"); runLicense.setColor("116a78");
} }
}
break; break;
case ACCESS_RIGHTS: case ACCESS_RIGHTS:
Map extraPropertiesMap = objectMapper.readValue(dmpEntity.getExtraProperties(), HashMap.class); Map extraPropertiesMap = objectMapper.readValue(dmpEntity.getExtraProperties(), HashMap.class);
if (extraPropertiesMap.containsKey("visible")) { if (extraPropertiesMap.containsKey("visible")) {
XWPFRun runAccessRights = systemFieldInput.createRun(); XWPFRun runAccessRights = systemFieldParagraph.createRun();
runAccessRights.setText(extraPropertiesMap.get("visible").toString()); runAccessRights.setText(Boolean.valueOf(extraPropertiesMap.get("visible").toString()) ? "Public" : "Restricted");
runAccessRights.setColor("116a78"); runAccessRights.setColor("116a78");
} }
break; break;
} }
document.createParagraph(); //document.createParagraph();
} }
else if(field.getCategory() == FieldCategory.EXTRA){ else if(field.getCategory() == FieldCategory.EXTRA){
Map dmpProperties = objectMapper.readValue(dmpEntity.getProperties(), HashMap.class);
if (dmpProperties != null && (!dmpProperties.containsKey(field.getId().toString()) || StringUtils.isEmpty((String) dmpProperties.get(field.getId().toString())))) continue;
ExtraField extraField = field.toExtraField(); ExtraField extraField = field.toExtraField();
XWPFParagraph extraFieldParagraph = document.createParagraph(); XWPFParagraph extraFieldParagraph = document.createParagraph();
extraFieldParagraph.setSpacingBetween(1.0); extraFieldParagraph.setSpacingBetween(1.0);
XWPFRun runExtraFieldLabel = extraFieldParagraph.createRun(); XWPFRun runExtraFieldLabel = extraFieldParagraph.createRun();
runExtraFieldLabel.setText(extraField.getLabel()); runExtraFieldLabel.setText(extraField.getLabel() + ": ");
runExtraFieldLabel.setColor("116a78"); runExtraFieldLabel.setColor("000000");
if(extraField.getDescription() != null && !extraField.getDescription().isEmpty()){ // if(extraField.getDescription() != null && !extraField.getDescription().isEmpty()){
XWPFRun runExtraFieldDescription = extraFieldParagraph.createRun(); // XWPFRun runExtraFieldDescription = extraFieldParagraph.createRun();
runExtraFieldDescription.setText(extraField.getDescription()); // runExtraFieldDescription.setText(extraField.getDescription());
runExtraFieldDescription.setColor("116a78"); // runExtraFieldDescription.setColor("116a78");
} // }
XWPFRun runExtraFieldInput = extraFieldParagraph.createRun(); XWPFRun runExtraFieldInput = extraFieldParagraph.createRun();
Map dmpProperties = objectMapper.readValue(dmpEntity.getProperties(), HashMap.class); switch (extraField.getType()) {
if (dmpProperties.containsKey(field.getId()) && dmpProperties.get(field.getId()) != null) { case TEXT:
runExtraFieldInput.setText((String) dmpProperties.get(field.getId())); runExtraFieldInput.setText((String) dmpProperties.get(field.getId().toString()));
}
runExtraFieldInput.setColor("116a78"); runExtraFieldInput.setColor("116a78");
break;
case RICH_TEXT:
wordBuilder.addParagraphContent(dmpProperties.get(field.getId().toString()), document, ParagraphStyle.HTML, BigInteger.ZERO, 0);
// runExtraFieldInput.setText((String) dmpProperties.get(field.getId().toString()));
// runExtraFieldInput.setColor("116a78");
break;
case DATE:
runExtraFieldInput.setText((String) dmpProperties.get(field.getId().toString()));
runExtraFieldInput.setColor("116a78");
break;
case NUMBER:
runExtraFieldInput.setText((String) dmpProperties.get(field.getId().toString()));
runExtraFieldInput.setColor("116a78");
break;
}
} }
} }
if(!section.getDescriptionTemplates().isEmpty()){ //if(!section.getDescriptionTemplates().isEmpty()){
wordBuilder.addParagraphContent("Section descriptions", document, ParagraphStyle.HEADER2, BigInteger.ZERO, 0); wordBuilder.addParagraphContent("Section descriptions", document, ParagraphStyle.HEADER2, BigInteger.ZERO, 0);
wordBuilder.addParagraphContent("Description Templates", document, ParagraphStyle.HEADER4, BigInteger.ZERO, 0); // wordBuilder.addParagraphContent("Description Templates", document, ParagraphStyle.HEADER4, BigInteger.ZERO, 0);
for(eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition.DescriptionTemplate descriptionTemplate: section.getDescriptionTemplates()){ // for(eu.eudat.models.data.entities.xmlmodels.dmpprofiledefinition.DescriptionTemplate descriptionTemplate: section.getDescriptionTemplates()){
XWPFParagraph templateParagraph = document.createParagraph(); // XWPFParagraph templateParagraph = document.createParagraph();
XWPFRun runTemplateLabel = templateParagraph.createRun(); // XWPFRun runTemplateLabel = templateParagraph.createRun();
runTemplateLabel.setText("" + descriptionTemplate.getLabel()); // runTemplateLabel.setText("" + descriptionTemplate.getLabel());
runTemplateLabel.setColor("116a78"); // runTemplateLabel.setColor("116a78");
} // }
final Boolean isFinalized = dmpEntity.getStatus() == DMP.DMPStatus.FINALISED.getValue(); final Boolean isFinalized = dmpEntity.getStatus() == DMP.DMPStatus.FINALISED.getValue();
final Boolean isPublic = dmpEntity.isPublic(); final Boolean isPublic = dmpEntity.isPublic();
@ -1538,7 +1563,7 @@ public class DataManagementPlanManager {
datasetDescriptionParagraph.setStyle("Heading4"); datasetDescriptionParagraph.setStyle("Heading4");
datasetDescriptionParagraph.setSpacingBetween(1.5); datasetDescriptionParagraph.setSpacingBetween(1.5);
XWPFRun datasetDescriptionRun = datasetDescriptionParagraph.createRun(); XWPFRun datasetDescriptionRun = datasetDescriptionParagraph.createRun();
datasetDescriptionRun.setText("Dataset Description"); datasetDescriptionRun.setText("Description");
//datasetDescriptionRun.setColor("2E75B6"); //datasetDescriptionRun.setColor("2E75B6");
//datasetDescriptionRun.setBold(true); //datasetDescriptionRun.setBold(true);
datasetDescriptionRun.setFontSize(15); datasetDescriptionRun.setFontSize(15);
@ -1632,7 +1657,7 @@ public class DataManagementPlanManager {
XWPFParagraph parBreakDataset = document.createParagraph(); XWPFParagraph parBreakDataset = document.createParagraph();
parBreakDataset.setPageBreak(true); parBreakDataset.setPageBreak(true);
}); });
} //}
} }
// // Removes the top empty headings. // // Removes the top empty headings.

View File

@ -12,8 +12,8 @@ public class DescriptionTemplate {
private String id; private String id;
private String descriptionTemplateId; private String descriptionTemplateId;
private String label; private String label;
private int minMultiplicity; private Integer minMultiplicity;
private int maxMultiplicity; private Integer maxMultiplicity;
@XmlAttribute(name = "id") @XmlAttribute(name = "id")
public String getId() { public String getId() {
@ -43,20 +43,20 @@ public class DescriptionTemplate {
} }
@XmlAttribute(name = "minMultiplicity") @XmlAttribute(name = "minMultiplicity")
public int getMinMultiplicity() { public Integer getMinMultiplicity() {
return minMultiplicity; return minMultiplicity;
} }
public void setMinMultiplicity(int minMultiplicity) { public void setMinMultiplicity(Integer minMultiplicity) {
this.minMultiplicity = minMultiplicity; this.minMultiplicity = minMultiplicity;
} }
@XmlAttribute(name = "maxMultiplicity") @XmlAttribute(name = "maxMultiplicity")
public int getMaxMultiplicity() { public Integer getMaxMultiplicity() {
return maxMultiplicity; return maxMultiplicity;
} }
public void setMaxMultiplicity(int maxMultiplicity) { public void setMaxMultiplicity(Integer maxMultiplicity) {
this.maxMultiplicity = maxMultiplicity; this.maxMultiplicity = maxMultiplicity;
} }

View File

@ -55,8 +55,8 @@ public class DescriptionTemplate implements XmlSerializable<DescriptionTemplate>
rootElement.setAttribute("id", this.getId().toString()); rootElement.setAttribute("id", this.getId().toString());
rootElement.setAttribute("descriptionTemplateId", this.getDescriptionTemplateId().toString()); rootElement.setAttribute("descriptionTemplateId", this.getDescriptionTemplateId().toString());
rootElement.setAttribute("label", this.label); rootElement.setAttribute("label", this.label);
rootElement.setAttribute("minMultiplicity", String.valueOf(this.minMultiplicity)); if (this.minMultiplicity != null) rootElement.setAttribute("minMultiplicity", String.valueOf(this.minMultiplicity));
rootElement.setAttribute("maxMultiplicity", String.valueOf(this.maxMultiplicity)); if (this.maxMultiplicity != null) rootElement.setAttribute("maxMultiplicity", String.valueOf(this.maxMultiplicity));
return rootElement; return rootElement;
} }

View File

@ -221,6 +221,9 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
if (changes['configuration'] && changes['configuration'].isFirstChange) { if (changes['configuration'] && changes['configuration'].isFirstChange) {
this.getSelectedItems(this.value); this.getSelectedItems(this.value);
} }
if (changes['value'] && !changes['value'].isFirstChange()) {
this.getSelectedItems(this.value);
}
} }
getSelectedItems(value: any) { getSelectedItems(value: any) {

View File

@ -22,11 +22,13 @@ export class AuthFieldEditorModel extends FieldDataEditorModel<AuthFieldEditorMo
} }
fromModel(item: AuthAutoCompleteData): AuthFieldEditorModel { fromModel(item: AuthAutoCompleteData): AuthFieldEditorModel {
if (item) {
this.url = item.url; this.url = item.url;
this.method = item.method; this.method = item.method;
this.body = item.body; this.body = item.body;
this.path = item.path; this.path = item.path;
this.type = item.type; this.type = item.type;
}
return this; return this;
} }

View File

@ -222,7 +222,7 @@
<div class="col-12"> <div class="col-12">
<mat-form-field> <mat-form-field>
<mat-label>Description Templates</mat-label> <mat-label>Description Templates</mat-label>
<app-multiple-auto-complete placeholder="Description Templates" [disabled]="viewOnly" [value]="descriptionTemplatesPerSection[sectionIndex]" [hidePlaceholder]="true" required='false' [configuration]="profilesAutoCompleteConfiguration" (optionRemoved)="onRemoveTemplate($event, sectionIndex)" (optionSelected)="onOptionSelected($event, sectionIndex)"> <app-multiple-auto-complete placeholder="Description Templates" [disabled]="viewOnly" [value]="descriptionTemplatesPerSection[sectionIndex]" [hidePlaceholder]="true" required='false' [configuration]="profilesAutoCompleteConfiguration" (optionRemoved)="onRemoveTemplate($event, sectionIndex)" (optionActionClicked)="onPreviewTemplate($event, sectionIndex)" (optionSelected)="onOptionSelected($event, sectionIndex)">
</app-multiple-auto-complete> </app-multiple-auto-complete>
<!-- <button matSuffix class="input-btn" (click)="allAvailableProfiles($event)"> <!-- <button matSuffix class="input-btn" (click)="allAvailableProfiles($event)">
<mat-icon class="icon-btn">view_list</mat-icon> <mat-icon class="icon-btn">view_list</mat-icon>

View File

@ -219,10 +219,12 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
section.hasTemplates = false; section.hasTemplates = false;
this.sectionsArray().push(section.buildForm()); this.sectionsArray().push(section.buildForm());
this.systemFieldListPerSection.push(new Array()); this.systemFieldListPerSection.push(new Array());
this.descriptionTemplatesPerSection.push(new Array());
} }
removeSection(sectionIndex: number): void { removeSection(sectionIndex: number): void {
this.systemFieldListPerSection.splice(sectionIndex, 1); this.systemFieldListPerSection.splice(sectionIndex, 1);
this.descriptionTemplatesPerSection.splice(sectionIndex, 1);
this.sectionsArray().removeAt(sectionIndex); this.sectionsArray().removeAt(sectionIndex);
this.sectionsArray().controls.forEach((section, index) => { this.sectionsArray().controls.forEach((section, index) => {
section.get('ordinal').setValue(index + 1); section.get('ordinal').setValue(index + 1);
@ -274,6 +276,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
} }
selectedFieldType(type: SystemFieldType, sectionIndex: number): void { selectedFieldType(type: SystemFieldType, sectionIndex: number): void {
if (this.systemFieldDisabled(type, sectionIndex)) return;
let index = this.systemFieldListPerSection[sectionIndex].indexOf(type); let index = this.systemFieldListPerSection[sectionIndex].indexOf(type);
if (index == -1) { if (index == -1) {
this.systemFieldListPerSection[sectionIndex].push(type); this.systemFieldListPerSection[sectionIndex].push(type);
@ -371,6 +374,8 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
this.sectionsArray().controls.forEach((section, index) => { this.sectionsArray().controls.forEach((section, index) => {
section.get('ordinal').setValue(index + 1); section.get('ordinal').setValue(index + 1);
}); });
moveItemInArray(this.systemFieldListPerSection, event.previousIndex, event.currentIndex);
moveItemInArray(this.descriptionTemplatesPerSection, event.previousIndex, event.currentIndex);
} }
moveItemInFormArray(formArray: FormArray, fromIndex: number, toIndex: number): void { moveItemInFormArray(formArray: FormArray, fromIndex: number, toIndex: number): void {
@ -394,36 +399,30 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie
foundIndex !== -1 && this.descriptionTemplatesArray(sectionIndex).removeAt(foundIndex); foundIndex !== -1 && this.descriptionTemplatesArray(sectionIndex).removeAt(foundIndex);
} }
// onPreviewTemplate(event, sectionIndex: number) { onPreviewTemplate(event, sectionIndex: number) {
// const dialogRef = this.dialog.open(DatasetPreviewDialogComponent, { const dialogRef = this.dialog.open(DatasetPreviewDialogComponent, {
// width: '590px', width: '590px',
// minHeight: '200px', minHeight: '200px',
// restoreFocus: false, restoreFocus: false,
// data: { data: {
// template: event template: event
// }, },
// panelClass: 'custom-modalbox' panelClass: 'custom-modalbox'
// }); });
// dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
// if (result) { if (result) {
// let profiles = this.sectionsArray().at(sectionIndex).get('descriptionTemplates').value;//this.formGroup.get('profiles').value; const profile: DescriptionTemplatesInSectionEditor = new DescriptionTemplatesInSectionEditor();
// const profile: DescriptionTemplatesInSectionEditor = new DescriptionTemplatesInSectionEditor(); profile.id = Guid.create().toString();
// profile.id = Guid.create().toString(); profile.descriptionTemplateId = event.id;
// profile.descriptionTemplateId = event.id; profile.label = event.label;
// profile.label = event.label; this.descriptionTemplatesArray(sectionIndex).push(profile.buildForm());
// profiles.push(profile.buildForm());
// this.sectionsArray().at(sectionIndex).get('descriptionTemplates').setValue(profiles);//this.formGroup.get('profiles').setValue(profiles); const items = this.descriptionTemplatesPerSection[sectionIndex];
// this.profilesAutoCompleteConfiguration = { items.push({id: event.id, label: event.label, description: ""});
// filterFn: this.filterProfiles.bind(this), this.descriptionTemplatesPerSection[sectionIndex] = [...items];
// initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), }
// displayFn: (item) => item['label'], });
// titleFn: (item) => item['label'], }
// subtitleFn: (item) => item['description'],
// popupItemActionIcon: 'visibility'
// };
// }
// });
// }
onOptionSelected(item, sectionIndex){ onOptionSelected(item, sectionIndex){
const profile: DescriptionTemplatesInSectionEditor = new DescriptionTemplatesInSectionEditor(); const profile: DescriptionTemplatesInSectionEditor = new DescriptionTemplatesInSectionEditor();

View File

@ -74,7 +74,7 @@ export class DatasetCopyDialogueComponent {
map(result => { map(result => {
this.dmpModel = result this.dmpModel = result
this.dmpModel.profiles.forEach((element) => { this.dmpModel.profiles.forEach((element) => {
if (element.id == this.data.datasetProfileId) { if (element.descriptionTemplateId == this.data.datasetProfileId) {
this.data.datasetProfileExist = true; this.data.datasetProfileExist = true;
} }
}) })

View File

@ -223,7 +223,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
this.formGroup = this.datasetWizardModel.buildForm(); this.formGroup = this.datasetWizardModel.buildForm();
let profiles = this.datasetWizardModel.dmp.profiles.filter(profile => profile.data.dmpSectionIndex.includes(this.datasetWizardModel.dmpSectionIndex)); let profiles = this.datasetWizardModel.dmp.profiles.filter(profile => profile.data.dmpSectionIndex.includes(this.datasetWizardModel.dmpSectionIndex));
for (var profile of profiles) { for (var profile of profiles) {
this.availableDescriptionTemplates.push({id: profile.descriptionTemplateId, label: profile.label, description: ""}) this.addToAvailableDescriptionTemplates(this.availableDescriptionTemplates, { id: profile.descriptionTemplateId, label: profile.label, description: "" });
} }
this.formGroupRawValue = JSON.parse(JSON.stringify(this.formGroup.getRawValue())); this.formGroupRawValue = JSON.parse(JSON.stringify(this.formGroup.getRawValue()));
this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft; this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft;
@ -285,7 +285,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
this.formGroup = this.datasetWizardModel.buildForm(); this.formGroup = this.datasetWizardModel.buildForm();
let profiles = this.datasetWizardModel.dmp.profiles.filter(profile => profile.data.dmpSectionIndex.includes(this.dmpSectionIndex)); let profiles = this.datasetWizardModel.dmp.profiles.filter(profile => profile.data.dmpSectionIndex.includes(this.dmpSectionIndex));
for (var profile of profiles) { for (var profile of profiles) {
this.availableDescriptionTemplates.push({id: profile.descriptionTemplateId, label: profile.label, description: ""}) this.addToAvailableDescriptionTemplates(this.availableDescriptionTemplates, { id: profile.descriptionTemplateId, label: profile.label, description: "" });
} }
this.formGroupRawValue = JSON.parse(JSON.stringify(this.formGroup.getRawValue())); this.formGroupRawValue = JSON.parse(JSON.stringify(this.formGroup.getRawValue()));
this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft; this.editMode = this.datasetWizardModel.status === DatasetStatus.Draft;
@ -303,7 +303,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
.subscribe(items => { .subscribe(items => {
items.forEach(template => { items.forEach(template => {
if (template.enablePrefilling) { if (template.enablePrefilling) {
this.availableDescriptionTemplatesForPrefilling.push({id: template.id, label: template.label, description: ''}); this.addToAvailableDescriptionTemplates(this.availableDescriptionTemplatesForPrefilling, { id: template.id, label: template.label, description: '' });
} }
}) })
if (this.availableDescriptionTemplatesForPrefilling.length > 0) { if (this.availableDescriptionTemplatesForPrefilling.length > 0) {
@ -506,6 +506,13 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
} }
} }
addToAvailableDescriptionTemplates(list: DatasetProfileModel[], item: DatasetProfileModel) {
if (list.some(x => x.id === item.id)) {
list.splice(list.findIndex(x => x.id === item.id), 1)
}
list.push(item);
}
// private _listenersSubscription:Subscription = new Subscription(); // private _listenersSubscription:Subscription = new Subscription();
registerFormListeners() { registerFormListeners() {
// const dmpSubscription = // const dmpSubscription =

View File

@ -83,7 +83,7 @@
</div> </div>
<div class="col-auto formForStep0" id="editor-form" *ngIf="this.step === 0 && this.isNew"> <div class="col-auto formForStep0" id="editor-form" *ngIf="this.step === 0 && this.isNew">
<div class="col-12 blueprint-section" [hidden]="this.step !== 0"> <div class="col-12 blueprint-section" [hidden]="this.step !== 0">
<div class="input-form"> <div class="">
<div class="heading2">0.1 Title of DMP *</div> <div class="heading2">0.1 Title of DMP *</div>
<mat-form-field> <mat-form-field>
<mat-label>Title</mat-label> <mat-label>Title</mat-label>
@ -94,13 +94,13 @@
{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> --> {{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error> -->
</mat-form-field> </mat-form-field>
</div> </div>
<div class="input-form"> <div class="">
<div class="heading2">0.2 Description of DMP *</div> <div class="heading2">0.2 Description of DMP *</div>
<rich-text-editor-component [parentFormGroup]="formGroup" [controlName]="'description'" <rich-text-editor-component [parentFormGroup]="formGroup" [controlName]="'description'"
[placeholder]="'Fill with description'" [required]="true"> [placeholder]="'Fill with description'" [required]="true">
</rich-text-editor-component> </rich-text-editor-component>
</div> </div>
<div class="dmp-blueprint-form" style="margin-top: 3%;"> <div class="" style="margin-top: 3%;">
<div class="heading2">0.3 Blueprint of DMP *</div> <div class="heading2">0.3 Blueprint of DMP *</div>
<mat-form-field> <mat-form-field>
<mat-label>Select blueprint</mat-label> <mat-label>Select blueprint</mat-label>
@ -110,7 +110,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-5"> <div class="col-5">
<button mat-button class="action-btn" [disabled]="selectedDmpBlueprintDefinition == null" (click)="selectBlueprint()">Next</button> <button mat-button class="action-btn" [disabled]="selectedDmpBlueprintDefinition == null || !(formGroup.get('label').valid && formGroup.get('description').valid)" (click)="selectBlueprint()">Next</button>
</div> </div>
<div class="col-7" *ngIf="formGroup.get('profile').value == null || (formGroup.get('profile').value && formGroup.get('profile').value.id !== defaultBlueprintId)"> <div class="col-7" *ngIf="formGroup.get('profile').value == null || (formGroup.get('profile').value && formGroup.get('profile').value.id !== defaultBlueprintId)">
<div class="row"> <div class="row">
@ -138,7 +138,7 @@
<div *ngFor="let field of section.fields; let j=index"> <div *ngFor="let field of section.fields; let j=index">
<div class="heading">{{i + 1}}.{{j + 1}} {{field.label}}<span *ngIf="field.required">*</span></div> <div class="heading">{{i + 1}}.{{j + 1}} {{field.label}}<span *ngIf="field.required">*</span></div>
<div *ngIf="field.description != null && field.description.length > 0" class="hint">{{field.description}}</div> <div *ngIf="field.description != null && field.description.length > 0" class="hint">{{field.description}}</div>
<div class="input-form"> <div class="">
<div *ngIf="field.category === 'SYSTEM'"> <div *ngIf="field.category === 'SYSTEM'">
<div *ngIf="field.type == 0"> <div *ngIf="field.type == 0">
<mat-form-field> <mat-form-field>
@ -305,7 +305,7 @@
<div class="col-12 card" *ngIf="section.hasTemplates"> <div class="col-12 card" *ngIf="section.hasTemplates">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="input-form"> <div class="">
<div class="heading">Description templates</div> <div class="heading">Description templates</div>
<mat-form-field> <mat-form-field>
<mat-label>{{'DMP-EDITOR.FIELDS.SELECT-TEMPLATE' | translate}}</mat-label> <mat-label>{{'DMP-EDITOR.FIELDS.SELECT-TEMPLATE' | translate}}</mat-label>

View File

@ -357,13 +357,13 @@ a:hover {
} }
.input-form { .input-form {
text-align: left; // text-align: left;
font-weight: 400; // font-weight: 400;
font-size: 16px; // font-size: 16px;
letter-spacing: 0.15px; // letter-spacing: 0.15px;
color: #7d7d7d; // color: #7d7d7d;
opacity: 1; // opacity: 1;
margin-bottom: 1rem; // margin-bottom: 1rem;
} }
.insert-manually { .insert-manually {

View File

@ -184,7 +184,7 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
this.checkForFunder(); this.checkForFunder();
this.checkForProject(); this.checkForProject();
this.buildExtraFields(); this.buildExtraFields();
this.formGroup.get('profile').setValue(result.id); this.formGroup.get('profile').setValue(result);
this.maxStep = this.selectedDmpBlueprintDefinition.sections.length; this.maxStep = this.selectedDmpBlueprintDefinition.sections.length;
this.step = 1; this.step = 1;
this.addProfiles(); this.addProfiles();
@ -261,9 +261,10 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
this.checkForFunder(); this.checkForFunder();
this.checkForProject(); this.checkForProject();
this.buildExtraFields(); this.buildExtraFields();
this.formGroup.get('profile').setValue(result.id); this.formGroup.get('profile').setValue(result);
this.maxStep = this.selectedDmpBlueprintDefinition.sections.length; this.maxStep = this.selectedDmpBlueprintDefinition.sections.length;
this.step = 1; this.step = 1;
this.sectionTemplates = new Array<Array<DatasetProfileModel>>();
this.addProfiles(this.dmp.profiles); this.addProfiles(this.dmp.profiles);
}); });
} }
@ -303,10 +304,12 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
this.formChanged(); this.formChanged();
}); });
if (this.lockStatus) { if (this.lockStatus) {
this.dialog.open(PopupNotificationDialogComponent,{data:{ this.dialog.open(PopupNotificationDialogComponent, {
data: {
title: this.language.instant('DMP-EDITOR.LOCKED.TITLE'), title: this.language.instant('DMP-EDITOR.LOCKED.TITLE'),
message: this.language.instant('DMP-EDITOR.LOCKED.MESSAGE') message: this.language.instant('DMP-EDITOR.LOCKED.MESSAGE')
}, maxWidth:'30em'}); }, maxWidth: '30em'
});
} }
}); });
}); });
@ -441,9 +444,11 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
.pipe(takeUntil(this._destroyed)) .pipe(takeUntil(this._destroyed))
.subscribe(result => { .subscribe(result => {
this.selectedDmpBlueprintDefinition = result.definition; this.selectedDmpBlueprintDefinition = result.definition;
this.formGroup.get('profile').setValue(result.id); this.formGroup.get('profile').setValue(result);
this.maxStep = this.selectedDmpBlueprintDefinition.sections.length; this.maxStep = this.selectedDmpBlueprintDefinition.sections.length;
if (this.formGroup.get('label').valid && this.formGroup.get('description').valid) {
this.nextStep(); this.nextStep();
}
}); });
} }
@ -1143,14 +1148,9 @@ export class DmpEditorBlueprintComponent extends CheckDeactivateBaseComponent im
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
if (result) { if (result) {
this.addProfile(event, sectionIndex); this.addProfile(event, sectionIndex);
this.profilesAutoCompleteConfiguration = { const items = this.sectionTemplates[sectionIndex];
filterFn: this.filterProfiles.bind(this), items.push({id: event.id, label: event.label, description: ""});
initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), this.sectionTemplates[sectionIndex] = [...items];
displayFn: (item) => item['label'],
titleFn: (item) => item['label'],
subtitleFn: (item) => item['description'],
popupItemActionIcon: 'visibility'
};
} }
}); });
} }

View File

@ -1,54 +1,54 @@
import { Location } from '@angular/common';
import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Params, Router } from '@angular/router'; import { ActivatedRoute, Params, Router } from '@angular/router';
import { DatasetStatus } from '@app/core/common/enum/dataset-status'; import { DatasetStatus } from '@app/core/common/enum/dataset-status';
import { DmpStatus } from '@app/core/common/enum/dmp-status'; import { DmpStatus } from '@app/core/common/enum/dmp-status';
import { Role } from "@app/core/common/enum/role";
import { Principal } from '@app/core/model/auth/principal'; import { Principal } from '@app/core/model/auth/principal';
import { DatasetOverviewModel } from '@app/core/model/dataset/dataset-overview'; import { DatasetOverviewModel } from '@app/core/model/dataset/dataset-overview';
import { DatasetsToBeFinalized } from '@app/core/model/dataset/datasets-toBeFinalized'; import { DatasetsToBeFinalized } from '@app/core/model/dataset/datasets-toBeFinalized';
import { DepositConfigurationModel } from '@app/core/model/deposit/deposit-configuration';
import { DmpModel } from '@app/core/model/dmp/dmp';
import { DmpBlueprintDefinition, SystemFieldType } from '@app/core/model/dmp/dmp-blueprint/dmp-blueprint';
import { DmpOverviewModel } from '@app/core/model/dmp/dmp-overview'; import { DmpOverviewModel } from '@app/core/model/dmp/dmp-overview';
import { DoiModel } from '@app/core/model/doi/doi';
import { UserInfoListingModel } from '@app/core/model/user/user-info-listing'; import { UserInfoListingModel } from '@app/core/model/user/user-info-listing';
import { VersionListingModel } from '@app/core/model/version/version-listing.model';
import { AuthService } from '@app/core/services/auth/auth.service'; import { AuthService } from '@app/core/services/auth/auth.service';
import { ConfigurationService } from '@app/core/services/configuration/configuration.service';
import { DepositRepositoriesService } from '@app/core/services/deposit-repositories/deposit-repositories.service';
import { DmpProfileService } from '@app/core/services/dmp/dmp-profile.service';
import { DmpService } from '@app/core/services/dmp/dmp.service'; import { DmpService } from '@app/core/services/dmp/dmp.service';
import { LockService } from '@app/core/services/lock/lock.service';
import { MatomoService } from '@app/core/services/matomo/matomo-service';
import { import {
SnackBarNotificationLevel, SnackBarNotificationLevel,
UiNotificationService UiNotificationService
} from '@app/core/services/notification/ui-notification-service'; } from '@app/core/services/notification/ui-notification-service';
import {ConfirmationDialogComponent} from '@common/modules/confirmation-dialog/confirmation-dialog.component'; import { PopupNotificationDialogComponent } from '@app/library/notification/popup/popup-notification.component';
import { import {
DmpFinalizeDialogComponent, DmpFinalizeDialogComponent,
DmpFinalizeDialogInput, DmpFinalizeDialogInput,
DmpFinalizeDialogOutput DmpFinalizeDialogOutput
} from '@app/ui/dmp/editor/dmp-finalize-dialog/dmp-finalize-dialog.component'; } from '@app/ui/dmp/editor/dmp-finalize-dialog/dmp-finalize-dialog.component';
import { BreadcrumbItem } from '@app/ui/misc/breadcrumb/definition/breadcrumb-item'; import { BreadcrumbItem } from '@app/ui/misc/breadcrumb/definition/breadcrumb-item';
import { isNullOrUndefined } from '@app/utilities/enhancers/utils';
import { BaseComponent } from '@common/base/base.component'; import { BaseComponent } from '@common/base/base.component';
import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog/confirmation-dialog.component';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import * as FileSaver from 'file-saver'; import * as FileSaver from 'file-saver';
import { Observable, of as observableOf } from 'rxjs'; import { Observable, of as observableOf } from 'rxjs';
import { map, takeUntil } from 'rxjs/operators'; import { map, takeUntil } from 'rxjs/operators';
import {Role} from "@app/core/common/enum/role";
import {DmpInvitationDialogComponent} from '../invitation/dmp-invitation-dialog.component';
import {ConfigurationService} from '@app/core/services/configuration/configuration.service';
import {Location} from '@angular/common';
import {FormGroup} from '@angular/forms';
import {LockService} from '@app/core/services/lock/lock.service';
import {VersionListingModel} from '@app/core/model/version/version-listing.model';
import { CloneDialogComponent } from '../clone/clone-dialog/clone-dialog.component'; import { CloneDialogComponent } from '../clone/clone-dialog/clone-dialog.component';
import {DmpModel} from '@app/core/model/dmp/dmp';
import { DmpEditorModel } from '../editor/dmp-editor.model'; import { DmpEditorModel } from '../editor/dmp-editor.model';
import {FunderFormModel} from '../editor/grant-tab/funder-form-model';
import {ProjectFormModel} from '../editor/grant-tab/project-form-model';
import {GrantTabModel} from '../editor/grant-tab/grant-tab-model';
import { ExtraPropertiesFormModel } from '../editor/general-tab/extra-properties-form.model'; import { ExtraPropertiesFormModel } from '../editor/general-tab/extra-properties-form.model';
import { FunderFormModel } from '../editor/grant-tab/funder-form-model';
import { GrantTabModel } from '../editor/grant-tab/grant-tab-model';
import { ProjectFormModel } from '../editor/grant-tab/project-form-model';
import { DmpInvitationDialogComponent } from '../invitation/dmp-invitation-dialog.component';
import { StartNewDmpDialogComponent } from '../start-new-dmp-dialogue/start-new-dmp-dialog.component'; import { StartNewDmpDialogComponent } from '../start-new-dmp-dialogue/start-new-dmp-dialog.component';
import {MatomoService} from '@app/core/services/matomo/matomo-service';
import {PopupNotificationDialogComponent} from '@app/library/notification/popup/popup-notification.component';
import {DepositRepositoriesService} from '@app/core/services/deposit-repositories/deposit-repositories.service';
import {DepositConfigurationModel} from '@app/core/model/deposit/deposit-configuration';
import {DoiModel} from '@app/core/model/doi/doi';
import {isNullOrUndefined} from '@app/utilities/enhancers/utils';
import { DmpBlueprintDefinition, FieldCategory, SystemFieldType } from '@app/core/model/dmp/dmp-blueprint/dmp-blueprint';
import { DmpProfileService } from '@app/core/services/dmp/dmp-profile.service';
@Component({ @Component({
selector: 'app-dmp-overview', selector: 'app-dmp-overview',
@ -858,10 +858,12 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
.subscribe(lockStatus => { .subscribe(lockStatus => {
this.lockStatus = lockStatus this.lockStatus = lockStatus
if (lockStatus) { if (lockStatus) {
this.dialog.open(PopupNotificationDialogComponent,{data:{ this.dialog.open(PopupNotificationDialogComponent, {
data: {
title: this.language.instant('DMP-OVERVIEW.LOCKED-DIALOG.TITLE'), title: this.language.instant('DMP-OVERVIEW.LOCKED-DIALOG.TITLE'),
message: this.language.instant('DMP-OVERVIEW.LOCKED-DIALOG.MESSAGE') message: this.language.instant('DMP-OVERVIEW.LOCKED-DIALOG.MESSAGE')
}, maxWidth:'30em'}); }, maxWidth: '30em'
});
} }
}); });
} }

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Bestehenden DMP auswählen" "PLACEHOLDER": "Bestehenden DMP auswählen"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }

View File

@ -142,7 +142,7 @@
"DATASETCREATEWIZARD": "Add Dataset (Wizard)", "DATASETCREATEWIZARD": "Add Dataset (Wizard)",
"GRANTS": "My Grants", "GRANTS": "My Grants",
"DMP-BLUEPRINTS": "DMP Blueprints", "DMP-BLUEPRINTS": "DMP Blueprints",
"DATASET-PROFILES": "Dataset Templates", "DATASET-PROFILES": "Description Templates",
"DESCRIPTION-TYPES": "Description Types", "DESCRIPTION-TYPES": "Description Types",
"USERS": "Users", "USERS": "Users",
"PROFILE": "My Profile", "PROFILE": "My Profile",
@ -159,8 +159,8 @@
"DMP-BLUEPRINT-NEW": "New DMP Blueprint", "DMP-BLUEPRINT-NEW": "New DMP Blueprint",
"DMP-BLUEPRINT-CLONE": "New Clone of DMP Blueprint", "DMP-BLUEPRINT-CLONE": "New Clone of DMP Blueprint",
"DMP-BLUEPRINT-EDIT": "Edit DMP Blueprint", "DMP-BLUEPRINT-EDIT": "Edit DMP Blueprint",
"DATASET-PROFILES-NEW": "New Dataset Template", "DATASET-PROFILES-NEW": "New Description Template",
"DATASET-PROFILES-EDIT": "Edit Dataset Template", "DATASET-PROFILES-EDIT": "Edit Description Template",
"DESCRIPTION-TYPE-NEW": "New Description Type", "DESCRIPTION-TYPE-NEW": "New Description Type",
"DESCRIPTION-TYPE-EDIT": "Edit Description Type", "DESCRIPTION-TYPE-EDIT": "Edit Description Type",
"EXPLORE-PLANS-OVERVIEW": "Published DMP Overview", "EXPLORE-PLANS-OVERVIEW": "Published DMP Overview",
@ -168,8 +168,8 @@
"DMP-PUBLIC-EDIT": "View Published DMP", "DMP-PUBLIC-EDIT": "View Published DMP",
"DATASET-COPY": "Copy Dataset", "DATASET-COPY": "Copy Dataset",
"DATASET-UPDATE": "Update Dataset", "DATASET-UPDATE": "Update Dataset",
"DATASET-PROFILES-NEW-VERSION": "New Version of Dataset Template", "DATASET-PROFILES-NEW-VERSION": "New Version of Description Template",
"DATASET-PROFILES-CLONE": "New Clone of Dataset Template", "DATASET-PROFILES-CLONE": "New Clone of Description Template",
"LANGUAGE-EDITOR": "Language Editor", "LANGUAGE-EDITOR": "Language Editor",
"GUIDE-EDITOR": "User Guide Editor", "GUIDE-EDITOR": "User Guide Editor",
"LANGUAGE": "Language", "LANGUAGE": "Language",
@ -231,7 +231,7 @@
"DESCRIPTION": "Description", "DESCRIPTION": "Description",
"PUBLIC-DATASETS": "Explore {{ APP_NAME_CAPS }}", "PUBLIC-DATASETS": "Explore {{ APP_NAME_CAPS }}",
"USERS": "Users", "USERS": "Users",
"DATASETS-ADMIN": "Dataset Templates", "DATASETS-ADMIN": "Description Templates",
"DMP-BLUEPRINTS": "DMP Blueprints", "DMP-BLUEPRINTS": "DMP Blueprints",
"ABOUT": "About", "ABOUT": "About",
"MY-DATASET-DESCRIPTIONS": "MY DATASETS", "MY-DATASET-DESCRIPTIONS": "MY DATASETS",
@ -691,7 +691,7 @@
}, },
"LEVEL-OF-ACCESS": "Level of Access", "LEVEL-OF-ACCESS": "Level of Access",
"INVOLVED-DATASETS": "Involved Datasets", "INVOLVED-DATASETS": "Involved Datasets",
"TEMPLATES-INVOLVED": "Dataset Templates Involved" "TEMPLATES-INVOLVED": "Description Templates Involved"
}, },
"VIEW-ALL-VERSIONS": "All versions of", "VIEW-ALL-VERSIONS": "All versions of",
"EMPTY-LIST": "Nothing here yet." "EMPTY-LIST": "Nothing here yet."
@ -705,7 +705,7 @@
"TOOLTIP": { "TOOLTIP": {
"PUBLISHED": "Public access - Closed DMP", "PUBLISHED": "Public access - Closed DMP",
"INVOLVED-DATASETS": "Involved Datasets", "INVOLVED-DATASETS": "Involved Datasets",
"TEMPLATES-INVOLVED": "Dataset Templates Involved" "TEMPLATES-INVOLVED": "Description Templates Involved"
}, },
"EMPTY-LIST": "Nothing here yet." "EMPTY-LIST": "Nothing here yet."
}, },
@ -733,7 +733,7 @@
"FIRST-STEP": { "FIRST-STEP": {
"TITLE": "Dataset Information", "TITLE": "Dataset Information",
"DMP": "Data Management Plan", "DMP": "Data Management Plan",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"SUB-TITLE": "Created At: " "SUB-TITLE": "Created At: "
}, },
"SECOND-STEP": { "SECOND-STEP": {
@ -773,7 +773,7 @@
"MESSAGES": { "MESSAGES": {
"DATASET-NOT-FOUND": "Dataset does not exist", "DATASET-NOT-FOUND": "Dataset does not exist",
"DATASET-NOT-ALLOWED": "You have no access to this Dataset", "DATASET-NOT-ALLOWED": "You have no access to this Dataset",
"SUCCESS-UPDATE-DATASET-PROFILE": "Dataset Template updated successfully", "SUCCESS-UPDATE-DATASET-PROFILE": "Description Template updated successfully",
"MISSING-FIELDS": "There are some required fields left unfilled. Please check the DMP and make sure that all required questions are answered and URLs are provided with valid input. (Missing fields are marked in red color)", "MISSING-FIELDS": "There are some required fields left unfilled. Please check the DMP and make sure that all required questions are answered and URLs are provided with valid input. (Missing fields are marked in red color)",
"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.",
@ -782,8 +782,8 @@
}, },
"UPLOAD": { "UPLOAD": {
"UPLOAD-XML": "Import", "UPLOAD-XML": "Import",
"UPLOAD-XML-FILE-TITLE": "Import Dataset Template", "UPLOAD-XML-FILE-TITLE": "Import Description Template",
"UPLOAD-XML-NAME": "Name Of Dataset Template", "UPLOAD-XML-NAME": "Name Of Description Template",
"UPLOAD-XML-IMPORT": "File", "UPLOAD-XML-IMPORT": "File",
"UPLOAD-XML-FILE-CANCEL": "Cancel" "UPLOAD-XML-FILE-CANCEL": "Cancel"
}, },
@ -801,7 +801,7 @@
"COPY": "Copy", "COPY": "Copy",
"CANCEL": "Cancel", "CANCEL": "Cancel",
"NEXT": "Next", "NEXT": "Next",
"ERROR-MESSAGE": "Does not contain this Dataset Template" "ERROR-MESSAGE": "Does not contain this Description Template"
}, },
"LOCKED":{ "LOCKED":{
"TITLE":"Dataset is locked", "TITLE":"Dataset is locked",
@ -823,7 +823,7 @@
"TOOLTIP": { "TOOLTIP": {
"LEVEL-OF-ACCESS": "Level of Access", "LEVEL-OF-ACCESS": "Level of Access",
"INVOLVED-DATASETS": "Involved Datasets", "INVOLVED-DATASETS": "Involved Datasets",
"TEMPLATES-INVOLVED": "Dataset Templates Involved" "TEMPLATES-INVOLVED": "Description Templates Involved"
}, },
"ERROR": { "ERROR": {
"DELETED-DMP": "The requested DMP is deleted", "DELETED-DMP": "The requested DMP is deleted",
@ -916,7 +916,7 @@
}, },
"DMP": "DMP", "DMP": "DMP",
"GRANT": "Grant", "GRANT": "Grant",
"TEMPLATES-INVOLVED": "Dataset Template", "TEMPLATES-INVOLVED": "Description Template",
"VERSION": "DMP Version", "VERSION": "DMP Version",
"PART-OF": "Part of", "PART-OF": "Part of",
"TO-DMP": "To DMP", "TO-DMP": "To DMP",
@ -930,7 +930,7 @@
"FINALIZED": "Private access - Closed Dataset", "FINALIZED": "Private access - Closed Dataset",
"DMP": "DMP", "DMP": "DMP",
"GRANT": "Grant", "GRANT": "Grant",
"TEMPLATES-INVOLVED": "Dataset Template" "TEMPLATES-INVOLVED": "Description Template"
}, },
"EMPTY-LIST": "Nothing here yet." "EMPTY-LIST": "Nothing here yet."
}, },
@ -992,7 +992,7 @@
}, },
"PLACEHOLDER": "Dataset Title", "PLACEHOLDER": "Dataset Title",
"DATASET-PROFILE": { "DATASET-PROFILE": {
"SELECT": "Select Dataset Template" "SELECT": "Select Description Template"
}, },
"SNACK-BAR": { "SNACK-BAR": {
"SUCCESSFUL-CREATION": "Imported Successfully", "SUCCESSFUL-CREATION": "Imported Successfully",
@ -1072,7 +1072,7 @@
"NEW": "New Data Management Plan", "NEW": "New Data Management Plan",
"EDIT": "Edit", "EDIT": "Edit",
"EDIT-DMP": "Editing DMP", "EDIT-DMP": "Editing DMP",
"ADD-DATASET": "Adding dataset", "ADD-DATASET": "Adding description",
"EDIT-DESCRIPTION": "Editing Description", "EDIT-DESCRIPTION": "Editing Description",
"CLONE-DMP": "Clone", "CLONE-DMP": "Clone",
"NEW-VERSION": "New Version", "NEW-VERSION": "New Version",
@ -1092,7 +1092,7 @@
"AUTHORS": "Authors", "AUTHORS": "Authors",
"TEMPLATES": "Templates", "TEMPLATES": "Templates",
"TEMPLATE": "DMP Template", "TEMPLATE": "DMP Template",
"DATASET-TEMPLATES": "Related Dataset Templates", "DATASET-TEMPLATES": "Related Description Templates",
"SELECT-TEMPLATE": "Select a template to describe your descriptions", "SELECT-TEMPLATE": "Select a template to describe your descriptions",
"PROFILE": "DMP Template", "PROFILE": "DMP Template",
"PROJECT": "Project", "PROJECT": "Project",
@ -1284,8 +1284,8 @@
"RELATED-DMP": "Related DMPs", "RELATED-DMP": "Related DMPs",
"SELECT-COLLABORATORS": "Select Collaborators", "SELECT-COLLABORATORS": "Select Collaborators",
"RELATED-COLLABORATORS": "Related Collaborators", "RELATED-COLLABORATORS": "Related Collaborators",
"SELECT-DATASET-TEMPLATES": "Select Dataset Templates", "SELECT-DATASET-TEMPLATES": "Select Description Templates",
"RELATED-DATASET-TEMPLATES": "Related Dataset Templates", "RELATED-DATASET-TEMPLATES": "Related Description Templates",
"ALL-VERSIONS": "From All Versions" "ALL-VERSIONS": "From All Versions"
}, },
"DMP": { "DMP": {
@ -1294,8 +1294,8 @@
"SELECT-GRANTS": "Select Grants", "SELECT-GRANTS": "Select Grants",
"SELECT-COLLABORATORS": "Select Collaborators", "SELECT-COLLABORATORS": "Select Collaborators",
"RELATED-COLLABORATORS": "Related Collaborators", "RELATED-COLLABORATORS": "Related Collaborators",
"SELECT-DATASET-TEMPLATES": "Select Dataset Templates", "SELECT-DATASET-TEMPLATES": "Select Description Templates",
"RELATED-DATASET-TEMPLATES": "Related Dataset Templates" "RELATED-DATASET-TEMPLATES": "Related Description Templates"
}, },
"BLUEPRINT": { "BLUEPRINT": {
"LIKE": "Search", "LIKE": "Search",
@ -1362,7 +1362,7 @@
}, },
"VERSION-DIALOG": { "VERSION-DIALOG": {
"ABOUT": "Versioning is automated.", "ABOUT": "Versioning is automated.",
"QUESTION": "It seems your Dataset Template is outdated. Do you want to update it to the latest version?" "QUESTION": "It seems your Description Template is outdated. Do you want to update it to the latest version?"
}, },
"ERRORS":{ "ERRORS":{
"ERROR-OCCURED": "An error occurred.", "ERROR-OCCURED": "An error occurred.",
@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Pick an existing DMP" "PLACEHOLDER": "Pick an existing DMP"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }
@ -1932,15 +1932,15 @@
}, },
"SECOND-STEP": { "SECOND-STEP": {
"TITLE": "DMP Profile", "TITLE": "DMP Profile",
"ABOUT": "A Data Management Plan consists of a set of questions that you should answer with a level of detail appropriate to the grant or with relevance to the purpose that you are creating the DMP. Contents of each DMP vary depending on the selected Dataset Template(s) which contain(s) a set of tailored questions in response to policy requirements of funders, institutions, research communities.", "ABOUT": "A Data Management Plan consists of a set of questions that you should answer with a level of detail appropriate to the grant or with relevance to the purpose that you are creating the DMP. Contents of each DMP vary depending on the selected Description Template(s) which contain(s) a set of tailored questions in response to policy requirements of funders, institutions, research communities.",
"NEW-TITLE": "", "NEW-TITLE": "",
"DMP-NAME": "DMP For Grant : ", "DMP-NAME": "DMP For Grant : ",
"FIELDS": { "FIELDS": {
"NAME": "Title of the DMP", "NAME": "Title of the DMP",
"DESCRIPTION": "Summary", "DESCRIPTION": "Summary",
"DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP", "DESCRIPTION-HINT": "Briefly describe the context and purpose of the DMP",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PROFILE-HINT": "Select a template to describe your Dataset(s). If you want to select multiple Dataset Templates use \"New DMP (Expert)\". You can also add new Datasets at any time after the DMP creation.", "PROFILE-HINT": "Select a template to describe your Dataset(s). If you want to select multiple Description Templates use \"New DMP (Expert)\". You can also add new Datasets at any time after the DMP creation.",
"HELP": "If you can't find a template or if you want to create a personalized template for your institution, research community or training needs, please contact us." "HELP": "If you can't find a template or if you want to create a personalized template for your institution, research community or training needs, please contact us."
} }
}, },

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Seleccione un PGD existente" "PLACEHOLDER": "Seleccione un PGD existente"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Επιλέξτε ένα Σχέδιο Διαχείρισης Δεδομένων από τη συλλογή σας" "PLACEHOLDER": "Επιλέξτε ένα Σχέδιο Διαχείρισης Δεδομένων από τη συλλογή σας"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Selecione um PGD existente" "PLACEHOLDER": "Selecione um PGD existente"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Vybrať existujúci DMP." "PLACEHOLDER": "Vybrať existujúci DMP."
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Odaberite postojeći Plan" "PLACEHOLDER": "Odaberite postojeći Plan"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }

View File

@ -1390,13 +1390,13 @@
"PLACEHOLDER": "Mevcut olan bir VYP seçin" "PLACEHOLDER": "Mevcut olan bir VYP seçin"
}, },
"PREFILL-STEP": { "PREFILL-STEP": {
"TITLE": "Initialize your Dataset", "TITLE": "Initialize your Description",
"PREFILL": "Prefill", "PREFILL": "Prefill",
"OR": "OR", "OR": "OR",
"HINT": "Select the dataset from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.", "HINT": "Select an entry from Zenodo to automatically retrieve answers to some questions in your template or start by answering the questions manually.",
"MANUALLY": "Manually", "MANUALLY": "Manually",
"PROFILE": "Dataset Template", "PROFILE": "Description Template",
"PREFILLED-DATASET": "Prefilled Dataset", "PREFILLED-DATASET": "Prefilled Description",
"SEARCH": "Start typing to search for a dataset or software", "SEARCH": "Start typing to search for a dataset or software",
"NEXT": "Next" "NEXT": "Next"
} }