diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java index b67257ca1ad15cacaaac229cd0b1c95c9499af77..fe9c88e2f7d15ede562fd7c9ba1ccfd6b3eedb03 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/charts/DefaultCharts.java @@ -40,7 +40,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, 25, ChartDisplayType.BAR, ChartGroupType.MONTH, "incomesAndExpendituresPerMonthByCategories.png"); + ChartType.DEFAULT, 27, ChartDisplayType.BAR, ChartGroupType.MONTH, "incomesAndExpendituresPerMonthByCategories.png"); private static final Chart CHART_REST_PER_MONTH = new Chart("charts.default.restPerMonth", getChartFromFile("charts/RestPerMonth.js"), @@ -52,7 +52,7 @@ public class DefaultCharts private static final Chart CHART_INCOMES_AND_EXPENDITURES_PER_YEAR_BY_CATEGORIES = new Chart("charts.default.incomesAndExpendituresPerYearByCategories", getChartFromFile("charts/IncomesAndExpendituresPerYearByCategories.js"), - ChartType.DEFAULT, 5, ChartDisplayType.BAR, ChartGroupType.YEAR, "incomesAndExpendituresPerYearByCategories.png"); + ChartType.DEFAULT, 7, ChartDisplayType.BAR, ChartGroupType.YEAR, "incomesAndExpendituresPerYearByCategories.png"); private static final Chart CHART_AVERAGE_TRANSACTION_AMOUNT_PER_CATEGORY = new Chart("charts.default.averageTransactionAmountPerCategory", getChartFromFile("charts/AverageTransactionAmountPerCategoryBar.js"), diff --git a/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js b/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js index 5d6acc00fdfa706df88e966ca11cec9e1f360b6f..c0c464d7a9accf4d7e9e496fcbb90dc325e27b79 100644 --- a/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js +++ b/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerMonthByCategories.js @@ -17,19 +17,20 @@ const COLOR = 1; const INCOME = 2; const EXPENDITURE = 3; -var categoryNames = []; -var categoryColors = []; + +var categories = new Map(); for(var i = 0; i < transactionData.length; i++) { var currentTransaction = transactionData[i]; - if(!categoryNames.includes(currentTransaction.category.name)) + if(!categories.has(currentTransaction.category.name)) { - categoryNames.push(currentTransaction.category.name); - categoryColors.push(currentTransaction.category.color); + categories.set(currentTransaction.category.name, currentTransaction.category.color); } } +var sortedCategories = new Map([...categories.entries()].sort()); + var dates = []; var values = []; @@ -42,10 +43,10 @@ for(var i = 0; i < transactionData.length; i++) { dates.push(date); values.push([ - categoryNames, // NAME - categoryColors, // COLOR - new Array(categoryNames.length).fill(0), // INCOME - new Array(categoryNames.length).fill(0) // EXPENDITURE + Array.from(sortedCategories.keys()), // NAME + Array.from(sortedCategories.values()), // COLOR + new Array(sortedCategories.size).fill(0), // INCOME + new Array(sortedCategories.size).fill(0) // EXPENDITURE ]); } @@ -201,7 +202,8 @@ Plotly.newPlot("containerID", plotlyData, plotlyLayout, plotlyConfig); REGEX_CATGEORY_NAME = new RegExp("(.*)\\s\\d+.\\d%"); var plotContainer = document.getElementById('containerID'); -plotContainer.on('plotly_click', function(data){ +plotContainer.on('plotly_click', function(data) +{ if(data.event.shiftKey !== true) { return; diff --git a/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerYearByCategories.js b/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerYearByCategories.js index ff3413d9af530b322d050d2a186af9db432ed4b9..1b5b5a25386bcc6365b3691dc439eed40b83ca93 100644 --- a/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerYearByCategories.js +++ b/BudgetMasterServer/src/main/resources/charts/IncomesAndExpendituresPerYearByCategories.js @@ -17,19 +17,19 @@ const COLOR = 1; const INCOME = 2; const EXPENDITURE = 3; -var categoryNames = []; -var categoryColors = []; +var categories = new Map(); for(var i = 0; i < transactionData.length; i++) { var currentTransaction = transactionData[i]; - if(!categoryNames.includes(currentTransaction.category.name)) + if(!categories.has(currentTransaction.category.name)) { - categoryNames.push(currentTransaction.category.name); - categoryColors.push(currentTransaction.category.color); + categories.set(currentTransaction.category.name, currentTransaction.category.color); } } +var sortedCategories = new Map([...categories.entries()].sort()); + var dates = []; var values = []; @@ -42,10 +42,10 @@ for(var i = 0; i < transactionData.length; i++) { dates.push(date); values.push([ - categoryNames, // NAME - categoryColors, // COLOR - new Array(categoryNames.length).fill(0), // INCOME - new Array(categoryNames.length).fill(0) // EXPENDITURE + Array.from(sortedCategories.keys()), // NAME + Array.from(sortedCategories.values()), // COLOR + new Array(sortedCategories.size).fill(0), // INCOME + new Array(sortedCategories.size).fill(0) // EXPENDITURE ]); }