diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java index 5618486561500bb2d5d9ce8b26f9693327c3e7d4..d5b5bd1a79fc90a08292577d9fcb34a03d04730e 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java @@ -66,6 +66,7 @@ public class ChartController extends BaseController model.addAttribute("chartSettings", defaultChartSettings); model.addAttribute("charts", charts); + model.addAttribute("displayTypes", ChartDisplayType.values()); return "charts/charts"; } diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java index c5cdeb49940b61a2976793ebe065e21bd5a5b016..de2470534d1f4a534fffb04742e21d207c161300 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java +++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartDisplayType.java @@ -4,18 +4,30 @@ import de.deadlocker8.budgetmaster.utils.LocalizedEnum; public enum ChartDisplayType implements LocalizedEnum { - PIE("pie"), - BAR("bar"), - LINE("line"), - CUSTOM("custom"); + PIE("fas fa-chart-pie", "pie"), + BAR("fas fa-chart-bar", "bar"), + LINE("fas fa-chart-line", "line"), + CUSTOM("insights", "custom"); + private final String icon; private final String localizationKey; - ChartDisplayType(String localizationKey) + ChartDisplayType(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 8acec97970f39e845db4b0353afaa2cb9cf9c6e6..da24580db6dd439590756e17c0b64246a1aafc33 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -564,4 +564,9 @@ import.entity.template=Alle Vorlagen werden nacheinander importiert und dabei di import.entity.image=Icons werden automatisch mit den zugehörigen Konten, Vorlagen und Kategorien importiert. import.entity.chart=Es werden nur die benutzerdefinierten Diagramme importiert.<br>Der Import von Diagrammen ist optional. -copied=Kopiert! \ No newline at end of file +copied=Kopiert! + +chart.display.type.pie=Torte +chart.display.type.bar=Balken +chart.display.type.line=Linien +chart.display.type.custom=Benutzerdefiniert diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index 99c75ad2ddd9bfbd15b613c55037d111b715cad0..5651efba62aab2d0fbedaac53579688bbd7dbb3f 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -563,4 +563,9 @@ import.entity.template=All templates will be imported one by one, reassigning th import.entity.image=Icons are automatically imported with their associated accounts, templates and categories. import.entity.chart=Only user-defined charts will be imported.<br>The import of charts is optional. -copied=Copied! \ No newline at end of file +copied=Copied! + +chart.display.type.pie=Pie +chart.display.type.bar=Bar +chart.display.type.line=Line +chart.display.type.custom=Custom diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl index 018ae6089d6b1a382f809bdec667cdb9e53bcf67..1dfeca7ca0b163944618fa64f900702e9e8a5be3 100644 --- a/src/main/resources/templates/charts/charts.ftl +++ b/src/main/resources/templates/charts/charts.ftl @@ -31,24 +31,10 @@ <div class="container"> <div class="row hide-on-small-and-down"> - <div class="col s12 center-align "> - <a class="waves-effect waves-light btn-large background-grey text-black"><i class="fas fa-chart-pie left"></i> Pie</a> - <a class="waves-effect waves-light btn-large background-green text-black"><i class="fas fa-chart-bar left"></i> Bar</a> - <a class="waves-effect waves-light btn-large background-grey text-black"><i class="fas fa-chart-line left"></i> Line</a> - <a class="waves-effect waves-light btn-large background-grey text-black"><i class="material-icons left">insights</i> Custom</a> - </div> - </div> - - <div class="row hide-on-med-and-up"> - <div class="col s12 center-align"> - <a class="waves-effect waves-light btn background-grey text-black"><i class="fas fa-chart-pie left"></i> Pie</a> - <a class="waves-effect waves-light btn background-green text-black"><i class="fas fa-chart-bar left"></i> Bar</a> - </div> - </div> - <div class="row hide-on-med-and-up"> - <div class="col s12 center-align"> - <a class="waves-effect waves-light btn background-grey text-black"><i class="fas fa-chart-line left"></i> Line</a> - <a class="waves-effect waves-light btn background-grey text-black"><i class="material-icons left">insights</i> Custom</a> + <div class="col s12 center-align"> + <#list displayTypes as displayType> + <@chartDisplayTypeButton displayType/> + </#list> </div> </div> </div> @@ -324,4 +310,14 @@ <@transactionsMacros.buttonFilter chartSettings.getFilterConfiguration().isActive()/> </div> </@stepCollapsible> -</#macro> \ No newline at end of file +</#macro> + +<#macro chartDisplayTypeButton displayType> + <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())} + <#else> + <i class="material-icons left">${displayType.getIcon()}</i> ${locale.getString(displayType.getLocalizationKey())} + </#if> + </a> +</#macro>