diff --git a/financer-web-client/src/main/java/de/financer/config/FinancerConfig.java b/financer-web-client/src/main/java/de/financer/config/FinancerConfig.java index 07ebb0d..276b2ec 100644 --- a/financer-web-client/src/main/java/de/financer/config/FinancerConfig.java +++ b/financer-web-client/src/main/java/de/financer/config/FinancerConfig.java @@ -5,6 +5,8 @@ import org.slf4j.LoggerFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; +import java.util.Currency; + @Configuration @ConfigurationProperties(prefix = "financer") public class FinancerConfig { @@ -14,6 +16,8 @@ public class FinancerConfig { private String dateFormat; private String version; private Integer monthPeriodStartDay; + private String currencyCode; + private Currency currency; public String getServerUrl() { return serverUrl; @@ -66,4 +70,14 @@ public class FinancerConfig { this.monthPeriodStartDay = monthPeriodStartDay; } + + public void setCurrencyCode(String currencyCode) { + this.currencyCode = currencyCode; + + this.currency = Currency.getInstance(this.currencyCode); + } + + public Currency getCurrency() { + return currency; + } } diff --git a/financer-web-client/src/main/java/de/financer/controller/AccountController.java b/financer-web-client/src/main/java/de/financer/controller/AccountController.java index e70e29d..df717bd 100644 --- a/financer-web-client/src/main/java/de/financer/controller/AccountController.java +++ b/financer-web-client/src/main/java/de/financer/controller/AccountController.java @@ -49,6 +49,7 @@ public class AccountController { model.addAttribute("periodEnd", expensePeriod.getEnd()); model.addAttribute("showClosed", showClosedBoolean); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "account/accountOverview"; } @@ -62,6 +63,7 @@ public class AccountController { model.addAttribute("accountTypes", AccountType.valueList()); model.addAttribute("form", new NewAccountForm()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "account/newAccount"; } @@ -86,6 +88,7 @@ public class AccountController { model.addAttribute("accountTypes", AccountType.valueList()); model.addAttribute("errorMessage", responseReason.name()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "account/newAccount"; } @@ -109,6 +112,7 @@ public class AccountController { model.addAttribute("transactions", transactions); model.addAttribute("isClosed", AccountStatus.CLOSED.equals(account.getStatus())); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "account/accountDetails"; } @@ -139,6 +143,7 @@ public class AccountController { model.addAttribute("isClosed", AccountStatus.CLOSED.equals(account.getStatus())); model.addAttribute("errorMessage", responseReason.name()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "account/accountDetails"; } @@ -172,6 +177,7 @@ public class AccountController { model.addAttribute("isClosed", AccountStatus.CLOSED.equals(account.getStatus())); model.addAttribute("errorMessage", responseReason.name()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "account/accountDetails"; } diff --git a/financer-web-client/src/main/java/de/financer/controller/AccountGroupController.java b/financer-web-client/src/main/java/de/financer/controller/AccountGroupController.java index 047d330..dc6a8d6 100644 --- a/financer-web-client/src/main/java/de/financer/controller/AccountGroupController.java +++ b/financer-web-client/src/main/java/de/financer/controller/AccountGroupController.java @@ -39,6 +39,7 @@ public class AccountGroupController { model.addAttribute("form", form); model.addAttribute("errorMessage", responseReason.name()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "accountGroup/newAccountGroup"; } diff --git a/financer-web-client/src/main/java/de/financer/controller/RecurringTransactionController.java b/financer-web-client/src/main/java/de/financer/controller/RecurringTransactionController.java index 9819489..28de982 100644 --- a/financer-web-client/src/main/java/de/financer/controller/RecurringTransactionController.java +++ b/financer-web-client/src/main/java/de/financer/controller/RecurringTransactionController.java @@ -38,6 +38,7 @@ public class RecurringTransactionController { model.addAttribute("holidayWeekendTypes", HolidayWeekendType.valueList()); model.addAttribute("form", form); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "recurringTransaction/newRecurringTransaction"; } @@ -70,6 +71,7 @@ public class RecurringTransactionController { model.addAttribute("form", form); model.addAttribute("errorMessage", responseReason.name()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "recurringTransaction/newRecurringTransaction"; } @@ -85,6 +87,7 @@ public class RecurringTransactionController { model.addAttribute("recurringTransactions", response.getBody()); model.addAttribute("subTitle", "dueToday"); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "recurringTransaction/recurringTransactionList"; } @@ -97,6 +100,7 @@ public class RecurringTransactionController { model.addAttribute("recurringTransactions", response.getBody()); model.addAttribute("subTitle", "active"); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "recurringTransaction/recurringTransactionList"; } @@ -109,6 +113,7 @@ public class RecurringTransactionController { model.addAttribute("recurringTransactions", response.getBody()); model.addAttribute("subTitle", "all"); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "recurringTransaction/recurringTransactionList"; } @@ -127,6 +132,7 @@ public class RecurringTransactionController { model.addAttribute("recurringTransactions", allResponse.getBody()); model.addAttribute("subTitle", "all"); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); if (!ResponseReason.OK.equals(responseReason)) { model.addAttribute("errorMessage", responseReason.name()); @@ -150,6 +156,7 @@ public class RecurringTransactionController { model.addAttribute("errorMessage", responseReason.name()); model.addAttribute("subTitle", sub); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); Iterable recurringTransactions; @@ -206,6 +213,7 @@ public class RecurringTransactionController { model.addAttribute("errorMessage", responseReason.name()); model.addAttribute("subTitle", form.getSubTitle()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); Iterable recurringTransactions; diff --git a/financer-web-client/src/main/java/de/financer/controller/TransactionController.java b/financer-web-client/src/main/java/de/financer/controller/TransactionController.java index da0eb95..3463fb9 100644 --- a/financer-web-client/src/main/java/de/financer/controller/TransactionController.java +++ b/financer-web-client/src/main/java/de/financer/controller/TransactionController.java @@ -37,6 +37,7 @@ public class TransactionController { model.addAttribute("accounts", ControllerUtils.filterAndSortAccounts(response.getBody())); model.addAttribute("form", new NewTransactionForm()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "transaction/newTransaction"; } @@ -61,6 +62,7 @@ public class TransactionController { model.addAttribute("form", form); model.addAttribute("errorMessage", responseReason.name()); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); return "transaction/newTransaction"; } @@ -91,6 +93,7 @@ public class TransactionController { model.addAttribute("transactions", transactions); model.addAttribute("isClosed", AccountStatus.CLOSED.equals(account.getStatus())); ControllerUtils.addVersionAttribute(model, this.financerConfig); + ControllerUtils.addCurrencySymbol(model, this.financerConfig); if (!ResponseReason.OK.equals(responseReason)) { model.addAttribute("errorMessage", responseReason.name()); diff --git a/financer-web-client/src/main/java/de/financer/util/ControllerUtils.java b/financer-web-client/src/main/java/de/financer/util/ControllerUtils.java index 099dc57..6fbd38f 100644 --- a/financer-web-client/src/main/java/de/financer/util/ControllerUtils.java +++ b/financer-web-client/src/main/java/de/financer/util/ControllerUtils.java @@ -64,4 +64,9 @@ public class ControllerUtils { public static void addVersionAttribute(Model model, FinancerConfig financerConfig) { model.addAttribute("financerVersion", financerConfig.getVersion()); } + + public static void addCurrencySymbol(Model model, FinancerConfig financerConfig) { + // Add a space right in front of the currency symbol, so it's not glued to the amount + model.addAttribute("currencySymbol", " " + financerConfig.getCurrency().getSymbol()); + } } diff --git a/financer-web-client/src/main/resources/config/application.properties b/financer-web-client/src/main/resources/config/application.properties index b9c7014..1c17ec9 100644 --- a/financer-web-client/src/main/resources/config/application.properties +++ b/financer-web-client/src/main/resources/config/application.properties @@ -30,4 +30,9 @@ financer.serverUrl=http://localhost:8080/financer-server/ spring.messages.basename=i18n/message # The day of month indicating the start of an expense period. Valid values range from 1-28 -financer.monthPeriodStartDay=15 \ No newline at end of file +financer.monthPeriodStartDay=15 + +# The currency code to use for displaying money values. Note that the currency is only used for +# displaying. +# Possible values are ISO-4271 currency codes. +financer.currencyCode=EUR \ No newline at end of file diff --git a/financer-web-client/src/main/resources/i18n/message.properties b/financer-web-client/src/main/resources/i18n/message.properties index ef3b9ca..b25b0de 100644 --- a/financer-web-client/src/main/resources/i18n/message.properties +++ b/financer-web-client/src/main/resources/i18n/message.properties @@ -11,7 +11,7 @@ financer.account-overview.status=Status\: financer.account-overview.status.recurring-transaction-due-today=Recurring transactions due today\: financer.account-overview.status.recurring-transaction-active=Active recurring transactions\: financer.account-overview.status.current-assets=Current assets\: -financer.account-overview.status.current-expenses=Expenses of the current period\: +financer.account-overview.status.current-expenses=Expenses in the current period\: financer.account-overview.table-header.id=ID financer.account-overview.table-header.key=Account financer.account-overview.table-header.group=Group @@ -38,12 +38,12 @@ financer.transaction-new.label.amount=Amount\: financer.transaction-new.label.date=Date\: financer.transaction-new.label.description=Description\: financer.transaction-new.submit=Create transaction -financer.transaction-new.account-type.BANK={0}|Bank|{1} -financer.transaction-new.account-type.CASH={0}|Cash|{1} -financer.transaction-new.account-type.INCOME={0}|Income|{1} -financer.transaction-new.account-type.LIABILITY={0}|Liability|{1} -financer.transaction-new.account-type.EXPENSE={0}|Expense|{1} -financer.transaction-new.account-type.START={0}|Start|{1} +financer.transaction-new.account-type.BANK={0}|Bank|{1}{2} +financer.transaction-new.account-type.CASH={0}|Cash|{1}{2} +financer.transaction-new.account-type.INCOME={0}|Income|{1}{2} +financer.transaction-new.account-type.LIABILITY={0}|Liability|{1}{2} +financer.transaction-new.account-type.EXPENSE={0}|Expense|{1}{2} +financer.transaction-new.account-type.START={0}|Start|{1}{2} financer.recurring-transaction-new.title=financer\: create new recurring transaction financer.recurring-transaction-new.label.from-account=From account\: @@ -56,12 +56,12 @@ financer.recurring-transaction-new.label.holiday-weekend-type=Holiday/weekend ru financer.recurring-transaction-new.label.description=Description\: financer.recurring-transaction-new.label.remind=Remind if due\: financer.recurring-transaction-new.submit=Create recurring transaction -financer.recurring-transaction-new.account-type.BANK={0}|Bank|{1} -financer.recurring-transaction-new.account-type.CASH={0}|Cash|{1} -financer.recurring-transaction-new.account-type.INCOME={0}|Income|{1} -financer.recurring-transaction-new.account-type.LIABILITY={0}|Liability|{1} -financer.recurring-transaction-new.account-type.EXPENSE={0}|Expense|{1} -financer.recurring-transaction-new.account-type.START={0}|Start|{1} +financer.recurring-transaction-new.account-type.BANK={0}|Bank|{1}{2} +financer.recurring-transaction-new.account-type.CASH={0}|Cash|{1}{2} +financer.recurring-transaction-new.account-type.INCOME={0}|Income|{1}{2} +financer.recurring-transaction-new.account-type.LIABILITY={0}|Liability|{1}{2} +financer.recurring-transaction-new.account-type.EXPENSE={0}|Expense|{1}{2} +financer.recurring-transaction-new.account-type.START={0}|Start|{1}{2} financer.recurring-transaction-list.title.dueToday=financer\: recurring transactions due today financer.recurring-transaction-list.title.active=financer\: active recurring transactions diff --git a/financer-web-client/src/main/resources/i18n/message_de_DE.properties b/financer-web-client/src/main/resources/i18n/message_de_DE.properties index 4555889..db0c61f 100644 --- a/financer-web-client/src/main/resources/i18n/message_de_DE.properties +++ b/financer-web-client/src/main/resources/i18n/message_de_DE.properties @@ -38,12 +38,12 @@ financer.transaction-new.label.amount=Betrag\: financer.transaction-new.label.date=Datum\: financer.transaction-new.label.description=Beschreibung\: financer.transaction-new.submit=Buchung erstellen -financer.transaction-new.account-type.BANK={0}|Bank|{1} -financer.transaction-new.account-type.CASH={0}|Bar|{1} -financer.transaction-new.account-type.INCOME={0}|Einkommen|{1} -financer.transaction-new.account-type.LIABILITY={0}|Verbindlichkeit|{1} -financer.transaction-new.account-type.EXPENSE={0}|Aufwand|{1} -financer.transaction-new.account-type.START={0}|Anfangsbestand|{1} +financer.transaction-new.account-type.BANK={0}|Bank|{1}{2} +financer.transaction-new.account-type.CASH={0}|Bar|{1}{2} +financer.transaction-new.account-type.INCOME={0}|Einkommen|{1}{2} +financer.transaction-new.account-type.LIABILITY={0}|Verbindlichkeit|{1}{2} +financer.transaction-new.account-type.EXPENSE={0}|Aufwand|{1}{2} +financer.transaction-new.account-type.START={0}|Anfangsbestand|{1}{2} financer.recurring-transaction-new.title=financer\: Neue wiederkehrende Buchung erstellen financer.recurring-transaction-new.label.from-account=Von Konto\: @@ -56,12 +56,12 @@ financer.recurring-transaction-new.label.holiday-weekend-type=Feiertag-/Wochenen financer.recurring-transaction-new.label.description=Beschreibung\: financer.recurring-transaction-new.label.remind=Erinnern wenn f\u00E4llig\: financer.recurring-transaction-new.submit=Wiederkehrende Buchung erstellen -financer.recurring-transaction-new.account-type.BANK={0}|Bank|{1} -financer.recurring-transaction-new.account-type.CASH={0}|Bar|{1} -financer.recurring-transaction-new.account-type.INCOME={0}|Einkommen|{1} -financer.recurring-transaction-new.account-type.LIABILITY={0}|Verbindlichkeit|{1} -financer.recurring-transaction-new.account-type.EXPENSE={0}|Aufwand|{1} -financer.recurring-transaction-new.account-type.START={0}|Anfangsbestand|{1} +financer.recurring-transaction-new.account-type.BANK={0}|Bank|{1}{2} +financer.recurring-transaction-new.account-type.CASH={0}|Bar|{1}{2} +financer.recurring-transaction-new.account-type.INCOME={0}|Einkommen|{1}{2} +financer.recurring-transaction-new.account-type.LIABILITY={0}|Verbindlichkeit|{1}{2} +financer.recurring-transaction-new.account-type.EXPENSE={0}|Aufwand|{1}{2} +financer.recurring-transaction-new.account-type.START={0}|Anfangsbestand|{1}{2} financer.recurring-transaction-list.title.dueToday=financer\: wiederkehrende Buchungen heute f\u00E4llig financer.recurring-transaction-list.title.active=financer\: aktive wiederkehrende Buchungen diff --git a/financer-web-client/src/main/resources/templates/account/accountDetails.html b/financer-web-client/src/main/resources/templates/account/accountDetails.html index b8b42d4..3b2e711 100644 --- a/financer-web-client/src/main/resources/templates/account/accountDetails.html +++ b/financer-web-client/src/main/resources/templates/account/accountDetails.html @@ -16,7 +16,7 @@
- +
@@ -48,7 +48,7 @@ - + diff --git a/financer-web-client/src/main/resources/templates/account/accountOverview.html b/financer-web-client/src/main/resources/templates/account/accountOverview.html index 20baabd..19dac24 100644 --- a/financer-web-client/src/main/resources/templates/account/accountOverview.html +++ b/financer-web-client/src/main/resources/templates/account/accountOverview.html @@ -12,11 +12,11 @@
- +
- +
@@ -61,7 +61,7 @@ - + diff --git a/financer-web-client/src/main/resources/templates/recurringTransaction/newRecurringTransaction.html b/financer-web-client/src/main/resources/templates/recurringTransaction/newRecurringTransaction.html index cb4a739..6bbe850 100644 --- a/financer-web-client/src/main/resources/templates/recurringTransaction/newRecurringTransaction.html +++ b/financer-web-client/src/main/resources/templates/recurringTransaction/newRecurringTransaction.html @@ -15,12 +15,12 @@