From eedcf0dfb0b86a10082a4c038158e67e27a91dbb Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Fri, 11 Feb 2022 13:09:29 +0200 Subject: [PATCH] fix freetext-format bug in prefilling temporarily --- .../datasetwizard/DatasetWizardModel.java | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java index e9611870c..7a259b315 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/datasetwizard/DatasetWizardModel.java @@ -390,6 +390,7 @@ public class DatasetWizardModel implements DataModel standardFormats = new ArrayList<>(); + StringBuilder freeTextFormat = new StringBuilder(); for(String format: formats) { RestTemplate restTemplate = new RestTemplate(); String parsedUrl = "https://eestore.paas2.uninett.no/api/fileformat/?search=" + format; @@ -398,28 +399,42 @@ public class DatasetWizardModel implements DataModel entity = new HttpEntity("", headers); Map data = restTemplate.exchange(parsedUrl, HttpMethod.GET, entity, LinkedHashMap.class).getBody(); jsonArr = new JSONArray(new ObjectMapper().writeValueAsString(data.get("data"))); - for(int i = 0; i < jsonArr.length(); i++){ - JSONObject jsonObj = jsonArr.getJSONObject(i); - jsonObj = jsonObj.getJSONObject("attributes"); - JSONArray extensions = jsonObj.getJSONArray("extensions"); - Object formatName = jsonObj.get("name"); - boolean found = false; - for(int j = 0; j < extensions.length(); j++){ - if(extensions.getString(j).equals(format)){ - JSONObject cur = new JSONObject(); - cur.put("label", formatName.toString()); - standardFormats.add(cur.toString()); - found = true; + if(jsonArr.length() > 0) { + for (int i = 0; i < jsonArr.length(); i++) { + JSONObject jsonObj = jsonArr.getJSONObject(i); + jsonObj = jsonObj.getJSONObject("attributes"); + JSONArray extensions = jsonObj.getJSONArray("extensions"); + Object formatName = jsonObj.get("name"); + boolean found = false; + for (int j = 0; j < extensions.length(); j++) { + if (extensions.getString(j).equals(format)) { + JSONObject cur = new JSONObject(); + cur.put("label", formatName.toString()); + standardFormats.add(cur.toString()); + found = true; + break; + } + } + if (found) { break; } } - if(found){ - break; - } + } + else{ + freeTextFormat.append(format).append(", "); } } - properties.put(id, standardFormats); + String renderStyle = node.get(0) != null ? node.get(0).get("viewStyle").get("renderStyle").asText() : node.get("viewStyle").get("renderStyle").asText(); + if(renderStyle.equals("freetext")){ + if (freeTextFormat.length() > 0) { + freeTextFormat.setLength(freeTextFormat.length() - 2); + } + properties.put(id, freeTextFormat.toString()); + } + else{ + properties.put(id, standardFormats); + } } else if(prefillingMapping.getMaDmpTarget().equals("dataset.distribution.data_access")){ value = value.replace("\"", "");