From e28a01ab192902d8ce207353c0148b5d082c8838 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Wed, 13 Jun 2018 19:39:10 +0200
Subject: [PATCH] #256 - added buttons for database import/export/delete

---
 .../controller/SettingsController.java        | 18 ++++++++
 src/main/resources/languages/_de.properties   |  5 +++
 src/main/resources/languages/_en.properties   |  5 +++
 src/main/resources/templates/settings.ftl     | 45 ++++++++++++++++++-
 4 files changed, 72 insertions(+), 1 deletion(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
index 6740ca49e..38b2e6c02 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -78,4 +78,22 @@ public class SettingsController extends BaseController
 
 		return "redirect:/settings";
 	}
+
+	@RequestMapping("/settings/database/requestImport")
+	public String requestImportDatabase(Model model)
+	{
+		return "settings";
+	}
+
+	@RequestMapping("/settings/database/requestExport")
+	public String requestExportDatabase(Model model)
+	{
+		return "settings";
+	}
+
+	@RequestMapping("/settings/database/requestDelete")
+	public String requestDeleteDatabase(Model model)
+	{
+		return "settings";
+	}
 }
\ No newline at end of file
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 9cd5b17ec..5abbea017 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -309,6 +309,7 @@ menu.charts.chartCategoryBudget=Verbrauch nach Kategorien
 menu.charts.chartHistogram=Histogramm
 menu.reports=Berichte
 menu.settings=Einstellungen
+menu.settings.database=Datenbank
 menu.about=�ber
 menu.logout=Logout
 menu.accounts=Konten
@@ -331,6 +332,10 @@ settings.updates.search=Suchen
 settings.updates.current.version=Installiert:
 settings.updates.latest.version=Verf�gbar:
 
+settings.database.import=Importieren
+settings.database.export=Exportieren
+settings.database.delete=L�schen
+
 account.new.label.name=Name
 account.default.name=Standardkonto
 
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index dc6a4f064..2e62291e1 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -309,6 +309,7 @@ menu.charts.chartCategoryBudget=Consumption by categories
 menu.charts.chartHistogram=Histogram
 menu.reports=Reports
 menu.settings=Settings
+menu.settings.database=Database
 menu.about=About
 menu.logout=Logout
 menu.accounts=Accounts
@@ -331,6 +332,10 @@ settings.updates.search=Search
 settings.updates.current.version=Installed:
 settings.updates.latest.version=Available:
 
+settings.database.import=Import
+settings.database.export=Export
+settings.database.delete=Delete
+
 account.new.label.name=Name
 account.default.name=Default Account
 
diff --git a/src/main/resources/templates/settings.ftl b/src/main/resources/templates/settings.ftl
index caefd9b88..02da49cce 100644
--- a/src/main/resources/templates/settings.ftl
+++ b/src/main/resources/templates/settings.ftl
@@ -101,7 +101,7 @@
                                             </div>
                                         </td>
                                         <td>${locale.getString("settings.updates.current.version")}</td>
-                                        <td>v2.0.0</td>
+                                        <td>v${locale.getString("version.name")} (${locale.getString("version.code")})</td>
                                     </tr>
                                     <tr>
                                         <td>${locale.getString("settings.updates.latest.version")}</td>
@@ -128,6 +128,49 @@
                         </div>
                     </form>
                 </div>
+
+                <hr>
+                <#-- database -->
+                <div class="container">
+                    <div class="section center-align">
+                        <div class="grey-text text-darken-4 headline">${locale.getString("menu.settings.database")}</div>
+                    </div>
+                </div>
+                <div class="container">
+                    <div class="row hide-on-small-only">
+                        <div class="col m4 l4 center-align">
+                            <a href="/settings/database/requestImport" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">cloud_upload</i>${locale.getString("settings.database.import")}</a>
+                        </div>
+
+                        <div class="col m4 l4 center-align">
+                            <a href="/settings/database/requestExport" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">cloud_download</i>${locale.getString("settings.database.export")}</a>
+                        </div>
+
+                        <div class="col m4 l4 center-align">
+                            <a href="/settings/database/requestDelete" class="waves-effect waves-light btn budgetmaster-red"><i class="material-icons left">delete_forever</i>${locale.getString("settings.database.delete")}</a>
+                        </div>
+                    </div>
+
+                    <div class="hide-on-med-and-up">
+                        <div class="row center-align">
+                            <div class="col s12">
+                                <a href="/settings/database/requestImport" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">cloud_upload</i>${locale.getString("settings.database.import")}</a>
+                            </div>
+                        </div>
+
+                        <div class="row center-align">
+                            <div class="col s12">
+                                <a href="/settings/database/requestExport" class="waves-effect waves-light btn budgetmaster-blue"><i class="material-icons left">cloud_download</i>${locale.getString("settings.database.export")}</a>
+                            </div>
+                        </div>
+
+                        <div class="row center-align">
+                            <div class="col s12">
+                                <a href="/settings/database/requestDelete" class="waves-effect waves-light btn budgetmaster-red"><i class="material-icons left">delete_forever</i>${locale.getString("settings.database.delete")}</a>
+                            </div>
+                        </div>
+                    </div>
+                </div>
             </div>
         </main>
 
-- 
GitLab