Skip to content
Snippets Groups Projects
Select Git revision
  • 89957757fcfc48cec9d1a937b9895d416454a81a
  • master default
  • renovate/junit-jupiter-engine.version
  • renovate/opencsv.version
  • renovate/org.springframework.boot-spring-boot-starter-parent-3.x
  • renovate/testcontainer.version
  • renovate/jgit.version
  • renovate/selenium.version
  • renovate/datatables.version
  • renovate/jacoco-maven-plugin.version
  • renovate/org.apache.maven.plugins-maven-surefire-plugin-3.x
  • demo
  • v1_8_1
  • v2.18.0
  • v2.17.2
  • v2.17.1
  • v2.17.0
  • v2.16.1
  • v2.16.0
  • v2.15.1
  • v2.15.0
  • v2.14.0
  • v2.13.0
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.2
  • v2.9.1
  • v2.9.0
  • v2.8.0
  • testPipeline2
  • v2.7.0
  • v2.6.1
33 results

transactionsMacros.ftl

Blame
  • transactionsMacros.ftl 7.78 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"/>
                    <@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>