From 812585e6cc8a83dcf18822f1ced473be958c00ed Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Fri, 12 Mar 2021 20:33:47 +0100
Subject: [PATCH] #589 - added switch for new category style settings option

---
 .../budgetmaster/settings/SettingsController.java            | 5 +++++
 src/main/resources/languages/base_de.properties              | 4 ++++
 src/main/resources/languages/base_en.properties              | 4 ++++
 .../resources/templates/categories/categoriesFunctions.ftl   | 2 +-
 src/main/resources/templates/settings/settings.ftl           | 1 -
 src/main/resources/templates/settings/settingsMacros.ftl     | 5 +++++
 6 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
index b6f2b9d66..3088ef0a9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
@@ -146,6 +146,11 @@ public class SettingsController extends BaseController
 			backupTaskOptional.ifPresent(runnable -> scheduleTaskService.startBackupCron(cron, runnable));
 		}
 
+		if(settings.getShowCategoriesAsCircles() == null)
+		{
+			settings.setShowCategoriesAsCircles(false);
+		}
+
 
 		if(bindingResult.hasErrors())
 		{
diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties
index 5ce70f240..f163e109a 100644
--- a/src/main/resources/languages/base_de.properties
+++ b/src/main/resources/languages/base_de.properties
@@ -245,6 +245,10 @@ settings.backup.auto.git.token=Git Zugriffstoken
 settings.backup.auto.git.test=Verbindung testen
 settings.backup.auto.git.test.success=Verbindung erfolgreich!
 settings.backup.auto.git.test.fail=Verbindung fehlgeschlagen!\n{0}
+settings.category.circle.style=Kategorien anzeigen als
+settings.category.circle.style.description=Legt die Darstellung von Kategorien in der Buchungsübersicht fest
+settings.category.circle.style.deactivated=Quadrate
+settings.category.circle.style.activated=Kreise
 
 settings.database.import=Importieren
 settings.database.export=Exportieren
diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties
index 54355b34b..5871795dd 100644
--- a/src/main/resources/languages/base_en.properties
+++ b/src/main/resources/languages/base_en.properties
@@ -245,6 +245,10 @@ settings.backup.auto.git.token=Git access token
 settings.backup.auto.git.test=Test connection
 settings.backup.auto.git.test.success=Connection successful!
 settings.backup.auto.git.test.fail=Connection failed!\n{0}
+settings.category.circle.style=Show categories as
+settings.category.circle.style.description=Defines how categories are displayed in the transaction overview
+settings.category.circle.style.deactivated=Squares
+settings.category.circle.style.activated=Circles
 
 settings.database.import=Import
 settings.database.export=Export
diff --git a/src/main/resources/templates/categories/categoriesFunctions.ftl b/src/main/resources/templates/categories/categoriesFunctions.ftl
index 23af9703f..2f41e89d8 100644
--- a/src/main/resources/templates/categories/categoriesFunctions.ftl
+++ b/src/main/resources/templates/categories/categoriesFunctions.ftl
@@ -17,7 +17,7 @@
 <#macro categoryCircle category classes="" datasetValue="">
     <#assign categoryName=getCategoryName(category)>
 
-    <div class="category-circle ${classes} <#if settings.getShowCategoriesAsCircles() == false>category-square</#if>" style="background-color: ${category.color}" <#if datasetValue?has_content>data-value="${category.getID()}"</#if>>
+    <div class="category-circle ${classes} <#if settings.getShowCategoriesAsCircles()?? && settings.getShowCategoriesAsCircles() == false>category-square</#if>" style="background-color: ${category.color}" <#if datasetValue?has_content>data-value="${category.getID()}"</#if>>
         <span style="color: ${category.getAppropriateTextColor()}">
             <#if category.getIcon()?has_content>
                 <i class="${category.getIcon()}"></i>
diff --git a/src/main/resources/templates/settings/settings.ftl b/src/main/resources/templates/settings/settings.ftl
index 0b200c789..d13bd605a 100644
--- a/src/main/resources/templates/settings/settings.ftl
+++ b/src/main/resources/templates/settings/settings.ftl
@@ -30,7 +30,6 @@
                             <input type="hidden" name="installedVersionCode" value="${settings.getInstalledVersionCode()}">
                             <input type="hidden" name="whatsNewShownForCurrentVersion" value="${settings.getWhatsNewShownForCurrentVersion()?c}">
                             <input type="hidden" name="showFirstUseBanner" value="${settings.getShowFirstUseBanner()?c}">
-                            <input type="hidden" name="showCategoriesAsCircles" value="${settings.getShowCategoriesAsCircles()?c}">
 
                             <#-- password -->
                             <div class="row">
diff --git a/src/main/resources/templates/settings/settingsMacros.ftl b/src/main/resources/templates/settings/settingsMacros.ftl
index 16f085619..84934e653 100644
--- a/src/main/resources/templates/settings/settingsMacros.ftl
+++ b/src/main/resources/templates/settings/settingsMacros.ftl
@@ -8,12 +8,14 @@
                     <div class="switch-cell-margin">${locale.getString("settings.rest")}</div>
                     <div class="switch-cell-margin">${locale.getString("settings.darkTheme")}</div>
                     <div class="switch-cell-margin">${locale.getString("settings.updates.automatic")}</div>
+                    <div class="switch-cell-margin">${locale.getString("settings.category.circle.style")}</div>
                 </div>
                 <div class="table-cell table-cell-spacer"></div>
                 <div class="table-cell">
                     <@switch "rest" "restActivated" settings.isRestActivated()/>
                     <@switch "darkTheme" "useDarkTheme" settings.isUseDarkTheme()/>
                     <@switch "updates.automatic" "autoUpdateCheckEnabled" settings.isAutoUpdateCheckEnabled()/>
+                    <@switch "category.circle.style" "showCategoriesAsCircles" settings.getShowCategoriesAsCircles()?? && settings.getShowCategoriesAsCircles()/>
                 </div>
                 <div class="table-cell table-cell-spacer"></div>
                 <div class="table-cell">
@@ -26,6 +28,9 @@
                     <div class="switch-cell-margin">
                         <a class="btn btn-flat tooltipped text-default" data-position="bottom" data-tooltip="${locale.getString("settings.updates.automatic.description")}"><i class="material-icons">help_outline</i></a>
                     </div>
+                    <div class="switch-cell-margin">
+                        <a class="btn btn-flat tooltipped text-default" data-position="bottom" data-tooltip="${locale.getString("settings.category.circle.style.description")}"><i class="material-icons">help_outline</i></a>
+                    </div>
                 </div>
             </div>
         </div>
-- 
GitLab