diff --git a/app/Http/Controllers/Report/AccountController.php b/app/Http/Controllers/Report/AccountController.php new file mode 100644 index 0000000000..e2d6f01b31 --- /dev/null +++ b/app/Http/Controllers/Report/AccountController.php @@ -0,0 +1,44 @@ +getAccountReport($start, $end, $accounts); + + return view('reports.partials.accounts', compact('accountReport')); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 225a8ee31d..8f34806a8b 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -16,7 +16,6 @@ namespace FireflyIII\Http\Controllers; use Carbon\Carbon; use FireflyIII\Crud\Account\AccountCrudInterface; use FireflyIII\Exceptions\FireflyException; -use FireflyIII\Helpers\Report\AccountReportHelperInterface; use FireflyIII\Helpers\Report\BalanceReportHelperInterface; use FireflyIII\Helpers\Report\BudgetReportHelperInterface; use FireflyIII\Helpers\Report\ReportHelperInterface; @@ -24,7 +23,6 @@ use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI; -use FireflyIII\Repositories\Account\AccountTaskerInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use Illuminate\Support\Collection; @@ -41,8 +39,6 @@ use View; class ReportController extends Controller { - /** @var AccountTaskerInterface */ - protected $accountTasker; /** @var BalanceReportHelperInterface */ protected $balanceHelper; @@ -235,7 +231,6 @@ class ReportController extends Controller private function createRepositories() { $this->helper = app(ReportHelperInterface::class); - $this->accountTasker = app(AccountTaskerInterface::class); $this->budgetHelper = app(BudgetReportHelperInterface::class); $this->balanceHelper = app(BalanceReportHelperInterface::class); } @@ -254,14 +249,13 @@ class ReportController extends Controller $expenseTopLength = 8; // get report stuff! - $accountReport = $this->accountTasker->getAccountReport($start, $end, $accounts); - $incomes = $this->helper->getIncomeReport($start, $end, $accounts); - $expenses = $this->helper->getExpenseReport($start, $end, $accounts); - $budgets = $this->budgetHelper->getBudgetReport($start, $end, $accounts); - $categories = $this->helper->getCategoryReport($start, $end, $accounts); - $balance = $this->balanceHelper->getBalanceReport($start, $end, $accounts); - $bills = $this->helper->getBillReport($start, $end, $accounts); - $tags = $this->helper->tagReport($start, $end, $accounts); + $incomes = $this->helper->getIncomeReport($start, $end, $accounts); + $expenses = $this->helper->getExpenseReport($start, $end, $accounts); + $budgets = $this->budgetHelper->getBudgetReport($start, $end, $accounts); + $categories = $this->helper->getCategoryReport($start, $end, $accounts); + $balance = $this->balanceHelper->getBalanceReport($start, $end, $accounts); + $bills = $this->helper->getBillReport($start, $end, $accounts); + $tags = $this->helper->tagReport($start, $end, $accounts); // and some id's, joined: $accountIds = join(',', $accounts->pluck('id')->toArray()); @@ -271,7 +265,7 @@ class ReportController extends Controller 'reports.default.month', compact( 'start', 'end', 'reportType', - 'accountReport', 'tags', + 'tags', 'incomes', 'incomeTopLength', 'expenses', 'expenseTopLength', 'budgets', 'balance', @@ -296,12 +290,11 @@ class ReportController extends Controller $incomeTopLength = 8; $expenseTopLength = 8; // list of users stuff: - $budgets = app(BudgetRepositoryInterface::class)->getActiveBudgets(); - $categories = app(CategoryRepositoryInterface::class)->getCategories(); - $accountReport = $this->accountTasker->getAccountReport($start, $end, $accounts); - $incomes = $this->helper->getIncomeReport($start, $end, $accounts); - $expenses = $this->helper->getExpenseReport($start, $end, $accounts); - $tags = $this->helper->tagReport($start, $end, $accounts); + $budgets = app(BudgetRepositoryInterface::class)->getActiveBudgets(); + $categories = app(CategoryRepositoryInterface::class)->getCategories(); + $incomes = $this->helper->getIncomeReport($start, $end, $accounts); + $expenses = $this->helper->getExpenseReport($start, $end, $accounts); + $tags = $this->helper->tagReport($start, $end, $accounts); // and some id's, joined: $accountIds = []; @@ -314,7 +307,8 @@ class ReportController extends Controller return view( 'reports.default.multi-year', compact( - 'budgets', 'accounts', 'categories', 'start', 'end', 'accountIds', 'reportType', 'accountReport', 'incomes', 'expenses', + 'budgets', 'accounts', 'categories', 'start', 'end', 'accountIds', 'reportType', + 'incomes', 'expenses', 'incomeTopLength', 'expenseTopLength', 'tags' ) ); @@ -333,11 +327,10 @@ class ReportController extends Controller $incomeTopLength = 8; $expenseTopLength = 8; - $accountReport = $this->accountTasker->getAccountReport($start, $end, $accounts); - $incomes = $this->helper->getIncomeReport($start, $end, $accounts); - $expenses = $this->helper->getExpenseReport($start, $end, $accounts); - $tags = $this->helper->tagReport($start, $end, $accounts); - $budgets = $this->budgetHelper->budgetYearOverview($start, $end, $accounts); + $incomes = $this->helper->getIncomeReport($start, $end, $accounts); + $expenses = $this->helper->getExpenseReport($start, $end, $accounts); + $tags = $this->helper->tagReport($start, $end, $accounts); + $budgets = $this->budgetHelper->budgetYearOverview($start, $end, $accounts); Session::flash('gaEventCategory', 'report'); Session::flash('gaEventAction', 'year'); @@ -354,7 +347,7 @@ class ReportController extends Controller return view( 'reports.default.year', compact( - 'start', 'accountReport', 'incomes', 'reportType', 'accountIds', 'end', + 'start', 'incomes', 'reportType', 'accountIds', 'end', 'expenses', 'incomeTopLength', 'expenseTopLength', 'tags', 'budgets' ) ); diff --git a/public/css/firefly.css b/public/css/firefly.css index a33f04a936..354ea0b15b 100644 --- a/public/css/firefly.css +++ b/public/css/firefly.css @@ -73,4 +73,9 @@ body.waiting * { .bootstrap-tagsinput { margin-bottom: 10px; width: 100%; +} + +.loading { + background:url('/images/loading-small.gif') no-repeat center center; + min-height:30px; } \ No newline at end of file diff --git a/public/images/loading-small.gif b/public/images/loading-small.gif new file mode 100644 index 0000000000..5c4758cc12 Binary files /dev/null and b/public/images/loading-small.gif differ diff --git a/public/js/ff/reports/default/all.js b/public/js/ff/reports/default/all.js index 30810842eb..e92203fee9 100644 --- a/public/js/ff/reports/default/all.js +++ b/public/js/ff/reports/default/all.js @@ -17,8 +17,26 @@ $(function () { // find the little info buttons and respond to them. $('.firefly-info-button').click(clickInfoButton); + // load the account report, which this report shows: + loadAccountReport(); + }); +function loadAccountReport() { + "use strict"; + $.get(accountReportUrl).done(placeAccountReport).fail(failAccountReport); +} + +function placeAccountReport(data) { + "use strict"; + $('#accountReport').removeClass('loading').html(data); +} + +function failAccountReport(data) { + "use strict"; + $('#accountReport').removeClass('loading').addClass('general-chart-error'); +} + function clickInfoButton(e) { "use strict"; // find all data tags, regardless of what they are: diff --git a/resources/views/reports/default/month.twig b/resources/views/reports/default/month.twig index 6e34e689b1..69f1642d41 100644 --- a/resources/views/reports/default/month.twig +++ b/resources/views/reports/default/month.twig @@ -20,8 +20,7 @@