From fcab88cb85b81a81b97157dca6a1cd39e3e84ae2 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Tue, 13 Jul 2021 20:48:15 +0200
Subject: [PATCH] #585 - chart chooser mockup

---
 src/main/resources/static/css/charts.css      |  26 +++
 src/main/resources/static/css/style.css       |   2 +-
 .../resources/templates/charts/charts.ftl     | 159 ++++++++++++++++--
 3 files changed, 172 insertions(+), 15 deletions(-)

diff --git a/src/main/resources/static/css/charts.css b/src/main/resources/static/css/charts.css
index 26fb34b10..ff90effdd 100644
--- a/src/main/resources/static/css/charts.css
+++ b/src/main/resources/static/css/charts.css
@@ -30,4 +30,30 @@
 
 .CodeMirror-scroll {
     height: auto;
+}
+
+.headline-chart-step {
+    font-size: 1.2rem;
+}
+
+.chart-button i {
+    font-size: 2.2rem;
+}
+
+.chart-button-name {
+    margin-left: 1rem;
+    font-weight: bold;
+}
+
+.chart-preview:hover {
+    cursor: pointer;
+}
+
+.chart-preview .card-action {
+    word-break: break-word;
+    color: #212121;
+}
+
+#chart-date-card {
+    background-color: var(--color-grey-dark-almost-transparent);
 }
\ No newline at end of file
diff --git a/src/main/resources/static/css/style.css b/src/main/resources/static/css/style.css
index 81281ff03..d27c3e41c 100644
--- a/src/main/resources/static/css/style.css
+++ b/src/main/resources/static/css/style.css
@@ -20,7 +20,7 @@ main {
     margin-bottom: 24px;
 }
 
-.btn, .btn-flat {
+.btn, .btn-flat, .btn-large {
     text-transform: none;
     font-weight: 600;
 }
diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl
index 07611e2ea..018ae6089 100644
--- a/src/main/resources/templates/charts/charts.ftl
+++ b/src/main/resources/templates/charts/charts.ftl
@@ -20,32 +20,163 @@
             <div class="card main-card background-color">
                 <div class="container">
                     <div class="section center-align">
-                        <div class="headline">
-                            <i class="material-icons">show_chart</i> ${locale.getString("title.charts")}</div>
+                        <div class="headline"><i class="material-icons">show_chart</i> ${locale.getString("title.charts")}</div>
                     </div>
                 </div>
 
                 <@header.content>
                     <br>
-                    <div class="center-align"><@header.buttonLink url='/charts/manage' icon='edit' localizationKey='home.menu.charts.action.manage'/></div>
-                    <br>
+<#--                    <div class="center-align"><@header.buttonLink url='/charts/manage' icon='edit' localizationKey='home.menu.charts.action.manage'/></div>-->
+<#--                    <br>-->
 
                     <div class="container">
-                        <form name="NewChartSettings" action="<@s.url '/charts'/>" method="post">
-                            <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
+                        <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">
-                                <div class="col s12">
-                                    <ul class="collapsible z-depth-2">
-                                        <@stepOne/>
+                        <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>
+                        </div>
+                    </div>
 
-                                        <@stepTwo/>
+                    <div class="container">
+                        <div class="row">
+                            <div class="col s6 m4 l3 center-align">
+                                <div class="card chart-preview background-grey-dark">
+                                    <div class="card-image">
+                                        <img src="<@s.url '/images/charts/a.png'/>">
+                                    </div>
+                                    <div class="card-action bold">
+                                        Incomes/Expenditures<br>by categories
+                                    </div>
+                                </div>
+                            </div>
 
-                                        <@stepThree/>
-                                    </ul>
+                            <div class="col s6 m4 l3 center-align">
+                                <div class="card chart-preview background-grey-dark">
+                                    <div class="card-image">
+                                        <img src="<@s.url '/images/charts/b.png'/>">
+                                    </div>
+                                    <div class="card-action bold">
+                                        Incomes/Expenditures<br>by month
+                                    </div>
                                 </div>
                             </div>
 
+                            <div class="col s6 m4 l3 center-align">
+                                <div class="card chart-preview background-grey-dark">
+                                    <div class="card-image">
+                                        <img src="<@s.url '/images/charts/c.png'/>">
+                                    </div>
+                                    <div class="card-action bold">
+                                        Incomes/Expenditures<br>by year
+                                    </div>
+                                </div>
+                            </div>
+
+                            <div class="col s6 m4 l3 center-align">
+                                <div class="card chart-preview background-grey-dark">
+                                    <div class="card-image">
+                                        <img src="<@s.url '/images/charts/a.png'/>">
+                                    </div>
+                                    <div class="card-action bold">
+                                        Incomes/Expenditures<br>by month by categories
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="container">
+                        <div class="row">
+                            <div class="col s12">
+                                <div class="card" id="chart-date-card">
+                                    <div class="card-content">
+                                           <div class="row">
+                                                <div class="input-field col s6 m6 l4 offset-l2">
+                                                    <#assign startDate = dateService.getLongDateString(chartSettings.getStartDate())/>
+
+                                                    <input id="chart-datepicker" type="text" class="datepicker" name="startDate" value="${startDate}">
+                                                    <label for="chart-datepicker">${locale.getString("chart.steps.second.label.start")}</label>
+                                                </div>
+
+                                                <div class="input-field col s6 m6 l4 ">
+                                                    <#assign endDate = dateService.getLongDateString(chartSettings.getEndDate())/>
+
+                                                    <input id="chart-datepicker-end" type="text" class="datepicker" name="endDate" value="${endDate}">
+                                                    <label for="chart-datepicker-end">${locale.getString("chart.steps.second.label.end")}</label>
+                                                </div>
+                                            </div>
+                                            <div class="row no-margin-bottom">
+                                                <div class="col s12 m12 l8 offset-l2 no-margin-top">
+                                                    <table class="no-border-table">
+                                                        <tr>
+                                                            <td class="quick-date" data-quick="0">${locale.getString("chart.quick.this.week")}</td>
+                                                            <td class="quick-date" data-quick="1">${locale.getString("chart.quick.this.month")}</td>
+                                                            <td class="quick-date" data-quick="2">${locale.getString("chart.quick.this.year")}</td>
+                                                            <td class="quick-date" data-quick="3">${locale.getString("chart.quick.all")}</td>
+                                                        </tr>
+                                                         <tr>
+                                                            <td class="quick-date" data-quick="4">${locale.getString("chart.quick.last.week")}</td>
+                                                            <td class="quick-date" data-quick="5">${locale.getString("chart.quick.last.month")}</td>
+                                                            <td class="quick-date" data-quick="6">${locale.getString("chart.quick.last.year")}</td>
+                                                            <td class="quick-date" data-quick="7">${locale.getString("chart.quick.until.endOfLastYear")}</td>
+                                                        </tr>
+                                                        <tr>
+                                                            <td class="quick-date" data-quick="8">${locale.getString("chart.quick.last.week.days")}</td>
+                                                            <td class="quick-date" data-quick="9">${locale.getString("chart.quick.last.month.days")}</td>
+                                                            <td class="quick-date" data-quick="10">${locale.getString("chart.quick.last.year.days")}</td>
+                                                            <td class="quick-date" data-quick="11">${locale.getString("chart.quick.until.today")}</td>
+                                                        </tr>
+                                                    </table>
+                                                 </div>
+                                            <div class="col s12 m12 l8 offset-l2 no-margin-top quick-date-container">
+                                            </div>
+
+                                            <script>
+                                                startDate = "${startDate}".split(".");
+                                                startDate = new Date(startDate[2], startDate[1] - 1, startDate[0]);
+                                                endDate = "${endDate}".split(".");
+                                                endDate = new Date(endDate[2], endDate[1] - 1, endDate[0]);
+                                            </script>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="container">
+                        <div class="row">
+                             <div class="col s12 no-margin-top center-align">
+                                 <ul class="collapsible">
+                                    <li>
+                                      <div class="collapsible-header"><i class="fas fa-filter"></i>Filter</div>
+                                      <div class="collapsible-body"><@filterMacros.filterModalContent chartSettings.getFilterConfiguration() "filterConfiguration"/></div>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="container">
+                        <form name="NewChartSettings" action="<@s.url '/charts'/>" method="post">
+                            <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
+
                             <@filterMacros.filterModalCharts chartSettings.getFilterConfiguration()/>
 
                             <#-- buttons -->
@@ -186,8 +317,8 @@
                 </script>
     </@stepCollapsible>
 </#macro>
-
 <#macro stepThree>
+
     <@stepCollapsible step=locale.getString("chart.steps.third.step") stepName=locale.getString("chart.steps.third") isActive=false>
         <div class="col s12 m12 l8 offset-l2 no-margin-top center-align">
             <@transactionsMacros.buttonFilter chartSettings.getFilterConfiguration().isActive()/>
-- 
GitLab