From 06b747c2219ecfeeab9621f92eef14d287eabe96 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 16 May 2015 07:28:58 +0200 Subject: [PATCH] Some cleanup and translations. --- app/Http/Controllers/ReportController.php | 29 +++++++++--- public/js/reports.js | 49 ++++++++++++++++++- resources/lang/en/firefly.php | 3 ++ resources/lang/nl/firefly.php | 3 ++ resources/twig/reports/year.twig | 57 +++++++++++++++++++---- 5 files changed, 124 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index f13dfcfaa6..b3b8cbb409 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -260,12 +260,14 @@ class ReportController extends Controller */ public function year($year, $shared = false) { - $date = new Carbon('01-01-' . $year); - $end = clone $date; - $subTitle = trans('firefly.reportForYear', ['year' => $year]); - $subTitleIcon = 'fa-bar-chart'; - $totalExpense = 0; - $totalIncome = 0; + $date = new Carbon('01-01-' . $year); + $end = clone $date; + $subTitle = trans('firefly.reportForYear', ['year' => $year]); + $subTitleIcon = 'fa-bar-chart'; + $totalExpense = 0; + $totalIncome = 0; + $incomeTopLength = 5; + $expenseTopLength = 10; if ($shared == 'shared') { $shared = true; @@ -305,9 +307,20 @@ class ReportController extends Controller 'amount' => floatval($entry->queryAmount), 'name' => $entry->name, 'count' => 1, + 'id' => $id, ]; } } + // sort with callback: + uasort( + $incomes, function ($a, $b) { + if ($a['amount'] == $b['amount']) { + return 0; + } + + return ($a['amount'] < $b['amount']) ? 1 : -1; + } + ); unset($set, $id); /** @@ -328,7 +341,9 @@ class ReportController extends Controller 'accounts', // all accounts 'accountsSums', // sums for all accounts 'incomes', 'expenses', // expenses and incomes. - 'subTitle', 'subTitleIcon' // subtitle and subtitle icon. + 'subTitle', 'subTitleIcon', // subtitle and subtitle icon. + 'incomeTopLength', // length of income top X + 'expenseTopLength' // length of expense top X. ) ); } diff --git a/public/js/reports.js b/public/js/reports.js index 1b779bbb9b..c2bc2eaf94 100644 --- a/public/js/reports.js +++ b/public/js/reports.js @@ -1,6 +1,5 @@ if (typeof(google) != 'undefined') { google.setOnLoadCallback(drawChart); - } @@ -13,6 +12,12 @@ function drawChart() { $(function () { $('.openModal').on('click', openModal); + + + // click open the top X income list: + $('#showIncomes').click(showIncomes); + // click open the top X expense list: + $('#showExpenses').click(showExpenses); }); function openModal(e) { @@ -29,3 +34,45 @@ function openModal(e) { return false; } + + +function showIncomes() { + "use strict"; + if(incomeRestShow) { + // hide everything, make button say "show" + $('#showIncomes').text(showTheRest); + $('.incomesCollapsed').removeClass('in').addClass('out'); + + // toggle: + incomeRestShow = false; + } else { + // show everything, make button say "hide". + $('#showIncomes').text(hideTheRest); + $('.incomesCollapsed').removeClass('out').addClass('in'); + + // toggle: + incomeRestShow = true; + } + + return false; +} + +function showExpenses() { + if(expenseRestShow) { + // hide everything, make button say "show" + $('#showExpenses').text(showTheRestExpense); + $('.expenseCollapsed').removeClass('in').addClass('out'); + + // toggle: + expenseRestShow = false; + } else { + // show everything, make button say "hide". + $('#showExpenses').text(hideTheRestExpense); + $('.expenseCollapsed').removeClass('out').addClass('in'); + + // toggle: + expenseRestShow = true; + } + + return false; +} \ No newline at end of file diff --git a/resources/lang/en/firefly.php b/resources/lang/en/firefly.php index d100346cca..efaa73bce7 100644 --- a/resources/lang/en/firefly.php +++ b/resources/lang/en/firefly.php @@ -95,6 +95,9 @@ return [ 'difference' => 'Difference', 'in' => 'In', 'out' => 'Out', + 'topX' => 'top :number', + 'showTheRest' => 'Show everything', + 'hideTheRest' => 'Show only the top :number', // charts: 'dayOfMonth' => 'Day of the month', diff --git a/resources/lang/nl/firefly.php b/resources/lang/nl/firefly.php index c743d00d1a..f07a7e3f6b 100644 --- a/resources/lang/nl/firefly.php +++ b/resources/lang/nl/firefly.php @@ -95,6 +95,9 @@ return [ 'difference' => 'Verschil', 'in' => 'In', 'out' => 'Uit', + 'topX' => 'top :number', + 'showTheRest' => 'Laat alles zien', + 'hideTheRest' => 'Laat alleen de top :number zien', // charts: 'dayOfMonth' => 'Dag vd maand', diff --git a/resources/twig/reports/year.twig b/resources/twig/reports/year.twig index d793d1e069..26599d7a69 100644 --- a/resources/twig/reports/year.twig +++ b/resources/twig/reports/year.twig @@ -62,11 +62,9 @@
- + {{ 'incomeVsExpenses'|_ }}
- - @@ -87,11 +85,15 @@
- {{ 'income'|_ }} + {{ 'income'|_ }} ({{ trans('firefly.topX',{number: incomeTopLength}) }})
{{ 'in'|_ }}
{% for id,row in incomes %} + {% if loop.index > incomeTopLength %} + + {% else %} + {% endif %} {% endfor %} - + {% if incomes|length > incomeTopLength %} + + + + {% endif %} @@ -113,17 +121,28 @@
- {{ 'expenses'|_ }} + {{ 'expenses'|_ }} ({{ trans('firefly.topX',{number: expenseTopLength}) }})
{{ row.name }} {% if row.count > 1 %} @@ -101,7 +103,13 @@ {{ row.amount|formatAmount }}
+ {{ trans('firefly.showTheRest',{number:incomeTopLength}) }} +
{{ 'sum'|_ }} {{ totalIncome|formatAmount }}
{% set sum =0 %} {% for expense in expenses %} - + {% if loop.index > expenseTopLength %} + + {% else %} + + {% endif %} {% set sum = sum + (expense.queryAmount * -1) %} {% endfor %} + {% if expenses|length > expenseTopLength %} + + + + {% endif %} @@ -132,6 +151,19 @@ +
+
+
+
+ + {{ 'categories'|_ }} +
+
+
(to do)
+
+
+
+
@@ -155,8 +187,15 @@
{{ expense.name }} {{ expense.queryAmount|formatAmountPlain }}
+ {{ trans('firefly.showTheRest',{number:incomeTopLength}) }} +
{{ 'sum'|_ }} {{ (sum * -1)|formatAmountPlain }}