From 0548a696a4b03c7fbf2bd3b439b362cccb4745f7 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 14 Jul 2019 11:20:32 +0200
Subject: [PATCH] #435 - added basic page

---
 .../budgetmaster/charts/ChartController.java  |  8 ++
 src/main/resources/languages/_de.properties   |  9 +-
 src/main/resources/languages/_en.properties   |  9 +-
 src/main/resources/static/css/dark/style.css  |  4 +
 src/main/resources/static/css/style.css       |  4 +
 .../resources/templates/charts/charts.ftl     | 85 +++++++++++++++++++
 6 files changed, 117 insertions(+), 2 deletions(-)
 create mode 100644 src/main/resources/templates/charts/charts.ftl

diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
index 49db6e9e9..7904249cb 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
@@ -28,6 +28,14 @@ public class ChartController extends BaseController
 		this.settingsService = settingsService;
 	}
 
+	@RequestMapping("/charts")
+	public String charts(Model model)
+	{
+		model.addAttribute("charts", chartService.getRepository().findAllByOrderByNameAsc());
+		model.addAttribute("settings", settingsService.getSettings());
+		return "charts/charts";
+	}
+
 	@RequestMapping("/charts/manage")
 	public String manage(Model model)
 	{
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 8792d9715..b2e74e865 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -44,6 +44,7 @@ title.account.new=Neues Konto
 title.account.edit=Konto bearbeiten
 title.category.budgets=Verbrauch nach Kategorien
 title.filter=Filter
+title.charts=Diagramme
 title.chart.new=Neues Diagramm
 title.chart.edit=Diagramm bearbeiten
 
@@ -333,4 +334,10 @@ chart.new.label.name=Name
 chart.new.label.script=Script
 chart.new.info.default=Diese mitgeliefert Diagrammvorlage kann nicht �berschrieben werden, aber du kannst dir den Code ansehen.
 chart.type=Typ
-chart.actions=Aktionen
\ No newline at end of file
+chart.actions=Aktionen
+chart.show=Anzeigen
+
+chart.steps.first=Schritt 1: W�hle ein Diagramm
+chart.steps.first.label=Diagramm
+chart.steps.second=Schritt 2: W�hle eine Zeitspanne
+chart.steps.third=Schritt 3: Wende Filter an (optional)
\ No newline at end of file
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index aeae2ece8..0fe85feb3 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -44,6 +44,7 @@ title.account.new=New Account
 title.account.edit=Edit Account
 title.category.budgets=Consumption by categories
 title.filter=Filter
+title.charts=Charts
 title.chart.new=New Chart
 title.chart.edit=Edit Chart
 
@@ -333,4 +334,10 @@ 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.
 chart.type=Type
-chart.actions=Actions
\ No newline at end of file
+chart.actions=Actions
+chart.show=Show
+
+chart.steps.first=Step 1: Choose a chart
+chart.steps.first.label=Chart
+chart.steps.second=Step 2: Choose a date range
+chart.steps.third=Step 3: Apply filters (optional)
\ No newline at end of file
diff --git a/src/main/resources/static/css/dark/style.css b/src/main/resources/static/css/dark/style.css
index 0e9f302a2..66d6a0448 100644
--- a/src/main/resources/static/css/dark/style.css
+++ b/src/main/resources/static/css/dark/style.css
@@ -298,6 +298,10 @@ textarea {
     margin-bottom: 0;
 }
 
+.no-margin-top {
+    margin-top: 0;
+}
+
 .no-margin {
     margin: 0 !important;
 }
diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css
index a50e1b17c..aa697a2ae 100644
--- a/src/main/resources/static/css/style.css
+++ b/src/main/resources/static/css/style.css
@@ -248,6 +248,10 @@ main {
     margin-bottom: 0;
 }
 
+.no-margin-top {
+    margin-top: 0;
+}
+
 .no-margin {
     margin: 0 !important;
 }
diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl
new file mode 100644
index 000000000..e783c1d57
--- /dev/null
+++ b/src/main/resources/templates/charts/charts.ftl
@@ -0,0 +1,85 @@
+<html>
+    <head>
+        <#import "../helpers/header.ftl" as header>
+        <@header.header "BudgetMaster"/>
+        <#import "/spring.ftl" as s>
+    </head>
+    <body class="budgetmaster-blue-light">
+        <#import "../helpers/navbar.ftl" as navbar>
+        <@navbar.navbar "charts" settings/>
+
+        <#import "chartFunctions.ftl" as chartFunctions>
+
+        <main>
+            <div class="card main-card background-color">
+                <div class="container">
+                    <div class="section center-align">
+                        <div class="headline">${locale.getString("title.charts")}</div>
+                    </div>
+                </div>
+                <div class="container">
+                    <form name="ChartSettings" action="<@s.url '/charts/showChart'/>" method="post">
+                        <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
+
+                        <div class="row no-margin-bottom">
+                            <div class="col s12 m12 l8 offset-l2">
+                                ${locale.getString("chart.steps.first")}
+                            </div>
+                        </div>
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2 no-margin-top">
+                                <select name="chart">
+                                    <#list charts as chart>
+                                        <#assign chartName=chartFunctions.getChartName(chart)>
+                                        <option value="${chart.getID()?c}">${chartName}</option>
+                                    </#list>
+                                </select>
+                            </div>
+                        </div>
+
+                        <div class="row no-margin-bottom">
+                            <div class="col s12 m12 l8 offset-l2">
+                                ${locale.getString("chart.steps.second")}
+                            </div>
+                        </div>
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2 no-margin-top">
+                                <input id="chart-name" type="text" name="name" value="">
+                                <label for="chart-name">${locale.getString("chart.new.label.name")}</label>
+                            </div>
+                        </div>
+
+                        <div class="row no-margin-bottom">
+                            <div class="col s12 m12 l8 offset-l2">
+                                ${locale.getString("chart.steps.third")}
+                            </div>
+                        </div>
+                        <div class="row">
+                            <div class="input-field col s12 m12 l8 offset-l2 no-margin-top">
+                                <input id="chart-name" type="text" name="name" value="">
+                                <label for="chart-name">${locale.getString("chart.new.label.name")}</label>
+                            </div>
+                        </div>
+
+                        <br>
+
+                        <#-- buttons -->
+                        <div class="hide-on-med-and-up">
+                            <div class="row center-align">
+                                <div class="col s12">
+                                    <button class="btn waves-effect waves-light budgetmaster-blue" type="submit" name="buttonSave">
+                                        <i class="material-icons left">show_chart</i>${locale.getString("chart.show")}
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </main>
+
+        <!-- Scripts-->
+        <#import "../helpers/scripts.ftl" as scripts>
+        <@scripts.scripts/>
+    </body>
+</html>
\ No newline at end of file
-- 
GitLab