diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/settings/containers/TransactionsSettingsContainer.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/settings/containers/TransactionsSettingsContainer.java index 7ce5b0cdcb1dcfe7ce769b9a7458a3dd109e962c..e30d24383facf5631e85a94fb3edeeb9992747c0 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/settings/containers/TransactionsSettingsContainer.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/settings/containers/TransactionsSettingsContainer.java @@ -11,12 +11,13 @@ import java.util.List; public final class TransactionsSettingsContainer implements SettingsContainer { private Boolean restActivated; - + private Boolean orderTransactionNameSuggestionsAlphabetically; private List<TransactionNameKeyword> keywords; - public TransactionsSettingsContainer(Boolean restActivated, List<TransactionNameKeyword> keywords) + public TransactionsSettingsContainer(Boolean restActivated, Boolean orderTransactionNameSuggestionsAlphabetically, List<TransactionNameKeyword> keywords) { this.restActivated = restActivated; + this.orderTransactionNameSuggestionsAlphabetically = orderTransactionNameSuggestionsAlphabetically; this.keywords = keywords; } @@ -33,6 +34,10 @@ public final class TransactionsSettingsContainer implements SettingsContainer { restActivated = false; } + if(orderTransactionNameSuggestionsAlphabetically == null) + { + orderTransactionNameSuggestionsAlphabetically = false; + } } @Override @@ -59,6 +64,7 @@ public final class TransactionsSettingsContainer implements SettingsContainer final Settings settings = settingsService.getSettings(); settings.setRestActivated(restActivated); + settings.setOrderTransactionNameSuggestionsAlphabetically(orderTransactionNameSuggestionsAlphabetically); return settings; } diff --git a/BudgetMasterServer/src/main/resources/languages/base_de.properties b/BudgetMasterServer/src/main/resources/languages/base_de.properties index 4cce41ce62ecf7ae631eba0197a0d2d82d1b5b5f..3566699b8d65f7cec3d2848a9771f269b7580c34 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_de.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_de.properties @@ -269,6 +269,10 @@ settings.rest=Saldos anzeigen settings.rest.deactivated=Aus settings.rest.activated=An settings.rest.description=Zeigt den Saldo des letzten Monats und des aktuellen Monatsendes in der Buchungsübersicht an +settings.transactionNameSuggestionOrder=Sortierung der Namensvorschläge +settings.transactionNameSuggestionOrder.deactivated=nach Nutzungshäufigkeit +settings.transactionNameSuggestionOrder.activated=alphabetisch +settings.transactionNameSuggestionOrder.description=Legt die Sortierung von Namensvorschlägen für Buchungen fest settings.darkTheme=Design settings.darkTheme.deactivated=Helles Design settings.darkTheme.activated=Dunkles Design diff --git a/BudgetMasterServer/src/main/resources/languages/base_en.properties b/BudgetMasterServer/src/main/resources/languages/base_en.properties index 5698d67413a5fca23e815b9d79afdeed96ea129e..f99a50312b8d27d15a60c3ccf850223a13618ca2 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_en.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_en.properties @@ -269,6 +269,10 @@ settings.rest=Show balances settings.rest.deactivated=Off settings.rest.activated=On settings.rest.description=Show the balance of the last month and of the current month end in the transaction overview +settings.transactionNameSuggestionOrder=Order name suggestions +settings.transactionNameSuggestionOrder.deactivated=by frequency of use +settings.transactionNameSuggestionOrder.activated=alphabetically +settings.transactionNameSuggestionOrder.description=Defines how the transaction name suggestions are ordered. settings.darkTheme=Theme settings.darkTheme.deactivated=Light Theme settings.darkTheme.activated=Dark Theme diff --git a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl index c5c9a173c5f32f12b8a683d6f340efbf3ef6f336..1707d6c72740513b0f430dcc8b4885bd54a91710 100644 --- a/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl +++ b/BudgetMasterServer/src/main/resources/templates/settings/containers/settingsTransactions.ftl @@ -13,16 +13,21 @@ <div class="table-container"> <div class="table-cell"> <div class="switch-cell-margin">${locale.getString("settings.rest")}</div> + <div class="switch-cell-margin">${locale.getString("settings.transactionNameSuggestionOrder")}</div> </div> <div class="table-cell table-cell-spacer"></div> <div class="table-cell"> <@settingsMacros.switch "rest" "restActivated" settings.isRestActivated()/> + <@settingsMacros.switch "transactionNameSuggestionOrder" "orderTransactionNameSuggestionsAlphabetically" settings.getOrderTransactionNameSuggestionsAlphabetically()?? && settings.getOrderTransactionNameSuggestionsAlphabetically()/> </div> <div class="table-cell table-cell-spacer"></div> <div class="table-cell"> <div class="switch-cell-margin"> <a class="btn btn-flat tooltipped text-default" data-position="bottom" data-tooltip="${locale.getString("settings.rest.description")}"><i class="material-icons">help_outline</i></a> </div> + <div class="switch-cell-margin"> + <a class="btn btn-flat tooltipped text-default" data-position="bottom" data-tooltip="${locale.getString("settings.transactionNameSuggestionOrder.description")}"><i class="material-icons">help_outline</i></a> + </div> </div> </div> </div> diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/TransactionSettingsContainerTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/TransactionSettingsContainerTest.java index 48a4e73d4770532b0daad0e7f43a8ed0e97a3de8..5f9c7fc097f07c152f3b1e6c0907aa3922ecfa1a 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/TransactionSettingsContainerTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/settings/containers/TransactionSettingsContainerTest.java @@ -27,7 +27,7 @@ class TransactionSettingsContainerTest @Test void test_validate_valid() { - final TransactionsSettingsContainer container = new TransactionsSettingsContainer(true, List.of()); + final TransactionsSettingsContainer container = new TransactionsSettingsContainer(true, true, List.of()); final Errors errors = new BeanPropertyBindingResult(container, "container"); container.validate(errors); @@ -39,12 +39,13 @@ class TransactionSettingsContainerTest @Test void test_fixBooleans() { - final TransactionsSettingsContainer container = new TransactionsSettingsContainer(null, List.of()); + final TransactionsSettingsContainer container = new TransactionsSettingsContainer(null, null, List.of()); container.fixBooleans(); assertThat(container) - .hasFieldOrPropertyWithValue("restActivated", false); + .hasFieldOrPropertyWithValue("restActivated", false) + .hasFieldOrPropertyWithValue("orderTransactionNameSuggestionsAlphabetically", false); } @Test @@ -54,10 +55,11 @@ class TransactionSettingsContainerTest Mockito.when(settingsService.getSettings()).thenReturn(defaultSettings); - final TransactionsSettingsContainer container = new TransactionsSettingsContainer(false, List.of()); + final TransactionsSettingsContainer container = new TransactionsSettingsContainer(false, false, List.of()); final Settings updatedSettings = container.updateSettings(settingsService); assertThat(updatedSettings) - .hasFieldOrPropertyWithValue("restActivated", false); + .hasFieldOrPropertyWithValue("restActivated", false) + .hasFieldOrPropertyWithValue("orderTransactionNameSuggestionsAlphabetically", false); } }