diff --git a/app/Generator/Chart/Budget/ChartJsBudgetChartGenerator.php b/app/Generator/Chart/Budget/ChartJsBudgetChartGenerator.php index 4759744124..009c600d88 100644 --- a/app/Generator/Chart/Budget/ChartJsBudgetChartGenerator.php +++ b/app/Generator/Chart/Budget/ChartJsBudgetChartGenerator.php @@ -80,27 +80,28 @@ class ChartJsBudgetChartGenerator implements BudgetChartGenerator $left = []; $spent = []; $overspent = []; - $amount = []; - $expenses = []; foreach ($entries as $entry) { if ($entry[1] != 0 || $entry[2] != 0 || $entry[3] != 0) { $left[] = round($entry[1], 2); $spent[] = round($entry[2], 2); $overspent[] = round($entry[3], 2); - $amount[] = round($entry[4], 2); - $expenses[] = round($entry[5], 2); - //$data['count']++; } } $data['datasets'][] = [ - 'label' => 'Amount', - 'data' => $amount, + 'label' => trans('firefly.left'), + 'data' => $left, ]; $data['datasets'][] = [ - 'label' => 'Spent', - 'data' => $expenses, + 'label' => trans('firefly.spent'), + 'data' => $spent, ]; + $data['datasets'][] = [ + 'label' => trans('firefly.overspent'), + 'data' => $overspent, + ]; + + $data['count'] = count($data['datasets']); return $data; } @@ -140,23 +141,5 @@ class ChartJsBudgetChartGenerator implements BudgetChartGenerator } return $data; - - - $chart = new GChart; - // add columns: - $chart->addColumn(trans('firefly.month'), 'date'); - foreach ($budgets as $budget) { - $chart->addColumn($budget->name, 'number'); - } - - /** @var array $entry */ - foreach ($entries as $entry) { - - $chart->addRowArray($entry); - } - - $chart->generate(); - - return $chart->getData(); } } \ No newline at end of file diff --git a/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php b/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php index 74c004477a..0dcf665b4c 100644 --- a/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php +++ b/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php @@ -31,7 +31,7 @@ class ChartJsCategoryChartGenerator implements CategoryChartGenerator 'labels' => [], 'datasets' => [ [ - 'label' => 'Spent', + 'label' => trans('firefly.spent'), 'data' => [] ] ], @@ -57,7 +57,7 @@ class ChartJsCategoryChartGenerator implements CategoryChartGenerator 'labels' => [], 'datasets' => [ [ - 'label' => 'Spent', + 'label' => trans('firefly.spent'), 'data' => [] ] ], diff --git a/public/js/charts.js b/public/js/charts.js index cfd00f5d2f..10dfe4faaa 100644 --- a/public/js/charts.js +++ b/public/js/charts.js @@ -56,11 +56,26 @@ var defaultAreaOptions = { datasetFill: true, scaleFontSize: 10, responsive: true, - scaleLabel: "<%= '" + currencyCode + " ' + Number(value).toFixed(2).replace('.', ',') %>", + scaleLabel: "<%= '" + currencySymbol + " ' + Number(value).toFixed(2).replace('.', ',') %>", tooltipFillColor: "rgba(0,0,0,0.5)", - multiTooltipTemplate: "<%=datasetLabel%>: <%= '" + currencyCode + " ' + Number(value).toFixed(2).replace('.', ',') %>" + multiTooltipTemplate: "<%=datasetLabel%>: <%= '" + currencySymbol + " ' + Number(value).toFixed(2).replace('.', ',') %>" }; + +var defaultPieOptions = { + scaleShowGridLines: false, + pointDotRadius: 2, + datasetStrokeWidth: 1, + pointHitDetectionRadius: 5, + datasetFill: false, + scaleFontSize: 10, + responsive: true, + tooltipFillColor: "rgba(0,0,0,0.5)", + tooltipTemplate: "<%if (label){%><%=label%>: <%}%>" + currencySymbol + " <%= value %>", + +}; + + var defaultLineOptions = { scaleShowGridLines: false, pointDotRadius: 2, @@ -69,13 +84,35 @@ var defaultLineOptions = { datasetFill: false, scaleFontSize: 10, responsive: true, - scaleLabel: "<%= '" + currencyCode + " ' + Number(value).toFixed(2).replace('.', ',') %>", + scaleLabel: "<%= '" + currencySymbol + " ' + Number(value).toFixed(2).replace('.', ',') %>", tooltipFillColor: "rgba(0,0,0,0.5)", - multiTooltipTemplate: "<%=datasetLabel%>: <%= '" + currencyCode + " ' + Number(value).toFixed(2).replace('.', ',') %>" + multiTooltipTemplate: "<%=datasetLabel%>: <%= '" + currencySymbol + " ' + Number(value).toFixed(2).replace('.', ',') %>" }; var defaultColumnOptions = { - multiTooltipTemplate: "<%=datasetLabel%>: <%= '" + currencyCode + " ' + Number(value).toFixed(2).replace('.', ',') %>" + scaleShowGridLines: false, + pointDotRadius: 2, + barStrokeWidth: 1, + pointHitDetectionRadius: 5, + datasetFill: false, + scaleFontSize: 10, + responsive: true, + scaleLabel: "<%= '" + currencySymbol + " ' + Number(value).toFixed(2).replace('.', ',') %>", + tooltipFillColor: "rgba(0,0,0,0.5)", + tooltipTemplate: "<%if (label){%><%=label%>: <%}%>" + currencySymbol + " <%= value %>", +}; + +var defaultStackedColumnOptions = { + scaleShowGridLines: false, + pointDotRadius: 2, + barStrokeWidth: 1, + pointHitDetectionRadius: 5, + datasetFill: false, + scaleFontSize: 10, + responsive: true, + scaleLabel: "<%= '" + currencySymbol + " ' + Number(value).toFixed(2).replace('.', ',') %>", + tooltipFillColor: "rgba(0,0,0,0.5)", + multiTooltipTemplate: currencySymbol + " <%= Number(value).toFixed(2).replace('.', ',') %>" }; @@ -105,7 +142,7 @@ function lineChart(URL, container, options) { dataset.pointHighlightStroke = strokePointHighColors[i]; newData.datasets.push(dataset); } - var myAreaChart = new Chart(ctx).Line(newData, options); + new Chart(ctx).Line(newData, options); }).fail(function () { $('#' + container).addClass('google-chart-error'); @@ -158,6 +195,7 @@ function areaChart(URL, container, options) { function columnChart(URL, container, options) { "use strict"; options = options || defaultColumnOptions; + $.getJSON(URL).success(function (data) { var ctx = document.getElementById(container).getContext("2d"); @@ -167,7 +205,6 @@ function columnChart(URL, container, options) { for (var i = 0; i < data.count; i++) { newData.labels = data.labels; var dataset = data.datasets[i]; - console.log('Now at index ' + i + ' (count is ' + fillColors.length + ')'); dataset.fillColor = fillColors[i]; dataset.strokeColor = strokePointHighColors[i]; dataset.pointColor = strokePointHighColors[i]; @@ -176,7 +213,6 @@ function columnChart(URL, container, options) { dataset.pointHighlightStroke = strokePointHighColors[i]; newData.datasets.push(dataset); } - console.log(newData); new Chart(ctx).Bar(newData, options); }).fail(function () { @@ -193,21 +229,17 @@ function columnChart(URL, container, options) { */ function stackedColumnChart(URL, container, options) { "use strict"; + options = options || defaultStackedColumnOptions; + $.getJSON(URL).success(function (data) { var ctx = document.getElementById(container).getContext("2d"); var newData = {}; newData.datasets = []; - console.log('----'); - console.log('URL: ' + URL); - console.log('Total datasets: ' + data.datasets.length); - console.log('data.count: ' + data.count); - console.log('----'); for (var i = 0; i < data.count; i++) { newData.labels = data.labels; var dataset = data.datasets[i]; - console.log('Now at index ' + i + ' (count is ' + fillColors.length + ')'); dataset.fillColor = fillColors[i]; dataset.strokeColor = strokePointHighColors[i]; dataset.pointColor = strokePointHighColors[i]; @@ -216,13 +248,12 @@ function stackedColumnChart(URL, container, options) { dataset.pointHighlightStroke = strokePointHighColors[i]; newData.datasets.push(dataset); } - console.log(newData); new Chart(ctx).StackedBar(newData, options); }).fail(function () { $('#' + container).addClass('google-chart-error'); }); - console.log('URL for column chart : ' + URL); + console.log('URL for stacked column chart : ' + URL); } /** @@ -245,7 +276,7 @@ function comboChart(URL, container, options) { function pieChart(URL, container, options) { "use strict"; - options = options || defaultColumnOptions; + options = options || defaultPieOptions; $.getJSON(URL).success(function (data) { var ctx = document.getElementById(container).getContext("2d"); @@ -256,5 +287,6 @@ function pieChart(URL, container, options) { }); - console.log('no impl for pieChart'); + console.log('URL for pie chart : ' + URL); + } diff --git a/resources/twig/index.twig b/resources/twig/index.twig index 9a5a0f92e3..255bcee62e 100644 --- a/resources/twig/index.twig +++ b/resources/twig/index.twig @@ -248,6 +248,7 @@ {% endif %} {% if Config.get('firefly.chart') == 'chartjs' %} + {% endif %} diff --git a/resources/twig/layout/default.twig b/resources/twig/layout/default.twig index 8e104a4231..24d1981508 100644 --- a/resources/twig/layout/default.twig +++ b/resources/twig/layout/default.twig @@ -156,6 +156,7 @@ var nextMonthName = "{{ nextMonthName }}"; var currencyCode = '{{getCurrencyCode() }}'; + var currencySymbol = '{{getCurrencySymbol()|raw }}'; $('#daterange').text(titleString);