From 4ef3c4fb49d4dcad7010c1027fe43ddde846e481 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 13 Jun 2021 16:25:39 +0200 Subject: [PATCH] #622 - usage new icon reference for showing account icons --- .../java/de/deadlocker8/budgetmaster/icon/Icon.java | 5 +++++ src/main/resources/templates/accounts/accounts.ftl | 2 +- .../resources/templates/helpers/customSelectMacros.ftl | 6 +++--- src/main/resources/templates/helpers/header.ftl | 10 ++++++++++ src/main/resources/templates/helpers/imageSelect.ftl | 1 + 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/icon/Icon.java b/src/main/java/de/deadlocker8/budgetmaster/icon/Icon.java index 30f68dbd8..588070a94 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/icon/Icon.java +++ b/src/main/java/de/deadlocker8/budgetmaster/icon/Icon.java @@ -65,6 +65,11 @@ public class Icon this.builtinIdentifier = builtinIdentifier; } + public boolean isBuiltinIcon() + { + return image == null; + } + @Override public boolean equals(Object o) { diff --git a/src/main/resources/templates/accounts/accounts.ftl b/src/main/resources/templates/accounts/accounts.ftl index 51d9fa6b3..6f0cab0fb 100644 --- a/src/main/resources/templates/accounts/accounts.ftl +++ b/src/main/resources/templates/accounts/accounts.ftl @@ -38,7 +38,7 @@ <i class="fas fa-edit"></i> </#if> </td> - <td><#if account.getIcon()??><img src="${account.getIcon().getBase64EncodedImage()}" class="account-icon"/></#if></td> + <td><@header.entityIcon entity=account classes="account-icon"/></td> <td>${account.getName()}</td> <td> <a href="<@s.url '/accounts/${account.getID()?c}/edit'/>" class="btn-flat no-padding text-default"><i class="material-icons left">edit</i></a> diff --git a/src/main/resources/templates/helpers/customSelectMacros.ftl b/src/main/resources/templates/helpers/customSelectMacros.ftl index a9b939c7e..df54e2e80 100644 --- a/src/main/resources/templates/helpers/customSelectMacros.ftl +++ b/src/main/resources/templates/helpers/customSelectMacros.ftl @@ -163,9 +163,9 @@ </#macro> <#macro accountIcon account accountName classes="" datasetValue=""> - <div class="category-circle ${classes} category-square <#if account.getIcon()?? == false>account-square-border</#if>" <#if datasetValue?has_content>data-value="${account.getID()}"</#if>> - <#if account.getIcon()??> - <img src="${account.getIcon().getBase64EncodedImage()}" class="account-select-icon"/> + <div class="category-circle ${classes} category-square <#if account.getIconReference()?? == false>account-square-border</#if>" <#if datasetValue?has_content>data-value="${account.getID()}"</#if>> + <#if account.getIconReference()??> + <@header.entityIcon entity=account classes="account-select-icon"/> <#else> <span class="text-blue"> ${accountName?capitalize[0]} diff --git a/src/main/resources/templates/helpers/header.ftl b/src/main/resources/templates/helpers/header.ftl index aff493fb5..552473091 100644 --- a/src/main/resources/templates/helpers/header.ftl +++ b/src/main/resources/templates/helpers/header.ftl @@ -118,4 +118,14 @@ <#if isDataUrl>data-url="${url}"</#if>> <i class="material-icons left <#if !localizationKey?has_content>no-margin</#if> ${iconClasses}">${icon}</i><#if localizationKey?has_content><span>${locale.getString(localizationKey)}</span></#if> </a> +</#macro> + +<#macro entityIcon entity classes=""> + <#if entity.getIconReference()??> + <#if entity.getIconReference().isBuiltinIcon()> + <i class="${entity.getIconReference().getBuiltinIdentifier()} ${classes}"></i> + <#else> + <img src="${entity.getIconReference().getImage().getBase64EncodedImage()}" class="${classes}"/> + </#if> + </#if> </#macro> \ No newline at end of file diff --git a/src/main/resources/templates/helpers/imageSelect.ftl b/src/main/resources/templates/helpers/imageSelect.ftl index 37f5d1470..8a6516926 100644 --- a/src/main/resources/templates/helpers/imageSelect.ftl +++ b/src/main/resources/templates/helpers/imageSelect.ftl @@ -14,6 +14,7 @@ </a> <@header.buttonFlat url='' icon='delete' id='' localizationKey='' classes="no-padding text-default button-remove-icon-from-item" noUrl=true/> + <#-- TODO: remove first input after templates are migrated too --> <input id="hidden-input-icon" type="hidden" name="icon" value="<#if item.getIcon()??>${item.getIcon().getID()?c}</#if>"> <input id="hidden-input-icon-image-id" type="hidden" name="iconImageID" value="<#if item.getIcon()??>${item.getIcon().getID()?c}</#if>"> </div> -- GitLab