From 2ad01b3d94793375b00382cb512f8b7e177d3618 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Tue, 19 Oct 2021 15:48:22 +0200 Subject: [PATCH] I18n now works for the observationdataschema endpoint --- .../controller/session/ObservationBean.java | 17 ++++++++++-- .../ObservationDataService.java | 27 ------------------- .../vips/logic/i18n/vipslogictexts.properties | 2 ++ .../logic/i18n/vipslogictexts_bs.properties | 2 ++ .../logic/i18n/vipslogictexts_hr.properties | 2 ++ .../logic/i18n/vipslogictexts_nb.properties | 2 ++ .../logic/i18n/vipslogictexts_sr.properties | 2 ++ .../i18n/vipslogictexts_zh_CN.properties | 2 ++ src/main/webapp/templates/observationForm.ftl | 5 ++++ 9 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java index a92f370e..43a909d0 100755 --- a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java +++ b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java @@ -813,7 +813,10 @@ public class ObservationBean { // First: Convert to Jackson JsonNode tree ObjectMapper m = new ObjectMapper(); JsonNode rootNode = m.readTree(ods.getDataSchema()); - Iterator<Entry<String, JsonNode>> nodeIterator = rootNode.fields(); + // Is this the full schema or just the "properties" property? + JsonNode propertiesNode = rootNode.get("properties") == null ? rootNode : rootNode.get("properties"); + + Iterator<Entry<String, JsonNode>> nodeIterator = propertiesNode.fields(); String fieldKeyPrefix = "observationDataField_"; // Loop through each field @@ -828,9 +831,19 @@ public class ObservationBean { // Get the property field (e.g. {"title":"Counting 2"} ) JsonNode schemaProperty = schemaPropertyField.getValue(); ((ObjectNode)schemaProperty).put("title", bundle.getString(fieldKeyPrefix + fieldKey)); - ((ObjectNode)rootNode).replace(fieldKey, schemaProperty); + ((ObjectNode)propertiesNode).replace(fieldKey, schemaProperty); } } + + // I repeat: Is this the full schema or just the "properties" property? + if(rootNode.get("properties") != null) + { + ((ObjectNode)rootNode).replace("properties", propertiesNode); + } + else + { + rootNode = propertiesNode; + } ods.setDataSchema(m.writeValueAsString(rootNode)); return ods; } diff --git a/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java b/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java index 04e3a2c2..0fe28730 100755 --- a/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java +++ b/src/main/java/no/nibio/vips/observationdata/ObservationDataService.java @@ -71,34 +71,7 @@ public class ObservationDataService { { // Try to find schema for given organism/organization ObservationDataSchema ods = SessionControllerGetter.getObservationBean().getObservationDataSchema(organizationId, organismId); - /* - ResourceBundle bundle = SessionLocaleUtil.getI18nBundle(httpServletRequest); - // We iterate the schema, replacing default field labels with - // translated ones - // First: Convert to Jackson JsonNode tree - ObjectMapper m = new ObjectMapper(); - JsonNode rootNode = m.readTree(ods.getDataSchema()); - Iterator<Entry<String, JsonNode>> nodeIterator = rootNode.fields(); - - String fieldKeyPrefix = "observationDataField_"; - // Loop through each field - while (nodeIterator.hasNext()) { - Map.Entry<String, JsonNode> schemaPropertyField = (Map.Entry<String, JsonNode>) nodeIterator.next(); - // Get the property field key (e.g. "counting2") - String fieldKey = schemaPropertyField.getKey(); - // Find a translation. - if(bundle.containsKey(fieldKeyPrefix + fieldKey)) - { - // If found, replace with translation - // Get the property field (e.g. {"title":"Counting 2"} ) - JsonNode schemaProperty = schemaPropertyField.getValue(); - ((ObjectNode)schemaProperty).put("title", bundle.getString(fieldKeyPrefix + fieldKey)); - ((ObjectNode)rootNode).replace(fieldKey, schemaProperty); - } - } - return Response.ok().entity(rootNode).build(); - */ ods = SessionControllerGetter.getObservationBean().getLocalizedObservationDataSchema(ods, httpServletRequest); return Response.ok().entity(ods.getDataSchema()).build(); diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties index 5e16d81b..5be420e5 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties @@ -519,3 +519,5 @@ slidingHoursAhead=Reference period, forwards (hours) thresholdHumidPeriodHours=Threshold Number of consecutive humid hours sprayingProtectionDays=Expected protection period (days) after spraying leafLifeTime=Leaf life time (days) +observationDataField_trapCountCropEdge=Number of trap counts at field's edge +observationDataField_trapCountCropInside=Number of trap counts inside the field diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties index 308b8df9..e05ec221 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties @@ -519,3 +519,5 @@ slidingHoursAhead=Reference period, forwards (hours) thresholdHumidPeriodHours=Threshold Number of consecutive humid hours sprayingProtectionDays=Expected protection period (days) after spraying leafLifeTime=Leaf life time (days) +observationDataField_trapCountCropEdge=Number of trap counts at field's edge +observationDataField_trapCountCropInside=Number of trap counts inside the field diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties index 8778e533..53622e17 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties @@ -518,3 +518,5 @@ slidingHoursAhead=Reference period, forwards (hours) thresholdHumidPeriodHours=Threshold Number of consecutive humid hours sprayingProtectionDays=Expected protection period (days) after spraying leafLifeTime=Leaf life time (days) +observationDataField_trapCountCropEdge=Number of trap catches at field's edge +observationDataField_trapCountCropInside=Number of trap catches inside the field diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties index f51e7c48..06e7837c 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties @@ -519,3 +519,5 @@ slidingHoursAhead=Prognoseperiode, fremover (timer) thresholdHumidPeriodHours=Antall sammenhengende "fuktige timer" sprayingProtectionDays=Forv. ant. dager beskyttelse etter spr\u00f8yting leafLifeTime=Levetid for blad (dager) +observationDataField_trapCountCropEdge=Antall insekter, fellefangst i kant av felt\n +observationDataField_trapCountCropInside=Antall insekter, fellefangst inne i felt diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties index f6215ae7..72ad9e2d 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties @@ -519,3 +519,5 @@ slidingHoursAhead=Reference period, forwards (hours) thresholdHumidPeriodHours=Threshold Number of consecutive humid hours sprayingProtectionDays=Expected protection period (days) after spraying leafLifeTime=Leaf life time (days) +observationDataField_trapCountCropEdge=Number of trap counts at field's edge +observationDataField_trapCountCropInside=Number of trap counts inside the field diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties index d81d3f41..1052757b 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties @@ -516,3 +516,5 @@ slidingHoursAhead=Reference period, forwards (hours) thresholdHumidPeriodHours=Threshold Number of consecutive humid hours sprayingProtectionDays=Expected protection period (days) after spraying leafLifeTime=Leaf life time (days) +observationDataField_trapCountCropEdge=Number of trap counts at field's edge +observationDataField_trapCountCropInside=Number of trap counts inside the field diff --git a/src/main/webapp/templates/observationForm.ftl b/src/main/webapp/templates/observationForm.ftl index cd245efd..ba748445 100755 --- a/src/main/webapp/templates/observationForm.ftl +++ b/src/main/webapp/templates/observationForm.ftl @@ -133,6 +133,11 @@ var buildForm = function(schemaProperties) { + // Check if we're getting the whole schema or just the properties + if(schemaProperties.properties != undefined) + { + schemaProperties = schemaProperties.properties; + } observationSchema = schemaProperties; // Erasing whatever was there before var metawidgetC = document.getElementById( 'metawidget' ); -- GitLab