Select Git revision
transactionsMacros.ftl
-
Robert Goldmann authoredRobert Goldmann authored
transactionsMacros.ftl 7.79 KiB
<#import "/spring.ftl" as s>
<#import "../helpers/header.ftl" as header>
<#macro transactionType transaction size>
<div class="col ${size} left-align">
<#if transaction.isRepeating()>
<i class="material-icons">repeat</i>
</#if>
<#if transaction.isTransfer()>
<i class="material-icons">swap_horiz</i>
</#if>
<#if !transaction.isRepeating() && !transaction.isTransfer()>
<i class="material-icons invisible">repeat</i>
</#if>
</div>
</#macro>
<#macro transactionCategory transaction alignment>
<#import "../categories/categoriesFunctions.ftl" as categoriesFunctions>
<div class="col s2 l1 xl1 ${alignment}">
<div class="hide-on-med-and-down">
<@categoriesFunctions.categoryCircle category=transaction.category enableSearchWrapper=true/>
</div>
<div class="hide-on-large-only">
<@categoriesFunctions.categoryCircle category=transaction.category classes="category-circle-small" enableSearchWrapper=true/>
</div>
</div>
</#macro>
<#macro transactionNameAndDescription transaction size>
<div class="col ${size}">
<div class="truncate transaction-text">${transaction.name}</div>
<div class="hide-on-med-and-down">
<#if transaction.description??>
<div class="italic">${transaction.description}</div>
</#if>
</div>
</div>
</#macro>
<#macro transactionAmount transaction account size>
<#assign amount = helpers.getAmount(transaction, account)/>
<#if amount <= 0>
<div class="col ${size} bold ${redTextColor} no-wrap right-align transaction-text">${currencyService.getCurrencyString(amount)}</div>
<#else>
<div class="col ${size} bold ${greenTextColor} no-wrap right-align transaction-text">${currencyService.getCurrencyString(amount)}</div>
</#if>
</#macro>
<#macro transactionButtons transaction classes>
<div class="col ${classes} transaction-buttons no-wrap">
<#if transaction.isEditable()>
<@header.buttonFlat url='/transactions/' + transaction.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default button-edit"/>
<@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>
</#macro>
<#macro transactionAccountIcon transaction>
<#if helpers.getCurrentAccount().getType().name() == "ALL" && transaction.getAccount()??>
<#import "../helpers/customSelectMacros.ftl" as customSelectMacros>
<a href="<@s.url '/accounts/' + transaction.getAccount().getID() + '/select'/>">
<div class="col s2 l1 xl1 tooltipped no-padding" data-position="bottom" data-tooltip="${transaction.getAccount().getName()}">
<div class="hide-on-med-and-down">
<@customSelectMacros.accountIcon transaction.getAccount() transaction.getAccount().getName()/>
</div>
<div class="hide-on-large-only">
<@customSelectMacros.accountIcon transaction.getAccount() transaction.getAccount().getName() "category-circle-small"/>
</div>
</div>
</a>
</#if>
</#macro>
<#macro transactionLinks transaction>
<div class="col s4 l2 xl1 right-align transaction-buttons no-wrap">
<@header.buttonFlat url='/transactions/' + transaction.ID?c + '/highlight' icon='open_in_new' localizationKey='' classes="no-padding text-default buttonHighlight"/>
<#if transaction.getAccount().getAccountState().name() == 'FULL_ACCESS'>
<@header.buttonFlat url='/transactions/' + transaction.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default"/>
</#if>
</div>
</#macro>
<#macro placeholder transactions>
<br>
<#assign isOnlyRest = transactions?size == 1 && transactions[0].category.type.name() == "REST"/>
<#if transactions?size == 0 || isOnlyRest>
<div class="row">
<div class="col s12">
<div class="headline center-align">${locale.getString("placeholder.seems.empty")}</div>
<div class="headline-advice center-align">${locale.getString("placeholder.advice", locale.getString("menu.transactions"))}</div>
</div>
</div>
</#if>
</#macro>
<#macro buttons isFilterActive>
<div class="row hide-on-small-only valign-wrapper">
<#if helpers.getCurrentAccount().getAccountState().name() == 'FULL_ACCESS'>
<div class="col s6 right-align transactions-buttons-col">
<@buttonNew "new-transaction-button-list new-transaction-button-list-large" helpers.getCurrentAccount()/>
</div>
<div class="col s6 left-align">
<@buttonFilter isFilterActive/>
</div>
<#else>
<div class="col s12 center-align">
<@buttonFilter isFilterActive/>
</div>
</#if>
</div>
<div class="hide-on-med-and-up center-align">
<div class="row center-align">
<div class="row center-align">
<div class="col s12">
<@buttonFilter isFilterActive/>
</div>
</div>
<div class="col s12 transactions-buttons-col">
<@buttonNew "new-transaction-button-list " helpers.getCurrentAccount()/>
</div>
</div>
</div>
</#macro>
<#macro buttonNew listClasses currentAccount>
<#if currentAccount.getAccountState().name() != 'FULL_ACCESS'>
<#return/>
</#if>
<div class="fixed-action-btn new-transaction-button">
<a class="btn-floating btn-large btn waves-effect waves-light background-blue" id="button-new-transaction">
<i class="material-icons left">add</i>${locale.getString("title.transaction.new.short")}
</a>
<ul class="${listClasses}">
<li>
<a href="<@s.url '/templates'/>" class="btn-floating btn background-blue-baby"><i class="material-icons">file_copy</i></a>
<a href="<@s.url '/templates'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new.from.template")}</a>
</li>
<li>
<a href="<@s.url '/transactions/newTransaction/transfer'/>" class="btn-floating btn background-green-dark"><i class="material-icons">swap_horiz</i></a>
<a href="<@s.url '/transactions/newTransaction/transfer'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new.transfer")}</a>
</li>
<li>
<a href="<@s.url '/transactions/newTransaction/normal'/>" class="btn-floating btn background-orange"><i class="material-icons">payment</i></a>
<a href="<@s.url '/transactions/newTransaction/normal'/>" class="btn-floating btn mobile-fab-tip no-wrap">${locale.getString("title.transaction.new.normal")}</a>
</li>
</ul>
</div>
</#macro>
<#macro buttonFilter isFilterActive>
<#if isFilterActive>
<a href="#modalFilter" id="modalFilterTrigger" class="modal-trigger waves-effect waves-light btn background-red"><i class="fas fa-filter left"></i>${locale.getString("filter.active")}</a>
<#else>
<a href="#modalFilter" id="modalFilterTrigger" class="modal-trigger waves-effect waves-light btn background-blue"><i class="fas fa-filter left"></i>${locale.getString("title.filter")}</a>
</#if>
</#macro>