Skip to content
Snippets Groups Projects
Commit 7e8420ab authored by Robert Goldmann's avatar Robert Goldmann
Browse files

Fixed #338 - added basic pages to view and manage templates

parent 6e81d859
No related branches found
No related tags found
1 merge request!229Feature/index page
Pipeline #3159 passed
package de.deadlocker8.budgetmaster.templates; package de.deadlocker8.budgetmaster.templates;
import de.deadlocker8.budgetmaster.charts.Chart;
import de.deadlocker8.budgetmaster.charts.ChartType;
import de.deadlocker8.budgetmaster.controller.BaseController; import de.deadlocker8.budgetmaster.controller.BaseController;
import de.deadlocker8.budgetmaster.settings.SettingsService; import de.deadlocker8.budgetmaster.settings.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -7,6 +9,8 @@ import org.springframework.stereotype.Controller; ...@@ -7,6 +9,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import java.util.ArrayList;
@Controller @Controller
public class TemplateController extends BaseController public class TemplateController extends BaseController
...@@ -20,9 +24,18 @@ public class TemplateController extends BaseController ...@@ -20,9 +24,18 @@ public class TemplateController extends BaseController
} }
@GetMapping("/templates") @GetMapping("/templates")
public String index(Model model) public String showTemplates(Model model)
{
model.addAttribute("settings", settingsService.getSettings());
model.addAttribute("templates", new ArrayList<>());
return "templates/templates";
}
@GetMapping("/templates/manage")
public String manage(Model model)
{ {
model.addAttribute("settings", settingsService.getSettings()); model.addAttribute("settings", settingsService.getSettings());
model.addAttribute("templates", new ArrayList<>());
return "templates/manage"; return "templates/manage";
} }
} }
\ No newline at end of file
...@@ -50,6 +50,8 @@ title.filter=Filter ...@@ -50,6 +50,8 @@ title.filter=Filter
title.charts=Diagramme title.charts=Diagramme
title.chart.new=Neues Diagramm title.chart.new=Neues Diagramm
title.chart.edit=Diagramm bearbeiten title.chart.edit=Diagramm bearbeiten
title.template.new=Neue Vorlage
title.template.edit=Vorlage bearbeiten
# MISC # MISC
category.none=Keine Kategorie category.none=Keine Kategorie
...@@ -101,6 +103,8 @@ info.text.transaction.delete=Möchtest du die Buchung "{0}" wirklich unwiderrufl ...@@ -101,6 +103,8 @@ info.text.transaction.delete=Möchtest du die Buchung "{0}" wirklich unwiderrufl
info.text.transaction.repeating.delete=Möchtest du die Buchung "{0}" wirklich unwiderruflich löschen? <br>Hinweis: Es handelt sich um eine wiederholende Buchung. Beim Löschen dieser Buchung werden alle zugehörigen Wiederholungen ebenfalls gelöscht! info.text.transaction.repeating.delete=Möchtest du die Buchung "{0}" wirklich unwiderruflich löschen? <br>Hinweis: Es handelt sich um eine wiederholende Buchung. Beim Löschen dieser Buchung werden alle zugehörigen Wiederholungen ebenfalls gelöscht!
info.title.chart.delete=Diagramm löschen info.title.chart.delete=Diagramm löschen
info.text.chart.delete=Möchtest du das Diagramm "{0}" wirklich unwiderruflich löschen? info.text.chart.delete=Möchtest du das Diagramm "{0}" wirklich unwiderruflich löschen?
info.title.template.delete=Vorlage löschen
info.text.template.delete=Möchtest du die Vorlage "{0}" wirklich unwiderruflich löschen?
info.title.database.delete=Datenbank löschen info.title.database.delete=Datenbank löschen
info.header.text.database.delete=Soll die Datenbank wirklich unwiderruflich gelöscht werden?<br>Hinweis: Beim Löschen der Datenbank werden alle Buchungen, Kategorien und Konten unwiderruflich gelöscht. info.header.text.database.delete=Soll die Datenbank wirklich unwiderruflich gelöscht werden?<br>Hinweis: Beim Löschen der Datenbank werden alle Buchungen, Kategorien und Konten unwiderruflich gelöscht.
...@@ -313,6 +317,9 @@ home.menu.transactions=Buchungen sind das zentrale Element von BudgetMaster. Gib ...@@ -313,6 +317,9 @@ home.menu.transactions=Buchungen sind das zentrale Element von BudgetMaster. Gib
home.menu.transactions.action.manage=Buchungsverwaltung home.menu.transactions.action.manage=Buchungsverwaltung
home.menu.transactions.action.new=Neue Buchung anlegen home.menu.transactions.action.new=Neue Buchung anlegen
home.menu.templates.action.manage=Vorlagenverwaltung
home.menu.templates.action.show=Vorlagen ansehen
home.menu.charts=Visualisiere deine Daten in verschiedenen Diagrammen. Nutze die mitgelieferten Diagrammtypen oder definiere deine eigenen Diagramme. home.menu.charts=Visualisiere deine Daten in verschiedenen Diagrammen. Nutze die mitgelieferten Diagrammtypen oder definiere deine eigenen Diagramme.
home.menu.charts.action.manage=Diagrammverwaltung home.menu.charts.action.manage=Diagrammverwaltung
home.menu.charts.action.show=Diagramme ansehen home.menu.charts.action.show=Diagramme ansehen
......
...@@ -50,6 +50,8 @@ title.filter=Filter ...@@ -50,6 +50,8 @@ title.filter=Filter
title.charts=Charts title.charts=Charts
title.chart.new=New Chart title.chart.new=New Chart
title.chart.edit=Edit Chart title.chart.edit=Edit Chart
title.template.new=New Template
title.template.edit=Edit Template
# MISC # MISC
category.none=No Category category.none=No Category
...@@ -101,6 +103,8 @@ info.text.transaction.delete=Do you really want to delete the entry "{0}"? This ...@@ -101,6 +103,8 @@ info.text.transaction.delete=Do you really want to delete the entry "{0}"? This
info.text.transaction.repeating.delete=Do you really want to delete the entry "{0}"? This can''t be undone.<br>Note: This transaction is a repeating transaction. Deleting this transaction will delete all related occurrences too! info.text.transaction.repeating.delete=Do you really want to delete the entry "{0}"? This can''t be undone.<br>Note: This transaction is a repeating transaction. Deleting this transaction will delete all related occurrences too!
info.title.chart.delete=Delete Chart info.title.chart.delete=Delete Chart
info.text.chart.delete=Do you really want to delete the chart "{0}"? info.text.chart.delete=Do you really want to delete the chart "{0}"?
info.title.template.delete=Delete Template
info.text.template.delete=Do you really want to delete the template "{0}"?
info.title.database.delete=Delete Database info.title.database.delete=Delete Database
info.header.text.database.delete=Do you really want to delete the database? This can''t be undone.<br>Note: Deleting the database will delete all transactions, categories and accounts permanently. info.header.text.database.delete=Do you really want to delete the database? This can''t be undone.<br>Note: Deleting the database will delete all transactions, categories and accounts permanently.
...@@ -313,6 +317,9 @@ home.menu.transactions=Transactions are the key element of BudgetMaster. Give th ...@@ -313,6 +317,9 @@ home.menu.transactions=Transactions are the key element of BudgetMaster. Give th
home.menu.transactions.action.manage=Manage transactions home.menu.transactions.action.manage=Manage transactions
home.menu.transactions.action.new=Create a transaction home.menu.transactions.action.new=Create a transaction
home.menu.templates.action.manage=Manage templates
home.menu.templates.action.show=Show templates
home.menu.charts=Visualize your data by using charts. You can choose an included default chart or define your own. home.menu.charts=Visualize your data by using charts. You can choose an included default chart or define your own.
home.menu.charts.action.manage=Manage charts home.menu.charts.action.manage=Manage charts
home.menu.charts.action.show=Show charts home.menu.charts.action.show=Show charts
......
$(document).ready(function()
{
if($("#modalConfirmDelete").length)
{
$('#modalConfirmDelete').modal('open');
}
});
\ No newline at end of file
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
<#import "../helpers/navbar.ftl" as navbar> <#import "../helpers/navbar.ftl" as navbar>
<@navbar.navbar "templates" settings/> <@navbar.navbar "templates" settings/>
<#import "templateFunctions.ftl" as templateFunctions>
<main> <main>
<div class="card main-card background-color"> <div class="card main-card background-color">
<div class="container"> <div class="container">
...@@ -15,10 +17,51 @@ ...@@ -15,10 +17,51 @@
<div class="headline">${locale.getString("menu.templates")}</div> <div class="headline">${locale.getString("menu.templates")}</div>
</div> </div>
</div> </div>
<br>
<@templateFunctions.buttons/>
<br>
<div class="container">
<#if templates?size == 0>
<div class="headline center-align">${locale.getString("placeholder")}</div>
<#else>
<table class="bordered">
<thead>
<tr>
<th>${locale.getString("chart.new.label.name")}</th>
<th>${locale.getString("chart.actions")}</th>
</tr>
</thead>
<#list templates as template>
<tr>
<td>${template.getName()}</td>
<td>
<a href="<@s.url '/templates/${template.ID?c}/edit'/>" class="btn-flat no-padding text-color"><i class="material-icons left">edit</i></a>
<a href="<@s.url '/templates/${template.ID?c}/requestDelete'/>" class="btn-flat no-padding text-color"><i class="material-icons left">delete</i></a>
</td>
</tr>
</#list>
</table>
</#if>
</div>
</div>
<#if currentTemplate??>
<!-- confirm delete modal -->
<div id="modalConfirmDelete" class="modal background-color">
<div class="modal-content">
<h4>${locale.getString("info.title.template.delete")}</h4>
<p>${locale.getString("info.text.template.delete", currentTemplate.getName())}</p>
</div>
<div class="modal-footer background-color">
<a href="<@s.url '/templates/manage'/>" class="modal-action modal-close waves-effect waves-light red btn-flat white-text">${locale.getString("cancel")}</a>
<a href="<@s.url '/templates/${currentTemplate.getID()?c}/delete'/>" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("info.title.template.delete")}</a>
</div>
</div> </div>
</#if>
</main> </main>
<#import "../helpers/scripts.ftl" as scripts> <#import "../helpers/scripts.ftl" as scripts>
<@scripts.scripts/> <@scripts.scripts/>
<script src="<@s.url '/js/templates.js'/>"></script>
</body> </body>
</html> </html>
\ No newline at end of file
<#import "/spring.ftl" as s>
<#macro buttonNew>
<a href="<@s.url '/templates/newTemplate'/>" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">add</i>${locale.getString("title.template.new")}</a>
</#macro>
<#macro buttonShow>
<a href="<@s.url '/templates'/>" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">file_copy</i>${locale.getString("home.menu.templates.action.show")}</a>
</#macro>
<#macro buttons>
<div class="row hide-on-small-only valign-wrapper">
<div class="col s6 right-align">
<@buttonNew/>
</div>
<div class="col s6 left-align">
<@buttonShow/>
</div>
</div>
<div class="hide-on-med-and-up center-align">
<div class="row center-align">
<div class="row center-align">
<div class="col s12">
<@buttonShow/>
</div>
</div>
<div class="col s12">
<@buttonNew/>
</div>
</div>
</div>
</#macro>
\ No newline at end of file
<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 "templates" settings/>
<#import "templateFunctions.ftl" as templateFunctions>
<main>
<div class="card main-card background-color">
<div class="container">
<div class="section center-align">
<div class="headline">${locale.getString("menu.templates")}</div>
</div>
</div>
<br>
<div class="center-align"><a href="<@s.url '/templates/manage'/>" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">edit</i>${locale.getString("home.menu.templates.action.manage")}</a></div>
<br>
<div class="container">
<#if templates?size == 0>
<div class="headline center-align">${locale.getString("placeholder")}</div>
<#else>
</#if>
</div>
</div>
</main>
<#import "../helpers/scripts.ftl" as scripts>
<@scripts.scripts/>
<script src="<@s.url '/js/templates.js'/>"></script>
</body>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment