diff --git a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java index 4c915c51f61069e73ceb0851decc6293166dcf78..04223b879171785c2563151f4feffef67d774258 100644 --- a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java +++ b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java @@ -160,10 +160,11 @@ public class SchedulingBean { // at creation time. // Running all forecasts every hour:30 - VIPSLogicTaskCollector testCollector = new VIPSLogicTaskCollector(-1); + VIPSLogicTaskCollector modelRunCollector = new VIPSLogicTaskCollector(-1); SchedulingPattern halfPastPattern = new SchedulingPattern("30 * * * *"); - testCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.RUN_ALL_FORECAST_CONFIGURATIONS_TASK)); - testCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.UPDATE_MODEL_INFORMATION_TASK)); + modelRunCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.RUN_ALL_FORECAST_CONFIGURATIONS_TASK)); + modelRunCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.UPDATE_MODEL_INFORMATION_TASK)); + modelRunCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.SEND_FORECAST_EVENT_NOTIFICATIONS_TASK)); // Update forecast cache VIPSLogicTaskCollector cacheHandlerCollector = new VIPSLogicTaskCollector(-1); @@ -180,8 +181,10 @@ public class SchedulingBean { SchedulingPattern everyNightPattern = new SchedulingPattern("0 6 * * *"); deleteAllExpiredUserUuidsCollector.getTasks().add(everyNightPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.DELETE_ALL_EXPIRED_UUIDS_TASK)); + + List<TaskCollector> definedTasks = new ArrayList<>(); - definedTasks.add(testCollector); + definedTasks.add(modelRunCollector); definedTasks.add(cacheHandlerCollector); definedTasks.add(summariesCollector); definedTasks.add(deleteAllExpiredUserUuidsCollector); diff --git a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java index f8cd30b4093b40eed53004800a4abd5e3754c828..856f3463ee85bc290a78eba0c98121ee31360211 100644 --- a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java +++ b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java @@ -295,6 +295,17 @@ public class VipsLogicUser implements Serializable { return false; } + @JsonIgnore + @Transient + public boolean isAppleFruitMothAdministrator(){ + for (VipsLogicRole role : this.getVipsLogicRoles()) { + if (role.getVipsLogicRoleId().equals(VipsLogicRole.APPLE_FRUIT_MOTH_ADMINISTRATOR)) { + return true; + } + } + return false; + } + @JsonIgnore @Transient public boolean isMessageAuthor(){ diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java index bab4f38b0cd9a0629560955c83b8d66a12c7dde8..5e9295f241dd5dcb0ed292fd60b45d3ec8193572 100644 --- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java +++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java @@ -83,6 +83,7 @@ public class AppleFruitMothController extends HttpServlet { } request.setAttribute("currentSeason", currentSeason); request.setAttribute("lastSeason", lastSeason); + request.setAttribute("messageKey", request.getParameter("messageKey")); request.getRequestDispatcher("/appleFruitMothStationForm.ftl").forward(request, response); } catch(NullPointerException | NumberFormatException ex) 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 f844c3b7b22396677c1e257ba99962a2928dde69..3115b3c8478e59a213c31f13d180f15ccc00783c 100644 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties @@ -304,10 +304,10 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti messageFormat=Message format Mail=Email Sms=SMS -forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} -forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to moderate risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} -forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection -forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk +forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4} +forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4} +forecastNotificationMessageHeadingTpl_1=High risk of infection +forecastNotificationMessageHeadingTpl_2=Moderate infection risk task_SendForecastEventNotificationsTask_name=Send forecast event notifications task_SendForecastEventNotificationsTask_description=Checks to see if there has been changes in forecasts to YELLOW or RED status. If so, finds subscribers to such events and sends notifications preferredLocale=Preferred locale @@ -384,3 +384,4 @@ newObservationSitePoint=New observation site point observationSitePointName=Observation site point name appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost. observationSiteStored=Observation site was successfully updated +appleFruitMoth=Apple fruit moth 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 882a0bd1ee1bce0dafb941cc12da8fe460096708..5c454e49b94b48c0426a9691574ac3ab88d5a0ab 100644 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties @@ -304,8 +304,8 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti messageFormat=Message format Mail=Email Sms=SMS -forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} -forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to moderate risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} +forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4} +forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4} forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk task_SendForecastEventNotificationsTask_name=Send forecast event notifications @@ -384,3 +384,4 @@ newObservationSitePoint=New observation site point observationSitePointName=Observation site point name appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost. observationSiteStored=Observation site was successfully updated +appleFruitMoth=Apple fruit moth 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 3aa5fef7c5c701c9e63dd421156409c673d19967..572e90ac1443ebb11af86126c091e45843341c6d 100644 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties @@ -303,8 +303,8 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti messageFormat=Message format Mail=Email Sms=SMS -forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} -forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} +forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4} +forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4} forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk task_SendForecastEventNotificationsTask_name=Send forecast event notifications @@ -383,3 +383,4 @@ newObservationSitePoint=New observation site point observationSitePointName=Observation site point name appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost. observationSiteStored=Observation site was successfully updated +appleFruitMoth=Apple fruit moth 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 8d12d3c83954c721aecbebc37809fc725cce041a..5bf024b799585b71c5ff53682646dfd573bdedf7 100644 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties @@ -304,10 +304,10 @@ notificationSubscriptionDescription=Du kan abonnere p\u00e5 ulike typer meldinge messageFormat=Meldingsformat Mail=E-post Sms=SMS -forecastNotificationMessageBodyTpl_1=Varselstatus er endret til h\u00f8y infeksjonsrisiko for {0} i {1} ved {2}, tidspunkt {3}. Modell: {4}. For \u00e5 lese detaljer, vennligst bes\u00f8k:{5} -forecastNotificationMessageBodyTpl_2=Varselstatus er endret til moderat infeksjonsrisiko for {0} i {1} ved {2}, tidspunkt {3}. Modell: {4}. For \u00e5 lese detaljer, vennligst bes\u00f8k:{5} -forecastNotificationMessageHeadingTpl_1=Melding om h\u00f8y infeksjonsrisiko -forecastNotificationMessageHeadingTpl_2=Melding om moderat infeksjonsrisiko +forecastNotificationMessageBodyTpl_1=Gjelder {0} i {1} ved {2}, {3}. Les mer:{4} +forecastNotificationMessageBodyTpl_2=Gjelder {0} i {1} ved {2}, {3}. Les mer:{4} +forecastNotificationMessageHeadingTpl_1=H\u00f8y infeksjonsrisiko +forecastNotificationMessageHeadingTpl_2=Moderat infeksjonsrisiko task_SendForecastEventNotificationsTask_name=Send meldinger om endringer i varsel task_SendForecastEventNotificationsTask_description=Ser om varsler har endret set til GUL eller R\u00d8D status. I tilfelle s\u00f8kes abonnenter opp og meldinger blir distribuert. preferredLocale=Foretrukket spr\u00e5k @@ -384,3 +384,4 @@ newObservationSitePoint=Nytt observasjonsstedspunkt observationSitePointName=Navn p\u00e5 observasjonsstedspunkt appleFruitMothChangeSeasonConfirm=Er du sikker p\u00e5 at du vil endre sesong? Alle ulagrede data for innev\u00e6rende sesong vil g\u00e5 tapt. observationSiteStored=Rogneb\u00e6rm\u00f8llstasjonen ble oppdatert +appleFruitMoth=Rogneb\u00e6rm\u00f8ll 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 7196da2cfd9e52f31f01ef577232fc95a53a6e9a..aa0df1cd539b77fd64589171222cf9aea95b6169 100644 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties @@ -304,8 +304,8 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti messageFormat=Message format Mail=Email Sms=SMS -forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} -forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to moderate risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5} +forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4} +forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4} forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk task_SendForecastEventNotificationsTask_name=Send forecast event notifications @@ -384,3 +384,4 @@ newObservationSitePoint=New observation site point observationSitePointName=Observation site point name appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost. observationSiteStored=Observation site was successfully updated +appleFruitMoth=Apple fruit moth diff --git a/src/main/webapp/templates/appleFruitMothStationForm.ftl b/src/main/webapp/templates/appleFruitMothStationForm.ftl index 703a236ac854b7d91d8fc1b5ead0b5a20119ebab..0bbfcd865de74a7efeaaa0b2ee6023799b3c64ec 100644 --- a/src/main/webapp/templates/appleFruitMothStationForm.ftl +++ b/src/main/webapp/templates/appleFruitMothStationForm.ftl @@ -41,6 +41,9 @@ <div class="row"> <div class="col-md-6"> <#assign formId = "observationSiteForm"> + <#if messageKey?has_content> + <div class="alert alert-success">${i18nBundle(messageKey)}</div> + </#if> <form id="${formId}" role="form" action="/applefruitmoth?action=observationSiteSubmit" method="POST"> <input type="hidden" name="observationSiteId" value="${observationSite.observationSiteId}"/> <div class="form-group"> diff --git a/src/main/webapp/templates/appleFruitMothStationList.ftl b/src/main/webapp/templates/appleFruitMothStationList.ftl index ed29b731c14ebbeeea6103ab06b8e6c298b0cae1..574e345974dce9b5d1332a41ab115ecb2d7c7445 100644 --- a/src/main/webapp/templates/appleFruitMothStationList.ftl +++ b/src/main/webapp/templates/appleFruitMothStationList.ftl @@ -34,6 +34,7 @@ </script> </#macro> <#macro page_contents> +<h1>${i18nBundle.appleFruitMoth}</h1> <div class="singleBlockContainer"> <div class="row"> <div class="col-md-6"> diff --git a/src/main/webapp/templates/master.ftl b/src/main/webapp/templates/master.ftl index c55a8bf16aa64ed3ab641499ed611e13484b2c1e..030bbc2d57d58e2d10a285a9f96855e842c95d6b 100644 --- a/src/main/webapp/templates/master.ftl +++ b/src/main/webapp/templates/master.ftl @@ -62,6 +62,9 @@ <li><a href="/observation">${i18nBundle.observations}</a></li> </#if> <li><a href="/forecastConfiguration">${i18nBundle.forecasts}</a></li> + <#if user.isOrganizationAdmin() || user.isSuperUser() || user.isAppleFruitMothAdministrator()> + <li><a href="/applefruitmoth">${i18nBundle.appleFruitMoth}</a></li> + </#if> </ul> </li> <li><a href="/userguide/VIPSLogic_user_guide.html">${i18nBundle.help}</a></li>