From 4c69b4723e012c3c4afcd3546262dd45cf95d189 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 8 Mar 2020 18:44:18 +0100 Subject: [PATCH] #455 - add select for auto backup time --- .../budgetmaster/settings/AutoBackupTime.java | 45 ++++++++++++++++++- .../budgetmaster/settings/Settings.java | 2 +- .../settings/SettingsController.java | 9 ++++ src/main/resources/languages/_de.properties | 1 + src/main/resources/languages/_en.properties | 1 + .../resources/templates/settings/settings.ftl | 10 ++++- 6 files changed, 65 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/AutoBackupTime.java b/src/main/java/de/deadlocker8/budgetmaster/settings/AutoBackupTime.java index 1234859af..d6cf6e432 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/AutoBackupTime.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/AutoBackupTime.java @@ -1,6 +1,49 @@ package de.deadlocker8.budgetmaster.settings; +import de.thecodelabs.utils.util.Localization; + public enum AutoBackupTime { - DEFAULT + TIME_00("00:00"), + TIME_01("01:00"), + TIME_02("02:00"), + TIME_03("03:00"), + TIME_04("04:00"), + TIME_05("05:00"), + TIME_06("06:00"), + TIME_07("07:00"), + TIME_08("08:00"), + TIME_09("09:00"), + TIME_10("10:00"), + TIME_11("11:00"), + TIME_12("12:00"), + TIME_13("13:00"), + TIME_14("14:00"), + TIME_15("15:00"), + TIME_16("16:00"), + TIME_17("17:00"), + TIME_18("18:00"), + TIME_19("19:00"), + TIME_20("20:00"), + TIME_21("21:00"), + TIME_22("22:00"), + TIME_23("23:00"), + TIME_24("24:00"); + + private String time; + + AutoBackupTime(String time) + { + this.time = time; + } + + public String getTime() + { + return time; + } + + public String getLocalized() + { + return Localization.getString("settings.backup.auto.time.short", getTime()); + } } diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java index 1c1900278..b7f8634eb 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java @@ -46,7 +46,7 @@ public class Settings defaultSettings.setSearchItemsPerPage(10); defaultSettings.setAutoBackupActivated(false); defaultSettings.setAutoBackupDays(1); - defaultSettings.setAutoBackupTime(AutoBackupTime.DEFAULT); + defaultSettings.setAutoBackupTime(AutoBackupTime.TIME_00); defaultSettings.setAutoBackupFilesToKeep(3); return defaultSettings; diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index 3baf34fc4..8271cc9f6 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -76,6 +76,8 @@ public class SettingsController extends BaseController { model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); + request.removeAttribute("database", WebRequest.SCOPE_SESSION); return "settings/settings"; } @@ -126,6 +128,7 @@ public class SettingsController extends BaseController model.addAttribute("error", bindingResult); model.addAttribute("settings", settings); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } @@ -206,6 +209,7 @@ public class SettingsController extends BaseController model.addAttribute("verificationCode", verificationCode); model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } @@ -226,6 +230,7 @@ public class SettingsController extends BaseController model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } @@ -235,6 +240,7 @@ public class SettingsController extends BaseController model.addAttribute("importDatabase", true); model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } @@ -262,6 +268,7 @@ public class SettingsController extends BaseController model.addAttribute("errorImportDatabase", e.getMessage()); model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } } @@ -282,6 +289,7 @@ public class SettingsController extends BaseController request.removeAttribute("database", RequestAttributes.SCOPE_SESSION); model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } @@ -299,6 +307,7 @@ public class SettingsController extends BaseController model.addAttribute("updateString", Localization.getString("info.text.update", Build.getInstance().getVersionName(), budgetMasterUpdateService.getAvailableVersionString())); model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("searchResultsPerPageOptions", SEARCH_RESULTS_PER_PAGE_OPTIONS); + model.addAttribute("autoBackupTimes", AutoBackupTime.values()); return "settings/settings"; } diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties index 6a2933587..88a7358c8 100644 --- a/src/main/resources/languages/_de.properties +++ b/src/main/resources/languages/_de.properties @@ -179,6 +179,7 @@ settings.backup.auto.deactivated=Aus settings.backup.auto.activated=An settings.backup.auto.days=Intervall in Tagen settings.backup.auto.time=Uhrzeit +settings.backup.auto.time.short={0} Uhr settings.backup.auto.files.to.keep=Anzahl aufzubewahrender Backups (0 für unbegrenzt) settings.database.import=Importieren diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties index a0c99e38e..2565df424 100644 --- a/src/main/resources/languages/_en.properties +++ b/src/main/resources/languages/_en.properties @@ -179,6 +179,7 @@ settings.backup.auto.deactivated=Off settings.backup.auto.activated=On settings.backup.auto.days=Interval in days settings.backup.auto.time=Time of day +settings.backup.auto.time.short={0} o'clock settings.backup.auto.files.to.keep=Number of backups to keep (0 for unlimited) settings.database.import=Import diff --git a/src/main/resources/templates/settings/settings.ftl b/src/main/resources/templates/settings/settings.ftl index 66ac1114a..edcdc44bb 100644 --- a/src/main/resources/templates/settings/settings.ftl +++ b/src/main/resources/templates/settings/settings.ftl @@ -120,7 +120,15 @@ </script> <div class="input-field col s12 m12 l8 offset-l2"> - <input id="settings-backup-auto-time" type="text" name="autoBackupTime" <@validation.validation "autoBackupTime"/> value="<#if settings.getAutoBackupActivated()??>${settings.getAutoBackupTime().name()}</#if>"> + <select id="settings-backup-auto-time" name="autoBackupTime" <@validation.validation "autoBackupTime"/>> + <#list autoBackupTimes as time> + <#if settings.getAutoBackupTime() == time> + <option selected value="${time}">${time.getLocalized()}</option> + <#else> + <option value="${time}">${time.getLocalized()}</option> + </#if> + </#list> + </select> <label for="settings-backup-auto-time">${locale.getString("settings.backup.auto.time")}</label> </div> -- GitLab