diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java index 1cc9c8a132c6e6dc61b69fc05b818125c4ddf66a..37866d98dd67879e98bd659d67cc15f681c1c59e 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 9652e9eeb23d601c4befe751c2d129eb8beeff79..5c05dfed018ad98e28944fa61b04e1becc336ead 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 69067d821b8cad17f0cd26cdc8d7d8aa4003dd83..ffeb40b570d7cacc207ebc674451da383342df01 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 5f67ce9a50ddb99566ec0e6fdc6d52327705c54a..785bb21f04bdf5aec6ff72d9887b3d03ac0cd44e 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 2cea7f8e61871368a276dc417b995687820c513e..4147e3eb870da8a3ee33f879694c3a8f734f3491 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>