diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/AutoBackupTime.java b/src/main/java/de/deadlocker8/budgetmaster/settings/AutoBackupTime.java index 1234859af72771cb3546e996703a42f5fbab8364..d6cf6e43266bbcc845dea1c5c57e8fc466439fda 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 1c1900278c8f6f7bee296baae966679228bb9571..b7f8634ebced5d6c252cd374f39916ab548ac648 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 3baf34fc43b6dbbd9102c4d7ab864272d1feafa9..8271cc9f6e5b7767d76e8ee07faa80626a4bb9d3 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 6a2933587dd758465ba14539f313e11f251abeab..88a7358c86b1de5ff706e3478a4c90a18cfac21d 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 a0c99e38e0bd5d2da4d22768472c03deec5fa300..2565df4242a83bcfa967ab7308a366ec4749222e 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 66ac1114a5e656385490a608384fc9576eeb8352..edcdc44bbfaebacc553caa39363523e6bdeb0070 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>