diff --git a/app/Http/Controllers/Account/CreateController.php b/app/Http/Controllers/Account/CreateController.php index 4112b660ee..242e96d69f 100644 --- a/app/Http/Controllers/Account/CreateController.php +++ b/app/Http/Controllers/Account/CreateController.php @@ -63,32 +63,19 @@ class CreateController extends Controller /** * Create a new account. * - * @param Request $request - * @param string|null $what + * @param Request $request + * @param string|null $objectType * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function create(Request $request, string $what = null) + public function create(Request $request, string $objectType = null) { - $what = $what ?? 'asset'; + $objectType = $objectType ?? 'asset'; $defaultCurrency = app('amount')->getDefaultCurrency(); - $subTitleIcon = config('firefly.subIconsByIdentifier.' . $what); - $subTitle = (string)trans('firefly.make_new_' . $what . '_account'); - $roles = []; - foreach (config('firefly.accountRoles') as $role) { - $roles[$role] = (string)trans('firefly.account_role_' . $role); - } - - // types of liability: - $debt = $this->repository->getAccountTypeByType(AccountType::DEBT); - $loan = $this->repository->getAccountTypeByType(AccountType::LOAN); - $mortgage = $this->repository->getAccountTypeByType(AccountType::MORTGAGE); - $liabilityTypes = [ - $debt->id => (string)trans('firefly.account_type_' . AccountType::DEBT), - $loan->id => (string)trans('firefly.account_type_' . AccountType::LOAN), - $mortgage->id => (string)trans('firefly.account_type_' . AccountType::MORTGAGE), - ]; - asort($liabilityTypes); + $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $objectType)); + $subTitle = (string)trans(sprintf('firefly.make_new_%s_account', $objectType)); + $roles = $this->getRoles(); + $liabilityTypes = $this->getLiabilityTypes(); // interest calculation periods: $interestPeriods = [ @@ -111,12 +98,11 @@ class CreateController extends Controller $this->rememberPreviousUri('accounts.create.uri'); } $request->session()->forget('accounts.create.fromStore'); - Log::channel('audit')->info('Create new account.'); + Log::channel('audit')->info('Creating new account.'); - return view('accounts.create', compact('subTitleIcon', 'what', 'interestPeriods', 'subTitle', 'roles', 'liabilityTypes')); + return view('accounts.create', compact('subTitleIcon', 'objectType', 'interestPeriods', 'subTitle', 'roles', 'liabilityTypes')); } - /** * Store the new account. * @@ -132,7 +118,7 @@ class CreateController extends Controller $request->session()->flash('success', (string)trans('firefly.stored_new_account', ['name' => $account->name])); app('preferences')->mark(); - Log::channel('audit')->info('Store new account.', $data); + Log::channel('audit')->info('Stored new account.', $data); // update preferences if necessary: $frontPage = app('preferences')->get('frontPageAccounts', [])->data; @@ -148,10 +134,46 @@ class CreateController extends Controller // set value so create routine will not overwrite URL: $request->session()->put('accounts.create.fromStore', true); - $redirect = redirect(route('accounts.create', [$request->input('what')]))->withInput(); + $redirect = redirect(route('accounts.create', [$request->input('objectType')]))->withInput(); } return $redirect; } + /** + * @codeCoverageIgnore + * @return array + */ + protected function getRoles(): array + { + $roles = []; + foreach (config('firefly.accountRoles') as $role) { + $roles[$role] = (string)trans(sprintf('firefly.account_role_%s', $role)); + } + + return $roles; + } + + /** + * @codeCoverageIgnore + * @return array + */ + protected function getLiabilityTypes(): array + { + + // types of liability: + $debt = $this->repository->getAccountTypeByType(AccountType::DEBT); + $loan = $this->repository->getAccountTypeByType(AccountType::LOAN); + $mortgage = $this->repository->getAccountTypeByType(AccountType::MORTGAGE); + /** @noinspection NullPointerExceptionInspection */ + $liabilityTypes = [ + $debt->id => (string)trans(sprintf('firefly.account_type_%s', AccountType::DEBT)), + $loan->id => (string)trans(sprintf('firefly.account_type_%s', AccountType::LOAN)), + $mortgage->id => (string)trans(sprintf('firefly.account_type_%s', AccountType::MORTGAGE)), + ]; + asort($liabilityTypes); + + return $liabilityTypes; + } + } diff --git a/app/Http/Controllers/Account/EditController.php b/app/Http/Controllers/Account/EditController.php index a011dd553c..d2927ab977 100644 --- a/app/Http/Controllers/Account/EditController.php +++ b/app/Http/Controllers/Account/EditController.php @@ -67,8 +67,8 @@ class EditController extends Controller /** * Edit account overview. * - * @param Request $request - * @param Account $account + * @param Request $request + * @param Account $account * @param AccountRepositoryInterface $repository * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View @@ -126,21 +126,21 @@ class EditController extends Controller // code to handle active-checkboxes $hasOldInput = null !== $request->old('_token'); $preFilled = [ - 'account_number' => $repository->getMetaValue($account, 'accountNumber'), - 'account_role' => $repository->getMetaValue($account, 'accountRole'), - 'cc_type' => $repository->getMetaValue($account, 'ccType'), - 'cc_monthly_payment_date' => $repository->getMetaValue($account, 'ccMonthlyPaymentDate'), - 'BIC' => $repository->getMetaValue($account, 'BIC'), - 'opening_balance_date' => $openingBalanceDate, - 'liability_type_id' => $account->account_type_id, - 'opening_balance' => $openingBalanceAmount, - 'virtual_balance' => $account->virtual_balance, - 'currency_id' => $currency->id, - 'include_net_worth' => $includeNetWorth, - 'interest' => $repository->getMetaValue($account, 'interest'), - 'interest_period' => $repository->getMetaValue($account, 'interest_period'), - 'notes' => $this->repository->getNoteText($account), - 'active' => $hasOldInput ? (bool)$request->old('active') : $account->active, + 'account_number' => $repository->getMetaValue($account, 'account_number'), + 'account_role' => $repository->getMetaValue($account, 'account_role'), + 'cc_type' => $repository->getMetaValue($account, 'cc_type'), + 'cc_monthly_payment_date' => $repository->getMetaValue($account, 'cc_monthly_payment_date'), + 'BIC' => $repository->getMetaValue($account, 'BIC'), + 'opening_balance_date' => $openingBalanceDate, + 'liability_type_id' => $account->account_type_id, + 'opening_balance' => $openingBalanceAmount, + 'virtual_balance' => $account->virtual_balance, + 'currency_id' => $currency->id, + 'include_net_worth' => $includeNetWorth, + 'interest' => $repository->getMetaValue($account, 'interest'), + 'interest_period' => $repository->getMetaValue($account, 'interest_period'), + 'notes' => $this->repository->getNoteText($account), + 'active' => $hasOldInput ? (bool)$request->old('active') : $account->active, ]; $request->session()->flash('preFilled', $preFilled); @@ -155,7 +155,7 @@ class EditController extends Controller * Update the account. * * @param AccountFormRequest $request - * @param Account $account + * @param Account $account * * @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ diff --git a/app/Http/Controllers/Json/IntroController.php b/app/Http/Controllers/Json/IntroController.php index 76a9d4c564..acd0dcb637 100644 --- a/app/Http/Controllers/Json/IntroController.php +++ b/app/Http/Controllers/Json/IntroController.php @@ -135,7 +135,7 @@ class IntroController Log::debug(sprintf('Going to mark the following route as done: %s with special "%s" (%s)', $route, $specialPage, $key)); app('preferences')->set($key, true); - return response()->json(['result' => sprintf('Reported demo watched for route "%s".', $route)]); + return response()->json(['result' => sprintf('Reported demo watched for route "%s" (%s): %s.', $route, $specialPage, $key)]); } } diff --git a/app/Http/Requests/AccountFormRequest.php b/app/Http/Requests/AccountFormRequest.php index 404445081d..95fe5c0992 100644 --- a/app/Http/Requests/AccountFormRequest.php +++ b/app/Http/Requests/AccountFormRequest.php @@ -51,7 +51,7 @@ class AccountFormRequest extends Request $data = [ 'name' => $this->string('name'), 'active' => $this->boolean('active'), - 'account_type' => $this->string('what'), + 'account_type' => $this->string('objectType'), 'account_type_id' => 0, 'currency_id' => $this->integer('currency_id'), 'virtual_balance' => $this->string('virtual_balance'), diff --git a/app/Support/Http/Controllers/RequestInformation.php b/app/Support/Http/Controllers/RequestInformation.php index bfff5dddbc..db94115e7a 100644 --- a/app/Support/Http/Controllers/RequestInformation.php +++ b/app/Support/Http/Controllers/RequestInformation.php @@ -168,17 +168,17 @@ trait RequestInformation $specificPage = $this->getSpecificPageName(); // indicator if user has seen the help for this page ( + special page): - $key = 'shown_demo_' . $page . $specificPage; + $key = sprintf('shown_demo_%s%s', $page, $specificPage); // is there an intro for this route? - $intro = config('intro.' . $page) ?? []; - $specialIntro = config('intro.' . $page . $specificPage) ?? []; + $intro = config(sprintf('intro.%s', $page)) ?? []; + $specialIntro = config(sprintf('intro.%s%s', $page, $specificPage)) ?? []; // some routes have a "what" parameter, which indicates a special page: $shownDemo = true; // both must be array and either must be > 0 if (count($intro) > 0 || count($specialIntro) > 0) { $shownDemo = app('preferences')->get($key, false)->data; - Log::debug(sprintf('Check if user has already seen intro with key "%s". Result is %d', $key, $shownDemo)); + Log::debug(sprintf('Check if user has already seen intro with key "%s". Result is %s', $key, var_export($shownDemo, true))); } if (!is_bool($shownDemo)) { $shownDemo = true; diff --git a/config/intro.php b/config/intro.php index 26fe2542d2..563d92b1b6 100644 --- a/config/intro.php +++ b/config/intro.php @@ -41,9 +41,9 @@ return [ ], // extra text for asset account creation. 'accounts_create_asset' => [ - 'opening_balance' => ['element' => '#ffInput_openingBalance'], + 'opening_balance' => ['element' => '#ffInput_opening_balance'], 'currency' => ['element' => '#ffInput_currency_id'], - 'virtual' => ['element' => '#ffInput_virtualBalance'], + 'virtual' => ['element' => '#ffInput_virtual_balance'], ], // budgets: index diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 174a14c755..5cadee6a94 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -952,7 +952,7 @@ return [ 'errors' => 'Errors', 'debt_start_date' => 'Start date of debt', 'debt_start_amount' => 'Start amount of debt', - 'debt_start_amount_help' => 'Please enter the original amount of this liability as a positive number. You may also enter the current amount. Make sure to edit the date below to match.', + 'debt_start_amount_help' => 'If you owe an amount its best to enter a negative amount, because it influences your net worth. If you\'re owed an amount the same applies. Check out the help pages for more information.', 'store_new_liabilities_account' => 'Store new liability', 'edit_liabilities_account' => 'Edit liability ":name"', diff --git a/resources/views/v1/accounts/create.twig b/resources/views/v1/accounts/create.twig index 2e4f0f384a..7c24565854 100644 --- a/resources/views/v1/accounts/create.twig +++ b/resources/views/v1/accounts/create.twig @@ -1,12 +1,12 @@ {% extends "./layout/default" %} {% block breadcrumbs %} - {{ Breadcrumbs.render(Route.getCurrentRoute.getName, what) }} + {{ Breadcrumbs.render(Route.getCurrentRoute.getName, objectType) }} {% endblock %} {% block content %}