From 2977ecfa6e9ab34e2d9ea867abac8cf246bedc11 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 13 Feb 2022 16:51:19 +0100 Subject: [PATCH] Fixed #673 - split default and custom chart tables --- .../budgetmaster/charts/ChartController.java | 5 +- .../resources/languages/base_de.properties | 2 + .../resources/languages/base_en.properties | 2 + src/main/resources/static/css/charts.css | 4 ++ .../resources/templates/charts/manage.ftl | 52 ++++++++++++------- 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java index 1cc9c8a13..37866d98d 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java @@ -45,6 +45,8 @@ public class ChartController extends BaseController public static final String TRANSACTION_DATA = "transactionData"; public static final String DISPLAY_TYPES = "displayTypes"; public static final String GROUP_TYPES = "groupTypes"; + public static final String CUSTOM_CHARTS = "customCharts"; + public static final String DEFAULT_CHARTS = "defaultCharts"; } private static class ReturnValues @@ -150,7 +152,8 @@ public class ChartController extends BaseController @GetMapping("/manage") public String manage(Model model) { - model.addAttribute(ModelAttributes.ALL_ENTITIES, chartService.getAllEntitiesAsc()); + model.addAttribute(ModelAttributes.DEFAULT_CHARTS, chartService.getRepository().findAllByType(ChartType.DEFAULT)); + model.addAttribute(ModelAttributes.CUSTOM_CHARTS, chartService.getRepository().findAllByType(ChartType.CUSTOM)); return ReturnValues.MANAGE; } diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index 9652e9eeb..5c05dfed0 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -561,6 +561,8 @@ charts.default.averageTransactionAmountPerCategory.localization='{"label1": "Dur charts.default.averageMonthlyIncomesAndExpendituresPerYearBar=Durchschnittliche monatliche Einnahmen/Ausgaben charts.default.averageMonthlyIncomesAndExpendituresPerYearBar.localization='{"traceName1": "Einnahmen", "traceName2": "Ausgaben"', "axisY": "Durchschnittlicher monatlicher Betrag in"'} +charts.custom=Eigene Diagramme +charts.default=Standarddiagramme chart.new.label.name=Name chart.new.label.script=Script chart.new.info.default=Diese mitgelieferte Diagrammvorlage kann nicht überschrieben werden, aber du kannst dir den Code ansehen. diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index 69067d821..ffeb40b57 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -561,6 +561,8 @@ charts.default.averageTransactionAmountPerCategory.localization='{"label1": "Ave charts.default.averageMonthlyIncomesAndExpendituresPerYearBar=Average monthly incomes/expenditures charts.default.averageMonthlyIncomesAndExpendituresPerYearBar.localization='{"traceName1": "Incomes", "traceName2": "Expenditures"', "axisY": "Average monthly amount in"'} +charts.custom=Custom Charts +charts.default=Default Charts chart.new.label.name=Name chart.new.label.script=Script chart.new.info.default=This default chart can''t be overwritten but you can have a look on how it''s implemented. diff --git a/src/main/resources/static/css/charts.css b/src/main/resources/static/css/charts.css index 5f67ce9a5..785bb21f0 100644 --- a/src/main/resources/static/css/charts.css +++ b/src/main/resources/static/css/charts.css @@ -97,4 +97,8 @@ #filterActiveBadge { float: none; margin-left: 1rem; +} + +.charts-default-margin { + margin-top: 2rem; } \ No newline at end of file diff --git a/src/main/resources/templates/charts/manage.ftl b/src/main/resources/templates/charts/manage.ftl index 2cea7f8e6..4147e3eb8 100644 --- a/src/main/resources/templates/charts/manage.ftl +++ b/src/main/resources/templates/charts/manage.ftl @@ -3,6 +3,7 @@ <#import "../helpers/header.ftl" as header> <@header.globals/> <@header.header "BudgetMaster - ${locale.getString('menu.charts')}"/> + <@header.style "charts"/> <#import "/spring.ftl" as s> </head> <@header.body> @@ -24,43 +25,58 @@ <@chartFunctions.buttons/> <br> <div class="container"> + <div class="section center-align"> + <div class="headline-small">${locale.getString("charts.custom")}</div> + </div> + + <table class="bordered"> + <thead> + <tr> + <th>${locale.getString("chart.new.label.name")}</th> + <th>${locale.getString("chart.actions")}</th> + </tr> + </thead> + <#list customCharts as chart> + <#assign chartName=chartFunctions.getChartName(chart)> + <tr> + <td>${chartName}</td> + <td> + <@header.buttonFlat url='/charts/' + chart.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default"/> + <@header.buttonFlat url='/charts/' + chart.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default button-request-delete-chart" isDataUrl=true/> + </td> + </tr> + </#list> + </table> + <#if customCharts?size == 0> + <div class="center-align charts-default-margin">${locale.getString("placeholder")}</div> + <br> + </#if> + + <div class="section center-align charts-default-margin"> + <div class="headline-small">${locale.getString("charts.default")}</div> + </div> + <table class="bordered"> <thead> <tr> <th>${locale.getString("chart.new.label.name")}</th> <th>${locale.getString("chart.display.type")}</th> <th>${locale.getString("chart.group.type")}</th> - <th>${locale.getString("chart.type")}</th> <th>${locale.getString("chart.actions")}</th> </tr> </thead> - <#list charts as chart> + <#list defaultCharts as chart> <#assign chartName=chartFunctions.getChartName(chart)> <tr> <td>${chartName}</td> <td><@chartFunctions.iconForItem item=chart.getDisplayType()/></td> <td><@chartFunctions.iconForItem item=chart.getGroupType()/></td> <td> - <#if chart.getType().name() == "DEFAULT"> - <a class="no-padding text-default"><i class="material-icons left">lock</i></a> - <#else> - <a class="no-padding text-default"><i class="material-icons left">person</i></a> - </#if> - </td> - <td> - <#if (chart.getType().name() == "CUSTOM")> - <@header.buttonFlat url='/charts/' + chart.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default"/> - <@header.buttonFlat url='/charts/' + chart.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default button-request-delete-chart" isDataUrl=true/> - <#else> - <@header.buttonFlat url='/charts/' + chart.ID?c + '/edit' icon='visibility' localizationKey='' classes="no-padding text-default"/> - </#if> + <@header.buttonFlat url='/charts/' + chart.ID?c + '/edit' icon='visibility' localizationKey='' classes="no-padding text-default"/> </td> </tr> </#list> </table> - <#if charts?size == 0> - <div class="headline center-align">${locale.getString("placeholder")}</div> - </#if> </div> </@header.content> </div> -- GitLab