From 3d9a2b23316c8f6b63e3a36d293ffa657d2593a8 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 13 Apr 2021 10:46:06 +0300 Subject: [PATCH] Fix various issues with various template fields --- .../utilities/documents/word/WordBuilder.java | 40 +++++++++++++++++-- .../datafield/DataRepositoriesData.java | 4 +- .../datafield/ExternalDatasetsData.java | 4 +- .../commons/datafield/OrganizationsData.java | 4 +- .../commons/datafield/RadioBoxData.java | 23 ++++++++++- .../commons/datafield/RegistriesData.java | 4 +- .../commons/datafield/ResearcherData.java | 4 +- .../commons/datafield/ServicesData.java | 4 +- .../external-datasets-data-editor-models.ts | 4 +- .../registries-data-editor-models.ts | 4 +- 10 files changed, 74 insertions(+), 21 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index fcad5a7e4..f13da5c5d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -1,5 +1,6 @@ package eu.eudat.logic.utilities.documents.word; +import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import eu.eudat.logic.services.forms.VisibilityRuleService; @@ -226,9 +227,22 @@ public class WordBuilder { } private String formatter(Field field) throws IOException { + String comboboxType = null; switch (field.getViewStyle().getRenderStyle()) { + case "researchers": + case "projects": + case "organizations": + case "externalDatasets": + case "dataRepositories": + case "registries": + case "services": + case "tags": + case "currency": + comboboxType = "autocomplete"; case "combobox": { - String comboboxType = ((ComboBoxData) field.getData()).getType(); + if (comboboxType == null) { + comboboxType = ((ComboBoxData) field.getData()).getType(); + } if (comboboxType.equals("autocomplete")) { ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); @@ -271,13 +285,14 @@ public class WordBuilder { StringBuilder sb = new StringBuilder(); int index = 0; for (Map map: mapList) { - if (!map.containsKey("label") && !map.containsKey("description")) { + /*if (!map.containsKey("label") && !map.containsKey("description")) { logger.error("Value is missing the \"label\" and the \"description\" attributes"); map.put("label", "unknown Name"); - } + }*/ for (Map.Entry entry : map.entrySet()) { - if (entry.getValue() != null && (entry.getKey().equals("label") || entry.getKey().equals("description"))) { + if (entry.getValue() != null && (entry.getKey().equals("label") || entry.getKey().equals("description") || entry.getKey().equals("name"))) { sb.append(entry.getValue().toString()); + break; } } if (index != mapList.size() - 1) sb.append(", "); @@ -314,6 +329,23 @@ public class WordBuilder { case "datepicker": case "textarea": return field.getValue() != null ? field.getValue().toString(): ""; + case "datasetIdentifier": + case "validation": + Map identifierData; + try { + ObjectMapper mapper = new ObjectMapper(); + identifierData = mapper.readValue(field.getValue().toString(), HashMap.class); + } catch (JsonParseException ex) { + identifierData = new HashMap<>(); + String parsedData = field.getValue().toString().substring(1, field.getValue().toString().length() - 1); + StringTokenizer commaTokens = new StringTokenizer(parsedData, ", "); + while (commaTokens.hasMoreTokens()) { + String token = commaTokens.nextToken(); + StringTokenizer equalTokens = new StringTokenizer(token, "="); + identifierData.put(equalTokens.nextToken(), equalTokens.nextToken()); + } + } + return "id: " + identifierData.get("identifier") + ", Validation Type: " + identifierData.get("type"); } return null; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java index e72843a39..a0f66a751 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/DataRepositoriesData.java @@ -51,8 +51,8 @@ public class DataRepositoriesData extends FieldData { @Override public Map toMap(Element item) { HashMap dataMap = new HashMap(); - dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("multiAutoComplete", item != null ? item.getAttribute("multiAutoComplete") : false); + dataMap.put("label", item != null && item.getAttributes().getLength() > 0? item.getAttribute("label") : ""); + dataMap.put("multiAutoComplete", item != null && item.getAttributes().getLength() > 0 ? item.getAttribute("multiAutoComplete") : false); return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java index 78c075290..8448f5ec7 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ExternalDatasetsData.java @@ -51,8 +51,8 @@ public class ExternalDatasetsData extends FieldData { @Override public Map toMap(Element item) { HashMap dataMap = new HashMap(); - dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("multiAutoComplete", item != null ? item.getAttribute("multiAutoComplete") : false); + dataMap.put("label", item != null && item.getAttributes().getLength() > 0? item.getAttribute("label") : ""); + dataMap.put("multiAutoComplete", item != null && item.getAttributes().getLength() > 0? item.getAttribute("multiAutoComplete") : false); return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java index 0a9f92f3c..afb0d29a3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/OrganizationsData.java @@ -51,8 +51,8 @@ public class OrganizationsData extends FieldData { @Override public Map toMap(Element item) { HashMap dataMap = new HashMap(); - dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("multiAutoComplete", item != null ? item.getAttribute("multiAutoComplete") : false); + dataMap.put("label", item != null && item.getAttributes().getLength() > 0? item.getAttribute("label") : ""); + dataMap.put("multiAutoComplete", item != null && item.getAttributes().getLength() > 0? item.getAttribute("multiAutoComplete") : false); return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RadioBoxData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RadioBoxData.java index 66c2205be..5dd1d7166 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RadioBoxData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RadioBoxData.java @@ -118,7 +118,28 @@ public class RadioBoxData extends FieldData { public Map toMap(Element item) { HashMap dataMap = new HashMap(); dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("options", item != null ? item.getAttribute("options") : ""); + Element optionsElement = (Element) item.getElementsByTagName("options").item(0); + List> option =new LinkedList<>(); + + if (optionsElement != null) { + NodeList optionElements = optionsElement.getChildNodes(); + for (int temp = 0; temp < optionElements.getLength(); temp++) { + Node optionElement = optionElements.item(temp); + if (optionElement.getNodeType() == Node.ELEMENT_NODE) { + option.add(optionToMap((Element) optionElement)); + } + } + } + + dataMap.put("options", option != null ? option : null); + return dataMap; + } + + private Map optionToMap(Element item){ + HashMap dataMap = new HashMap(); + dataMap.put("label",item.getAttribute("label")); + dataMap.put("value",item.getAttribute("value")); + return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java index 263d9de0b..03b4761ca 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/RegistriesData.java @@ -51,8 +51,8 @@ public class RegistriesData extends FieldData { @Override public Map toMap(Element item) { HashMap dataMap = new HashMap(); - dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("multiAutoComplete", item != null ? item.getAttribute("multiAutoComplete") : false); + dataMap.put("label", item != null && item.getAttributes().getLength() > 0? item.getAttribute("label") : ""); + dataMap.put("multiAutoComplete", item != null && item.getAttributes().getLength() > 0? item.getAttribute("multiAutoComplete") : false); return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java index ccdbaa96b..91e07b5b9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ResearcherData.java @@ -51,8 +51,8 @@ public class ResearcherData extends FieldData { @Override public Map toMap(Element item) { HashMap dataMap = new HashMap(); - dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("multiAutoComplete", item != null ? item.getAttribute("multiAutoComplete") : false); + dataMap.put("label", item != null && item.getAttributes().getLength() > 0 ? item.getAttribute("label") : ""); + dataMap.put("multiAutoComplete", item != null && item.getAttributes().getLength() > 0 ? item.getAttribute("multiAutoComplete") : false); return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java index b68b497b3..a2c614ba1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ServicesData.java @@ -51,8 +51,8 @@ public class ServicesData extends FieldData { @Override public Map toMap(Element item) { HashMap dataMap = new HashMap(); - dataMap.put("label", item != null ? item.getAttribute("label") : ""); - dataMap.put("multiAutoComplete", item != null ? item.getAttribute("multiAutoComplete") : false); + dataMap.put("label", item != null && item.getAttributes().getLength() > 0? item.getAttribute("label") : ""); + dataMap.put("multiAutoComplete", item != null && item.getAttributes().getLength() > 0? item.getAttribute("multiAutoComplete") : false); return dataMap; } } diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts index 7ee716fbb..e8d7b018e 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/external-datasets-data-editor-models.ts @@ -8,8 +8,8 @@ export class ExternalDatasetsDataEditorModel extends FieldDataEditorModel = []): FormGroup { const formGroup = this.formBuilder.group({ - label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('ServicesDataEditorModel.label')) }], - multiAutoComplete: [{ value: this.multiAutoComplete, disabled: (disabled && !skipDisable.includes('ServicesDataEditorModel.multiAutoComplete')) }] + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('ExternalDatasetsDataEditorModel.label')) }], + multiAutoComplete: [{ value: this.multiAutoComplete, disabled: (disabled && !skipDisable.includes('ExternalDatasetsDataEditorModel.multiAutoComplete')) }] }); return formGroup; } diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts index 2d9cee08e..f0128ea45 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/admin/field-data/registries-data-editor-models.ts @@ -8,8 +8,8 @@ export class RegistriesDataEditorModel extends FieldDataEditorModel = []): FormGroup { const formGroup = this.formBuilder.group({ - label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('ServicesDataEditorModel.label')) }], - multiAutoComplete: [{ value: this.multiAutoComplete, disabled: (disabled && !skipDisable.includes('ServicesDataEditorModel.multiAutoComplete')) }] + label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('RegistriesDataEditorModel.label')) }], + multiAutoComplete: [{ value: this.multiAutoComplete, disabled: (disabled && !skipDisable.includes('RegistriesDataEditorModel.multiAutoComplete')) }] }); return formGroup; }