From bd6170f7119aeae7ab241adbf29c7c307291ca24 Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Tue, 10 Sep 2019 18:30:46 +0300 Subject: [PATCH] Adds "source" property on external autocomplete field of Dataset Description Template. --- .../eudat/logic/managers/DatasetProfileManager.java | 4 ++-- .../commons/datafield/AutoCompleteData.java | 4 ++++ .../components/commons/datafield/ComboBoxData.java | 12 ++++++++++-- .../field-data/field-data.ts | 1 + .../field-data/field-data-option-editor-model.ts | 5 ++++- ...profile-editor-auto-complete-field.component.html | 9 ++++++--- dmp-frontend/src/assets/i18n/en.json | 3 ++- 7 files changed, 29 insertions(+), 9 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java index 2e151941f..32888ab1e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java @@ -111,8 +111,8 @@ public class DatasetProfileManager { ResponseEntity response = restTemplate.exchange(data.getUrl() + "?search=" + like, HttpMethod.GET, entity, Object.class); DocumentContext jsonContext = JsonPath.parse(response.getBody()); - List> jsonItems = jsonContext.read(data.getOptionsRoot() + "['" + data.getAutoCompleteOptions().getLabel() + "','" + data.getAutoCompleteOptions().getValue() + "']"); - jsonItems.forEach(item -> result.add(new ExternalAutocompleteFieldModel(item.get(data.getAutoCompleteOptions().getValue()), item.get(data.getAutoCompleteOptions().getLabel()), data.getUrl()))); + List> jsonItems = jsonContext.read(data.getOptionsRoot() + "['" + data.getAutoCompleteOptions().getLabel() + "','" + data.getAutoCompleteOptions().getValue() + "','" + data.getAutoCompleteOptions().getSource() + "']"); + jsonItems.forEach(item -> result.add(new ExternalAutocompleteFieldModel(item.get(data.getAutoCompleteOptions().getValue()), item.get(data.getAutoCompleteOptions().getLabel()), item.get(data.getAutoCompleteOptions().getSource())))); return result; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/AutoCompleteData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/AutoCompleteData.java index 6511679db..f5b141662 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/AutoCompleteData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/AutoCompleteData.java @@ -46,6 +46,7 @@ public class AutoCompleteData extends ComboBoxData { Element element = doc.createElement("option"); element.setAttribute("label", this.autoCompleteOptions.getLabel()); element.setAttribute("value", autoCompleteOptions.getValue()); + element.setAttribute("source", autoCompleteOptions.getSource()); root.appendChild(element); return root; } @@ -61,6 +62,7 @@ public class AutoCompleteData extends ComboBoxData { this.autoCompleteOptions = new Option(); this.autoCompleteOptions.setLabel(optionElement.getAttribute("label")); this.autoCompleteOptions.setValue(optionElement.getAttribute("value")); + this.autoCompleteOptions.setSource(optionElement.getAttribute("source")); } return this; } @@ -77,6 +79,7 @@ public class AutoCompleteData extends ComboBoxData { if (options != null) { this.autoCompleteOptions.setLabel(options.get("label")); this.autoCompleteOptions.setValue(options.get("value")); + this.autoCompleteOptions.setSource(options.get("source")); } } @@ -110,6 +113,7 @@ public class AutoCompleteData extends ComboBoxData { HashMap dataMap = new HashMap(); dataMap.put("label", item != null ? item.getAttribute("label") : ""); dataMap.put("value", item != null ? item.getAttribute("value") : ""); + dataMap.put("source", item != null ? item.getAttribute("source") : ""); return dataMap; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ComboBoxData.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ComboBoxData.java index fd9624235..db67ea301 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ComboBoxData.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/components/commons/datafield/ComboBoxData.java @@ -11,11 +11,11 @@ public abstract class ComboBoxData extends FieldData { public class Option implements XmlSerializable