From 6015fe19372a8b55ba8ccdb66279b276450840d0 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 18 Jul 2021 11:29:22 +0200 Subject: [PATCH] #585 - dynamically show chart group type buttons --- .../budgetmaster/charts/ChartController.java | 1 + .../budgetmaster/charts/ChartGroupType.java | 20 +++++++++++++++---- .../resources/languages/base_de.properties | 4 ++++ .../resources/languages/base_en.properties | 4 ++++ .../resources/templates/charts/charts.ftl | 20 ++++++++++++++----- 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java index d5b5bd1a7..784975cab 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java @@ -67,6 +67,7 @@ public class ChartController extends BaseController model.addAttribute("chartSettings", defaultChartSettings); model.addAttribute("charts", charts); model.addAttribute("displayTypes", ChartDisplayType.values()); + model.addAttribute("groupTypes", ChartGroupType.values()); return "charts/charts"; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartGroupType.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartGroupType.java index 59d280591..b1f7e24ad 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartGroupType.java +++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartGroupType.java @@ -4,17 +4,29 @@ import de.deadlocker8.budgetmaster.utils.LocalizedEnum; public enum ChartGroupType implements LocalizedEnum { - NONE("none"), - MONTH("month"), - YEAR("year"); + NONE("far fa-calendar-times", "none"), + MONTH("far fa-calendar", "month"), + YEAR("far fa-calendar-alt", "year"); + private final String icon; private final String localizationKey; - ChartGroupType(String localizationKey) + ChartGroupType(String icon, String localizationKey) { + this.icon = icon; this.localizationKey = localizationKey; } + public boolean hasFontAwesomeIcon() + { + return icon.startsWith("fa"); + } + + public String getIcon() + { + return icon; + } + @Override public String getLocalizationKey() { diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index da24580db..ee2ad2d12 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -570,3 +570,7 @@ chart.display.type.pie=Torte chart.display.type.bar=Balken chart.display.type.line=Linien chart.display.type.custom=Benutzerdefiniert + +chart.group.type.none=keine +chart.group.type.month=Monat +chart.group.type.year=Jahr diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index 5651efba6..f1be92b2c 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -569,3 +569,7 @@ chart.display.type.pie=Pie chart.display.type.bar=Bar chart.display.type.line=Line chart.display.type.custom=Custom + +chart.group.type.none=None +chart.group.type.month=Month +chart.group.type.year=Year diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl index 1dfeca7ca..31b18b9d2 100644 --- a/src/main/resources/templates/charts/charts.ftl +++ b/src/main/resources/templates/charts/charts.ftl @@ -33,7 +33,17 @@ <div class="row hide-on-small-and-down"> <div class="col s12 center-align"> <#list displayTypes as displayType> - <@chartDisplayTypeButton displayType/> + <@chartTypeButton displayType/> + </#list> + </div> + </div> + </div> + + <div class="container"> + <div class="row hide-on-small-and-down"> + <div class="col s12 center-align"> + <#list groupTypes as groupType> + <@chartTypeButton groupType/> </#list> </div> </div> @@ -312,12 +322,12 @@ </@stepCollapsible> </#macro> -<#macro chartDisplayTypeButton displayType> +<#macro chartTypeButton item> <a class="waves-effect waves-light btn-large background-grey text-black"> - <#if displayType.hasFontAwesomeIcon()> - <i class="${displayType.getIcon()} left"></i> ${locale.getString(displayType.getLocalizationKey())} + <#if item.hasFontAwesomeIcon()> + <i class="${item.getIcon()} left"></i> ${locale.getString(item.getLocalizationKey())} <#else> - <i class="material-icons left">${displayType.getIcon()}</i> ${locale.getString(displayType.getLocalizationKey())} + <i class="material-icons left">${item.getIcon()}</i> ${locale.getString(item.getLocalizationKey())} </#if> </a> </#macro> -- GitLab