Skip to content
Snippets Groups Projects
Commit 8cb13d82 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

Fixed #737 - ssort categories alphabetically in bar charts

parent 3b1367b2
Branches
Tags
2 merge requests!239V2 15 0,!238V2 15 0
......@@ -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"),
......
......@@ -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;
......
......@@ -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
]);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment