diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java index b802a127fcea6a4860e53580fc84a9c9c33d7a33..ffac192877d9146d6c8523ab495e3b4e149a2938 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 0f79a9d611ba0f5fce0fa89efc86d005da379eee..98519d63fa266aa6da69a57c123e0f02c6d3fddb 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>