From b1b6ed54bc4f82bbccedafaf53f7a9d3b109cc88 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Tue, 19 Oct 2021 22:33:22 +0200 Subject: [PATCH] #577 - show button for transactions from readonly accounts too --- .../budgetmaster/transactions/Transaction.java | 17 +++++++++++++++++ .../transactions/transactionsMacros.ftl | 2 ++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java index b802a127f..ffac19287 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java +++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java @@ -232,6 +232,23 @@ public class Transaction implements TransactionBase return isAccountEditable && isTransferAccountEditable; } + /** + * States whether this transaction is allowed to be used to create a new transaction + * and prefill all inputs with the data from this transaction. + */ + public boolean isAllowedToFillNewTransaction() + { + boolean isRestCategory = category.getType().equals(CategoryType.REST); + if(isRestCategory) + { + return false; + } + + boolean isAccountEditable = account.getAccountState().equals(AccountState.FULL_ACCESS); + boolean isAccountReadOnly = account.getAccountState().equals(AccountState.READ_ONLY); + return isAccountEditable || isAccountReadOnly; + } + @Override public String toString() { diff --git a/src/main/resources/templates/transactions/transactionsMacros.ftl b/src/main/resources/templates/transactions/transactionsMacros.ftl index 0f79a9d61..98519d63f 100644 --- a/src/main/resources/templates/transactions/transactionsMacros.ftl +++ b/src/main/resources/templates/transactions/transactionsMacros.ftl @@ -53,6 +53,8 @@ <#if transaction.isEditable()> <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default"/> <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default button-request-delete-transaction" isDataUrl=true/> + </#if> + <#if transaction.isAllowedToFillNewTransaction()> <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/newFromExisting' icon='content_copy' localizationKey='' classes="no-padding text-default button-new-from-existing"/> </#if> </div> -- GitLab