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 371c54a886e0d3644e001e800c0e22ebc2497e44..80a357d25a61df2d96e5e3f7fbbfb66433f71d15 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties @@ -308,6 +308,8 @@ fieldSowingDate = Field sowing date fields = Fields +traps = Traps + filter = Filter filterList = Filter list 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 e95e775b8edf19dd0387429372de2d01c205aee8..87647c45dde3c281d5d68f2586191610a2faee80 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 @@ -306,6 +306,8 @@ fieldSowingDate = Field sowing date fields = Fields +traps = Traps + filter = Filter filterList = Filter list 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 994f99dae2373c6bb287931b341d014cc1584640..351048a470187ba55766c9205a30a2a9403a2f17 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 @@ -306,6 +306,8 @@ fieldSowingDate = Field sowing date fields = Fields +traps = Traps + filter = Filter filterList = Filter list 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 e8bdd3980144cbdb23e94bbd9ac0d45469463b41..1e03844cc22e2c12fe721b2eb34d16f56e097f44 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 @@ -308,6 +308,8 @@ fieldSowingDate = S\u00e5dato for felt fields = Felt +traps = Feller + filter = Filter filterList = Filtr\u00e9r lista 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 33ee218c4ff36c296acf147cefdfb87f0bf9ba48..1a791041100981ea65f2c5acf16d66132a05823d 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 @@ -306,6 +306,8 @@ fieldSowingDate = Field sowing date fields = Fields +traps = Traps + filter = Filter filterList = Filter list 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 e5f1e363df022af7d9242c0e0f9ff8cf139f93a1..0384f07d5ec425c9d03406f2c84337117731f304 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 @@ -304,6 +304,8 @@ fieldSowingDate = Field sowing date fields = Fields +traps = Traps + filter = \u8fc7\u6ee4\u5668 filterList = Filter list diff --git a/src/main/webapp/templates/observationForm.ftl b/src/main/webapp/templates/observationForm.ftl index d34ca3f43e38262ce05a66206edcf711a92d0d25..4945cddf3dc3a466fb916e030ac26cb8e97f097a 100755 --- a/src/main/webapp/templates/observationForm.ftl +++ b/src/main/webapp/templates/observationForm.ftl @@ -230,38 +230,41 @@ var allPois = []; - /** - * Fetches locations, farms, fields and weather stations, renders the list - */ - function refreshLocationPointOfInterests(pointOfInterestId) + /** + * Fetches locations, farms, fields, traps and weather stations, renders the list + */ + function refreshLocationPointOfInterests(selectedPointOfInterestId) { - var poiTypes = ["${i18nBundle.genericPlaces}","${i18nBundle.weatherStations}","${i18nBundle.farms}","${i18nBundle.fields}"]; - $.getJSON("/rest/poi/user", function( json ) { - allPois = json; - var theList = document.getElementById("locationPointOfInterestId"); - theList.options.length = 1; - // Locations first, weather stations next - for(var h=0;h<poiTypes.length;h++) - { - var option = new Option("-- " + poiTypes[h] + " --","-1"); - theList.options[theList.options.length] = option; - for(var i=0;i< allPois.length;i++) - { - var poi = allPois[i]; - if(poi.pointOfInterestTypeId == h) - { - var option = new Option(poi.name, poi.pointOfInterestId); - if(poi.pointOfInterestId == pointOfInterestId) - { - option.selected=true; - } - theList.options[theList.options.length] = option; - } - } - } - showCorrectMap(); + const poiTypes = { + 0: "${i18nBundle.genericPlaces}", + 1: "${i18nBundle.weatherStations}", + 2: "${i18nBundle.farms}", + 3: "${i18nBundle.fields}", + 5: "${i18nBundle.traps}" + }; + $.getJSON("/rest/poi/user", function(json) { + const allPois = json; + const poiListElement = document.getElementById("locationPointOfInterestId"); + poiListElement.options.length = 1; + // Iterate through each point of interest type + for (const [typeId, typeName] of Object.entries(poiTypes)) { + poiListElement.options[poiListElement.options.length] = new Option("-- " + typeName + " --", "-1"); + + // Iterate through all POIs and add them to the list if they match the type + for (let i = 0; i < allPois.length; i++) { + const poi = allPois[i]; + + if (poi.pointOfInterestTypeId == typeId) { + const poiOption = new Option(poi.name, poi.pointOfInterestId); + if (poi.pointOfInterestId === selectedPointOfInterestId) { + poiOption.selected = true; } - ); + poiListElement.options[poiListElement.options.length] = poiOption; + } + } + } + showCorrectMap(); + }); } @@ -515,7 +518,7 @@ <input type="hidden" name="observationData" value=""/> <input type="hidden" name="observationId" value="${observation.observationId!"-1"}"/> <!--button type="button" onclick="var theForm=document.getElementById('observationForm');theForm['geoInfo'].value=getFeatures();try{mw.save();theForm['observationData'].value=JSON.stringify(mw.toInspect);return validateForm(theForm) && validateGIS(theForm);}catch(e){console.log(e.message);console.log(e);return false;}">Test</button--> - <#if observation.user?has_content> + <#if observation.user?has_content> <div class="form-group"> <label>${i18nBundle.observer}: ${observation.user.firstName} ${observation.user.lastName}</label> </div>