diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java index bf0e54b2ff217ee8c5c264e4e6054da7b0b118e7..430da197cbf0da56dc5acf50f0a66cd7c40e041d 100644 --- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java +++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleController.java @@ -299,6 +299,8 @@ public class BarkbeetleController extends HttpServlet { tr.setTrap3Remarks(request.getParameter(week + "_trap3Remarks")); tr.setTrap4Remarks(request.getParameter(week + "_trap4Remarks")); + tr.setObservedAttacksDescription(request.getParameter(week +"_observedAttacksDescription") != null ? request.getParameter(week +"_observedAttacksDescription") : ""); + String registrationStatusTypeIdFieldValue = request.getParameter(week + "_registrationStatusTypeId"); if(registrationStatusTypeIdFieldValue != null && ! registrationStatusTypeIdFieldValue.isBlank()) { diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java index 7e438d36acfff875e97bf0d0b76987b1fcb77307..26213d9d114ba81aab37346cb6a97b71c5bb7a14 100644 --- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java +++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/TrapsiteRegistration.java @@ -85,6 +85,8 @@ public class TrapsiteRegistration implements Serializable, Comparable { private String trap4Remarks; @Column(name = "registration_status_type_id") private Integer registrationStatusTypeId; + @Column(name = "observed_attacks_description") + private String observedAttacksDescription; @JoinColumn(name = "season_trapsite_id", referencedColumnName = "season_trapsite_id", insertable = false, updatable = false) @ManyToOne(optional = false) private SeasonTrapsite seasonTrapsite; @@ -265,5 +267,19 @@ public class TrapsiteRegistration implements Serializable, Comparable { return counter > 0 ? sum/counter : null; } + + /** + * @return the observedAttacksDescription + */ + public String getObservedAttacksDescription() { + return observedAttacksDescription; + } + + /** + * @param observedAttacksDescription the observedAttacksDescription to set + */ + public void setObservedAttacksDescription(String observedAttacksDescription) { + this.observedAttacksDescription = observedAttacksDescription; + } } diff --git a/src/main/webapp/templates/modules/barkbeetle/barkbeetleTrapsiteRegistrationForm.ftl b/src/main/webapp/templates/modules/barkbeetle/barkbeetleTrapsiteRegistrationForm.ftl index 53762edd5059bf3bda93401e2538eb7990f66c14..a573162a8122b14d3a2f0bf18f5bf990c68ed1a8 100644 --- a/src/main/webapp/templates/modules/barkbeetle/barkbeetleTrapsiteRegistrationForm.ftl +++ b/src/main/webapp/templates/modules/barkbeetle/barkbeetleTrapsiteRegistrationForm.ftl @@ -1,5 +1,5 @@ <#-- - Copyright (c) 2020 NIBIO <http://www.nibio.no/>. + Copyright (c) 2022 NIBIO <http://www.nibio.no/>. This file is part of VIPSLogic. VIPSLogic is free software: you can redistribute it and/or modify @@ -94,7 +94,7 @@ <#list trapsiteRegistrations as reg> <#assign tooEarly = reg.trapsiteRegistrationPK.week gt currentWeek && ! (currentWeek == 27 && reg.trapsiteRegistrationPK.week == 28)> <tr> - <td rowspan="2">${reg.trapsiteRegistrationPK.week} (${reg?counter})</td> + <td rowspan="<#if seasonTrapsite.season gt 2021>3<#else>2</#if>">${reg.trapsiteRegistrationPK.week} (${reg?counter})</td> <td rowspan="2"><input class="form-control" type="date" name="${reg.trapsiteRegistrationPK.week}_dateRegistration" value="${reg.dateRegistration!""}"<#if tooEarly> disabled="disabled"<#else> required="required"</#if>/></td> <td><input class="form-control squeezemenot" type="number" name="${reg.trapsiteRegistrationPK.week}_trap1_ml" onblur="setCalculatedAmount(this);" value=""<#if tooEarly> disabled="disabled"</#if>/></td> <td><input class="form-control squeezemenot" type="text" onblur="validateRegField(this, true);" name="${reg.trapsiteRegistrationPK.week}_trap1" value="${reg.trap1!"M"}"<#if tooEarly> disabled="disabled"</#if>/></td> @@ -125,15 +125,25 @@ <td colspan="2"><input class="form-control" type="text" name="${reg.trapsiteRegistrationPK.week}_trap4Remarks" placeholder="Kommentar felle 4" value="${reg.trap4Remarks!""}"<#if tooEarly || isExtended> disabled="disabled"</#if>/></td> </tr> + <#if seasonTrapsite.season gt 2021> + <tr> + <td>Er det observert angrep av stor granbarkbille på stående gran i nærområdet/kommunen? Beskriv hva som er observert (omfang, sted m.m.)</td> + <td colspan="8"> + <textarea class="form-control" name="${reg.trapsiteRegistrationPK.week}_observedAttacksDescription"<#if tooEarly> disabled="disabled"</#if>>${reg.observedAttacksDescription!""}</textarea> + </td> + </tr> + </#if> </#list> </tbody> </table> </div> + <#if seasonTrapsite.season lte 2021> <div class="form-group" style="padding-left: 5px; padding-right: 5px;"> <label for="observedAttacksDescription">Er det observert angrep av stor granbarkbille på stående gran i nærområdet/kommunen? Beskriv hva som er observert (omfang, når, m.m.)</label> <textarea class="form-control" name="observedAttacksDescription">${seasonTrapsite.observedAttacksDescription!""}</textarea> </div> + </#if> <div class="form-group" style="padding-left: 5px; padding-right: 5px; display: <#if currentWeek gte 33>block<#else>none</#if>;"> <label for="maintenanceDescription">Registrer felledeler som må fornyes før neste sesong. Oppgi hva slags felledel (oppsamlerkopp, låsepinne, oppsamlerkopp, jordspyd, kryss, trakt, midtrør, sil, hel @@ -210,9 +220,16 @@ return false; } } + <#if seasonTrapsite.season gt 2021> + if(weeks[wi] <= ${currentWeek} && theForm[weeks[wi] + "_observedAttacksDescription"].value.trim().length == 0) + { + alert("FEIL: Angrepsregistrering for alle utførte tømmerunder må være utfylt. Skriv eventuelt \"Ingen angrep registrert\"."); + return false; + } + </#if> } <#if currentWeek gte 33> - // Check if maintenance description has content, issue warning if not + // Check if maintenance description has content, issue warning and refuse submit if not if(theForm["maintenanceDescription"].value.trim() == "") { alert("Etter endt sesong skal behov for reservedeler oppgis, også hvis det ikke er behov for det (skriv i så fall f.eks. \"Ikke behov for reservedeler\".)");