From 1aa67cb62aad0060ecae231ec146c818e306dfce Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Mon, 29 Jul 2019 20:16:02 +0200
Subject: [PATCH] Fixed #472 - chart incomes/expenditures per month by
 categories: colors not matching exactly

---
 .../budgetmaster/charts/DefaultCharts.java         |  2 +-
 .../IncomesAndExpendituresPerMonthByCategories.js  | 14 ++++++++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java b/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java
index 196298488..94e135452 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java
@@ -35,7 +35,7 @@ public class DefaultCharts
 
 	private static final Chart CHART_INCOMES_AND_EXPENDITURES_PER_MONTH_BY_CATEGORIES = new Chart("charts.default.incomesAndExpendituresPerMonthByCategories",
 		getChartFromFile("charts/IncomesAndExpendituresPerMonthByCategories.js"),
-		ChartType.DEFAULT, 11);
+		ChartType.DEFAULT, 12);
 
 
 	public static List<Chart> getDefaultCharts()
diff --git a/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js b/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js
index 0efa2e1ab..f0c47801e 100644
--- a/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js
+++ b/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js
@@ -17,8 +17,18 @@ const COLOR = 1;
 const INCOME = 2;
 const EXPENDITURE = 3;
 
-var categoryNames = Array.from(new Set(transactionData.map(t => t.category.name)));
-var categoryColors = Array.from(new Set(transactionData.map(t => t.category.color)));
+var categoryNames = [];
+var categoryColors = [];
+
+for(var i = 0; i < transactionData.length; i++)
+{
+    var currentTransaction = transactionData[i];
+    if(!categoryNames.includes(currentTransaction.category.name))
+    {
+        categoryNames.push(currentTransaction.category.name);
+        categoryColors.push(currentTransaction.category.color);
+    }
+}
 
 var dates = [];
 var values = [];
-- 
GitLab