From b7335846cc716058de299caa6f65d2d4fa10fec9 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 2 Dec 2018 11:01:45 +0100 Subject: [PATCH] Fixed #367 - ids must be raw numbers --- .../controller/CategoryController.java | 1 + .../budgetmaster/services/HelpersService.java | 15 ++++++++++++ .../resources/templates/accounts/accounts.ftl | 6 ++--- .../templates/accounts/newAccount.ftl | 2 +- .../templates/categories/categories.ftl | 6 ++--- .../templates/categories/newCategory.ftl | 2 +- src/main/resources/templates/import.ftl | 4 ++-- src/main/resources/templates/navbar.ftl | 4 ++-- src/main/resources/templates/settings.ftl | 2 +- .../templates/transactions/newTransaction.ftl | 24 +++++++++---------- .../templates/transactions/transactions.ftl | 6 ++--- 11 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java index a4bb5e5df..6554c8c8c 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/controller/CategoryController.java @@ -34,6 +34,7 @@ public class CategoryController extends BaseController @RequestMapping("/categories") public String categories(Model model) { + helpers.test(); model.addAttribute("categories", categoryRepository.findAllByOrderByNameAsc()); return "categories/categories"; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java index dcc66b880..74352c264 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java @@ -304,4 +304,19 @@ public class HelpersService { return budgetMasterUpdateService.getAvailableVersionString(); } + + public void test() + { + for(int i = 0; i < 1010; i++) + { + Transaction transaction = new Transaction(); + transaction.setAccount(getCurrentAccount()); + transaction.setDate(DateTime.now()); + transaction.setAmount(100); + transaction.setCategory(categoryRepository.findByType(CategoryType.NONE)); + transaction.setName("Eimer"); + + transactionService.getRepository().save(transaction); + } + } } \ No newline at end of file diff --git a/src/main/resources/templates/accounts/accounts.ftl b/src/main/resources/templates/accounts/accounts.ftl index 79930f1e2..ff63275ec 100644 --- a/src/main/resources/templates/accounts/accounts.ftl +++ b/src/main/resources/templates/accounts/accounts.ftl @@ -24,8 +24,8 @@ <tr> <td>${account.getName()}</td> <td> - <a href="/accounts/${account.getID()}/edit" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a> - <a href="/accounts/${account.getID()}/requestDelete" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a> + <a href="/accounts/${account.getID()?c}/edit" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a> + <a href="/accounts/${account.getID()?c}/requestDelete" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a> </td> </tr> </#if> @@ -47,7 +47,7 @@ </div> <div class="modal-footer background-color"> <a href="/accounts" class="modal-action modal-close waves-effect waves-light red btn-flat white-text">${locale.getString("cancel")}</a> - <a href="/accounts/${currentAccount.getID()}/delete" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("info.button.account.delete")}</a> + <a href="/accounts/${currentAccount.getID()?c}/delete" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("info.button.account.delete")}</a> </div> </div> </#if> diff --git a/src/main/resources/templates/accounts/newAccount.ftl b/src/main/resources/templates/accounts/newAccount.ftl index ca1bec06e..a48f319f6 100644 --- a/src/main/resources/templates/accounts/newAccount.ftl +++ b/src/main/resources/templates/accounts/newAccount.ftl @@ -18,7 +18,7 @@ <#import "../validation.ftl" as validation> <form name="NewAccount" action="/accounts/newAccount" method="post"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> - <input type="hidden" name="ID" value="<#if account.getID()??>${account.getID()}</#if>"> + <input type="hidden" name="ID" value="<#if account.getID()??>${account.getID()?c}</#if>"> <input type="hidden" name="isSelected" value="<#if account.isSelected()??>${account.isSelected()?c}</#if>"> <#-- name --> diff --git a/src/main/resources/templates/categories/categories.ftl b/src/main/resources/templates/categories/categories.ftl index aa45a5958..93425193c 100644 --- a/src/main/resources/templates/categories/categories.ftl +++ b/src/main/resources/templates/categories/categories.ftl @@ -34,9 +34,9 @@ </td> <td>${categoryName}</td> <td> - <a href="/categories/${category.ID}/edit" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a> + <a href="/categories/${category.ID?c}/edit" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a> <#if (category.getType().name() == "CUSTOM")> - <a href="/categories/${category.ID}/requestDelete" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a> + <a href="/categories/${category.ID?c}/requestDelete" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a> </#if> </td> </tr> @@ -57,7 +57,7 @@ </div> <div class="modal-footer background-color"> <a href="/categories" class="modal-action modal-close waves-effect waves-light red btn-flat white-text">${locale.getString("cancel")}</a> - <a href="/categories/${currentCategory.ID}/delete" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("delete")}</a> + <a href="/categories/${currentCategory.ID?c}/delete" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("delete")}</a> </div> </div> </#if> diff --git a/src/main/resources/templates/categories/newCategory.ftl b/src/main/resources/templates/categories/newCategory.ftl index fcaea6e2b..d54c406aa 100644 --- a/src/main/resources/templates/categories/newCategory.ftl +++ b/src/main/resources/templates/categories/newCategory.ftl @@ -22,7 +22,7 @@ <#import "../validation.ftl" as validation> <form name="NewCategory" action="/categories/newCategory" method="post"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> - <input type="hidden" name="ID" value="<#if category.getID()??>${category.getID()}</#if>"> + <input type="hidden" name="ID" value="<#if category.getID()??>${category.getID()?c}</#if>"> <input type="hidden" name="type" value="<#if category.getType()??>${category.getType()}</#if>"> <#-- name --> diff --git a/src/main/resources/templates/import.ftl b/src/main/resources/templates/import.ftl index b3859b667..2d0e92c2f 100644 --- a/src/main/resources/templates/import.ftl +++ b/src/main/resources/templates/import.ftl @@ -24,14 +24,14 @@ <#list helpers.getAccountMatches(database.getAccounts()) as accountMatch> <tr> <td class="import-text">${locale.getString("info.database.import.source")}</td> - <td class="account-source-id hidden"><#if accountMatch.getAccountSource().getID()??>${accountMatch.getAccountSource().getID()}<#else>-1</#if> </td> + <td class="account-source-id hidden"><#if accountMatch.getAccountSource().getID()??>${accountMatch.getAccountSource().getID()?c}<#else>-1</#if> </td> <td class="account-source">${accountMatch.getAccountSource().getName()}</td> <td class="import-text">${locale.getString("info.database.import.destination")}</td> <td> <select class="account-destination"> <#list availableAccounts as account> <#if (account.getType().name() == "CUSTOM")> - <option value="${account.getID()}">${account.getName()}</option> + <option value="${account.getID()?c}">${account.getName()}</option> </#if> </#list> </select> diff --git a/src/main/resources/templates/navbar.ftl b/src/main/resources/templates/navbar.ftl index a2e423b53..402065e28 100644 --- a/src/main/resources/templates/navbar.ftl +++ b/src/main/resources/templates/navbar.ftl @@ -59,9 +59,9 @@ <select id="selectAccount"> <#list helpers.getAllAccounts() as account> <#if (account.getType().name() == "ALL")> - <option <#if account.isSelected()>selected</#if> value="${account.getID()}">${locale.getString("account.all")}</option> + <option <#if account.isSelected()>selected</#if> value="${account.getID()?c}">${locale.getString("account.all")}</option> <#else> - <option <#if account.isSelected()>selected</#if> value="${account.getID()}">${account.getName()}</option> + <option <#if account.isSelected()>selected</#if> value="${account.getID()?c}">${account.getName()}</option> </#if> </#list> </select> diff --git a/src/main/resources/templates/settings.ftl b/src/main/resources/templates/settings.ftl index a3c8fb5b2..984f6445d 100644 --- a/src/main/resources/templates/settings.ftl +++ b/src/main/resources/templates/settings.ftl @@ -18,7 +18,7 @@ <#import "validation.ftl" as validation> <form name="Settings" action="/settings/save" method="post"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> - <input type="hidden" name="ID" value="${settings.getID()}"> + <input type="hidden" name="ID" value="${settings.getID()?c}"> <#-- password --> <div class="row"> diff --git a/src/main/resources/templates/transactions/newTransaction.ftl b/src/main/resources/templates/transactions/newTransaction.ftl index 6068c77b7..d6c384b21 100644 --- a/src/main/resources/templates/transactions/newTransaction.ftl +++ b/src/main/resources/templates/transactions/newTransaction.ftl @@ -23,7 +23,7 @@ <#import "../validation.ftl" as validation> <form name="NewTransaction" action="/transactions/newTransaction" method="post" onsubmit="return validateForm()"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> - <input type="hidden" name="ID" value="<#if transaction.getID()??>${transaction.getID()}</#if>"> + <input type="hidden" name="ID" value="<#if transaction.getID()??>${transaction.getID()?c}</#if>"> <input type="hidden" name="isRepeating" value="${transaction.isRepeating()?c}"> <#-- isPayment switch --> @@ -76,18 +76,18 @@ <div class="input-field col s12 m12 l8 offset-l2" id="categoryWrapper"> <select id="transaction-category" name="category" <@validation.validation "category"/>> <#list categories as category> - <#assign categoryInfos=categoriesFunctions.getCategoryName(category) + "@@@" + category.getColor() + "@@@" + category.getAppropriateTextColor() + "@@@" + category.getID()> + <#assign categoryInfos=categoriesFunctions.getCategoryName(category) + "@@@" + category.getColor() + "@@@" + category.getAppropriateTextColor() + "@@@" + category.getID()?c> <#if transaction.getCategory()??> - <#if transaction.getCategory().getID() == category.getID()> - <option selected value="${category.getID()}">${categoryInfos}</option> + <#if transaction.getCategory().getID()?c == category.getID()?c> + <option selected value="${category.getID()?c}">${categoryInfos}</option> <#elseif category.getType() != "REST"> - <option value="${category.getID()}">${categoryInfos}</option> + <option value="${category.getID()?c}">${categoryInfos}</option> </#if> <#elseif category.getType() == "NONE"> - <option selected value="${category.getID()}">${categoryInfos}</option> + <option selected value="${category.getID()?c}">${categoryInfos}</option> <#elseif category.getType() != "REST"> - <option value="${category.getID()}">${categoryInfos}</option> + <option value="${category.getID()?c}">${categoryInfos}</option> </#if> </#list> </select> @@ -136,12 +136,12 @@ <#list accounts as account> <#if (account.getType().name() == "CUSTOM")> <#if transaction.getAccount()?? && transaction.getAccount() == account> - <option selected value="${account.getID()}">${account.getName()}</option> + <option selected value="${account.getID()?c}">${account.getName()}</option> <#else> <#if account == helpers.getCurrentAccount()> - <option selected value="${account.getID()}">${account.getName()}</option> + <option selected value="${account.getID()?c}">${account.getName()}</option> <#else> - <option value="${account.getID()}">${account.getName()}</option> + <option value="${account.getID()?c}">${account.getName()}</option> </#if> </#if> </#if> @@ -319,9 +319,9 @@ <#-- pass selected account to JS in order to select current value for materialize select --> <script> <#if transaction.getCategory()??> - selectedCategory = "${transaction.getCategory().getID()}"; + selectedCategory = "${transaction.getCategory().getID()?c}"; <#else> - selectedCategory = "${helpers.getIDOfNoCatgeory()}"; + selectedCategory = "${helpers.getIDOfNoCatgeory()?c}"; </#if> </script> diff --git a/src/main/resources/templates/transactions/transactions.ftl b/src/main/resources/templates/transactions/transactions.ftl index 32b2aa533..a1da1c681 100644 --- a/src/main/resources/templates/transactions/transactions.ftl +++ b/src/main/resources/templates/transactions/transactions.ftl @@ -69,8 +69,8 @@ </#if> <td> <#if (transaction.category.type.name() != "REST")> - <a href="/transactions/${transaction.ID}/edit" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a> - <a href="/transactions/${transaction.ID}/requestDelete" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a> + <a href="/transactions/${transaction.ID?c}/edit" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a> + <a href="/transactions/${transaction.ID?c}/requestDelete" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a> </#if> </td> </tr> @@ -95,7 +95,7 @@ </div> <div class="modal-footer background-color"> <a href="/transactions" class="modal-action modal-close waves-effect waves-light red btn-flat white-text">${locale.getString("cancel")}</a> - <a href="/transactions/${currentTransaction.ID}/delete" class="modal-action modal-close waves-effectwaves-light green btn-flat white-text">${locale.getString("delete")}</a> + <a href="/transactions/${currentTransaction.ID?c}/delete" class="modal-action modal-close waves-effectwaves-light green btn-flat white-text">${locale.getString("delete")}</a> </div> </div> </#if> -- GitLab