From 40083bf2b48b1e4c6c75448e1ecabbb2f747a730 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 3 Dec 2023 07:44:53 +0100 Subject: [PATCH] Fix https://github.com/firefly-iii/firefly-iii/issues/8022 --- app/Api/V2/Controllers/Chart/AccountController.php | 11 +++++++++++ app/Api/V2/Request/Chart/DashboardChartRequest.php | 14 ++++++++------ config/firefly.php | 3 +++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/Api/V2/Controllers/Chart/AccountController.php b/app/Api/V2/Controllers/Chart/AccountController.php index 831f9242f9..f02c58834a 100644 --- a/app/Api/V2/Controllers/Chart/AccountController.php +++ b/app/Api/V2/Controllers/Chart/AccountController.php @@ -116,6 +116,17 @@ class AccountController extends Controller $accounts = $this->repository->getAccountsById($frontPage->data); } + // both options are overruled by "preselected" + if('all' === $params['preselected']) { + $accounts = $this->repository->getAccountsByType([AccountType::ASSET, AccountType::DEFAULT, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); + } + if('assets' === $params['preselected']) { + $accounts = $this->repository->getAccountsByType([AccountType::ASSET, AccountType::DEFAULT]); + } + if('liabilities' === $params['preselected']) { + $accounts = $this->repository->getAccountsByType([AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); + } + /** @var Account $account */ foreach ($accounts as $account) { $currency = $this->repository->getAccountCurrency($account); diff --git a/app/Api/V2/Request/Chart/DashboardChartRequest.php b/app/Api/V2/Request/Chart/DashboardChartRequest.php index 60c0812b3c..3bed5cee6c 100644 --- a/app/Api/V2/Request/Chart/DashboardChartRequest.php +++ b/app/Api/V2/Request/Chart/DashboardChartRequest.php @@ -30,9 +30,9 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** -* Class DashboardChartRequest + * Class DashboardChartRequest */ -class DashboardChartRequest extends FormRequest +class DashboardChartRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; @@ -46,7 +46,8 @@ class DashboardChartRequest extends FormRequest public function getAll(): array { return [ - 'accounts' => $this->getAccountList(), + 'accounts' => $this->getAccountList(), + 'preselected' => $this->convertString('preselected'), ]; } @@ -58,9 +59,10 @@ class DashboardChartRequest extends FormRequest public function rules(): array { return [ - 'start' => 'required|date|after:1900-01-01|before:2099-12-31', - 'end' => 'required|date|after_or_equal:start|before:2099-12-31|after:1900-01-01', - 'accounts.*' => 'exists:accounts,id', + 'start' => 'required|date|after:1900-01-01|before:2099-12-31', + 'end' => 'required|date|after_or_equal:start|before:2099-12-31|after:1900-01-01', + 'preselected' => sprintf('in:%s', join(',', config('firefly.preselected_accounts'))), + 'accounts.*' => 'exists:accounts,id', ]; } diff --git a/config/firefly.php b/config/firefly.php index c785343516..53731b867d 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -912,4 +912,7 @@ return [ // only used in v1 'allowed_sort_parameters' => ['order', 'name', 'iban'], + + // preselected account lists possibilities: + 'preselected_accounts' => ['all','assets','liabilities'], ];