From 7dc349afe3614786882118db0a18d6eb63b98fc2 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Fri, 29 Dec 2023 11:17:04 +0100 Subject: [PATCH] #760 - added new switch to transaction settings container --- .../containers/TransactionsSettingsContainer.java | 10 ++++++++-- .../src/main/resources/languages/base_de.properties | 4 ++++ .../src/main/resources/languages/base_en.properties | 4 ++++ .../settings/containers/settingsTransactions.ftl | 5 +++++ .../containers/TransactionSettingsContainerTest.java | 12 +++++++----- 5 files changed, 28 insertions(+), 7 deletions(-) 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 7ce5b0cdc..e30d24383 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 4cce41ce6..3566699b8 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 5698d6741..f99a50312 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 c5c9a173c..1707d6c72 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 48a4e73d4..5f9c7fc09 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); } } -- GitLab