From 2520ceb6e3298b2ee0e59acc84cd778dd6668bad Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 8 Jan 2023 10:57:18 +0100
Subject: [PATCH] #724 - added new empty page and controller for csv import

---
 .../TransactionImportController.java          | 38 +++++++++++++++++++
 .../budgetmaster/utils/Mappings.java          |  1 +
 .../resources/templates/helpers/navbar.ftl    |  2 +-
 .../transactions/transactionImport.ftl        | 31 +++++++++++++++
 4 files changed, 71 insertions(+), 1 deletion(-)
 create mode 100644 BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
 create mode 100644 BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl

diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
new file mode 100644
index 000000000..5b938c723
--- /dev/null
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
@@ -0,0 +1,38 @@
+package de.deadlocker8.budgetmaster.transactions;
+
+import de.deadlocker8.budgetmaster.controller.BaseController;
+import de.deadlocker8.budgetmaster.services.HelpersService;
+import de.deadlocker8.budgetmaster.utils.Mappings;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Controller
+@RequestMapping(Mappings.TRANSACTION_IMPORT)
+public class TransactionImportController extends BaseController
+{
+	private static class ReturnValues
+	{
+		public static final String TRANSACTION_IMPORT = "transactions/transactionImport";
+	}
+
+	private final TransactionService transactionService;
+	private final HelpersService helpers;
+
+	@Autowired
+	public TransactionImportController(TransactionService transactionService, HelpersService helpers)
+	{
+		this.transactionService = transactionService;
+		this.helpers = helpers;
+	}
+
+	@GetMapping
+	public String transactionImport(HttpServletRequest request, Model model)
+	{
+		return ReturnValues.TRANSACTION_IMPORT;
+	}
+}
\ No newline at end of file
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/utils/Mappings.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/utils/Mappings.java
index e0c652444..60d211cec 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/utils/Mappings.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/utils/Mappings.java
@@ -23,6 +23,7 @@ public final class Mappings
 	public static final String TEMPLATES = "/templates";
 	public static final String TEMPLATE_GROUPS = "/templateGroups";
 	public static final String TRANSACTIONS = "/transactions";
+	public static final String TRANSACTION_IMPORT = "/transactionImport";
 	public static final String TAGS = "/tags";
 	public static final String HINTS = "/hints";
 	public static final String KEYWORDS = "/keywords";
diff --git a/BudgetMasterServer/src/main/resources/templates/helpers/navbar.ftl b/BudgetMasterServer/src/main/resources/templates/helpers/navbar.ftl
index 33dc1456c..977ab1f0a 100644
--- a/BudgetMasterServer/src/main/resources/templates/helpers/navbar.ftl
+++ b/BudgetMasterServer/src/main/resources/templates/helpers/navbar.ftl
@@ -150,7 +150,7 @@
         <li class="sub-menu <#if activeID == "transactions">active</#if>"><a href="<@s.url '${link}'/>" class="waves-effect no-padding"><div class="stripe ${activeColor}"></div><i class="material-icons">${icon}</i>${text}</a></li>
         <li class="sub-menu sub-menu-entry <#if activeID == "templates">active</#if>"><a href="<@s.url '/templates'/>" class="waves-effect no-padding"><div class="stripe ${activeColor}"></div><i class="material-icons">${entityType.TEMPLATE.getIcon()}</i>${locale.getString("menu.transactions.templates")}</a></li>
         <li class="sub-menu sub-menu-entry <#if activeID == "recurring">active</#if>"><a href="<@s.url '/transactions/recurringOverview'/>" class="waves-effect no-padding"><div class="stripe ${activeColor}"></div><i class="material-icons">${entityType.RECURRING_TRANSACTIONS.getIcon()}</i>${locale.getString("menu.transactions.recurring")}</a></li>
-        <li class="sub-menu sub-menu-entry <#if activeID == "importCSV">active</#if>"><a href="<@s.url '/transactions/recurringOverview'/>" class="waves-effect no-padding"><div class="stripe ${activeColor}"></div><i class="${entityType.TRANSACTION_IMPORT.getIcon()} fontawesome-icon fontawesome-icon-additional-margin-left"></i>${locale.getString("menu.transactions.import")}</a></li>
+        <li class="sub-menu sub-menu-entry <#if activeID == "importCSV">active</#if>"><a href="<@s.url '/transactionImport'/>" class="waves-effect no-padding"><div class="stripe ${activeColor}"></div><i class="${entityType.TRANSACTION_IMPORT.getIcon()} fontawesome-icon fontawesome-icon-additional-margin-left"></i>${locale.getString("menu.transactions.import")}</a></li>
     <#else>
         <li><a href="<@s.url '${link}'/>" class="waves-effect"><i class="material-icons">${icon}</i>${text}</a></li>
     </#if>
diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
new file mode 100644
index 000000000..ac7adb4e0
--- /dev/null
+++ b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
@@ -0,0 +1,31 @@
+<html>
+    <head>
+        <#import "../helpers/header.ftl" as header>
+        <@header.globals/>
+        <@header.header "BudgetMaster - ${locale.getString('menu.transactions.import')}"/>
+        <#import "/spring.ftl" as s>
+    </head>
+    <@header.body>
+        <#import "../helpers/navbar.ftl" as navbar>
+        <@navbar.navbar "importCSV" settings/>
+
+        <#import "../search/searchMacros.ftl" as searchMacros>
+
+        <main>
+            <div class="card main-card background-color">
+                <div class="container">
+                    <div class="section center-align">
+                        <div class="headline">${locale.getString("menu.transactions.import")}</div>
+                    </div>
+                </div>
+
+                <@header.content>
+                </@header.content>
+            </div>
+        </main>
+
+        <!--  Scripts-->
+        <#import "../helpers/scripts.ftl" as scripts>
+        <@scripts.scripts/>
+    </@header.body>
+</html>
\ No newline at end of file
-- 
GitLab