diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index b3b007cb9e..e68ee7f8bd 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -34,7 +34,6 @@ use Navigation; use Preferences; use Session; use Steam; -use URL; use View; /** @@ -86,7 +85,7 @@ class AccountController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('accounts.create.fromStore') !== true) { - Session::put('accounts.create.url', URL::previous()); + $this->rememberPreviousUri('accounts.create.uri'); } Session::forget('accounts.create.fromStore'); Session::flash('gaEventCategory', 'accounts'); @@ -110,7 +109,7 @@ class AccountController extends Controller unset($accountList[$account->id]); // put previous url in session - Session::put('accounts.delete.url', URL::previous()); + $this->rememberPreviousUri('accounts.delete.uri'); Session::flash('gaEventCategory', 'accounts'); Session::flash('gaEventAction', 'delete-' . $typeName); @@ -126,24 +125,17 @@ class AccountController extends Controller */ public function destroy(Request $request, ARI $repository, Account $account) { - $type = $account->accountType->type; - $typeName = config('firefly.shortNamesByFullName.' . $type); - $name = $account->name; - $accountId = $account->id; - $moveTo = $repository->find(intval($request->get('move_account_before_delete'))); + $type = $account->accountType->type; + $typeName = config('firefly.shortNamesByFullName.' . $type); + $name = $account->name; + $moveTo = $repository->find(intval($request->get('move_account_before_delete'))); $repository->destroy($account, $moveTo); Session::flash('success', strval(trans('firefly.' . $typeName . '_deleted', ['name' => $name]))); Preferences::mark(); - $uri = session('accounts.delete.url'); - if (!(strpos($uri, sprintf('accounts/show/%s', $accountId)) === false)) { - // uri would point back to account - $uri = route('accounts.index', [$typeName]); - } - - return redirect($uri); + return redirect($this->getPreviousUri('accounts.delete.uri')); } /** @@ -168,7 +160,7 @@ class AccountController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('accounts.edit.fromUpdate') !== true) { - Session::put('accounts.edit.url', URL::previous()); + $this->rememberPreviousUri('accounts.edit.uri'); } Session::forget('accounts.edit.fromUpdate'); @@ -360,7 +352,7 @@ class AccountController extends Controller } // redirect to previous URL. - return redirect(session('accounts.create.url')); + return redirect($this->getPreviousUri('accounts.create.uri')); } /** @@ -386,7 +378,7 @@ class AccountController extends Controller } // redirect to previous URL. - return redirect(session('accounts.edit.url')); + return redirect($this->getPreviousUri('accounts.edit.uri')); } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 9fcb8b9a99..818c12c2f6 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -20,7 +20,6 @@ use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\User; use Preferences; use Session; -use URL; use View; /** @@ -57,7 +56,7 @@ class UserController extends Controller { // put previous url in session if not redirect from store (not "return_to_edit"). if (session('users.edit.fromUpdate') !== true) { - Session::put('users.edit.url', URL::previous()); + $this->rememberPreviousUri('users.edit.uri'); } Session::forget('users.edit.fromUpdate'); @@ -156,7 +155,7 @@ class UserController extends Controller } // redirect to previous URL. - return redirect(session('users.edit.url')); + return redirect($this->getPreviousUri('users.edit.uri')); } diff --git a/app/Http/Controllers/AttachmentController.php b/app/Http/Controllers/AttachmentController.php index 2b154defea..a6532309f1 100644 --- a/app/Http/Controllers/AttachmentController.php +++ b/app/Http/Controllers/AttachmentController.php @@ -22,7 +22,6 @@ use Illuminate\Http\Response as LaravelResponse; use Preferences; use Response; use Session; -use URL; use View; /** @@ -63,7 +62,7 @@ class AttachmentController extends Controller $subTitle = trans('firefly.delete_attachment', ['name' => $attachment->filename]); // put previous url in session - Session::put('attachments.delete.url', URL::previous()); + $this->rememberPreviousUri('attachments.delete.uri'); Session::flash('gaEventCategory', 'attachments'); Session::flash('gaEventAction', 'delete-attachment'); @@ -85,7 +84,7 @@ class AttachmentController extends Controller Session::flash('success', strval(trans('firefly.attachment_deleted', ['name' => $name]))); Preferences::mark(); - return redirect(session('attachments.delete.url')); + return redirect($this->getPreviousUri('attachments.delete.uri')); } /** @@ -131,7 +130,7 @@ class AttachmentController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('attachments.edit.fromUpdate') !== true) { - Session::put('attachments.edit.url', URL::previous()); + $this->rememberPreviousUri('attachments.edit.uri'); } Session::forget('attachments.edit.fromUpdate'); @@ -181,7 +180,7 @@ class AttachmentController extends Controller } // redirect to previous URL. - return redirect(session('attachments.edit.url')); + return redirect($this->getPreviousUri('attachments.edit.uri')); } diff --git a/app/Http/Controllers/BillController.php b/app/Http/Controllers/BillController.php index 0642dd260b..916cc7c406 100644 --- a/app/Http/Controllers/BillController.php +++ b/app/Http/Controllers/BillController.php @@ -66,7 +66,7 @@ class BillController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('bills.create.fromStore') !== true) { - Session::put('bills.create.url', URL::previous()); + $this->rememberPreviousUri('bills.create.uri'); } Session::forget('bills.create.fromStore'); Session::flash('gaEventCategory', 'bills'); @@ -83,7 +83,7 @@ class BillController extends Controller public function delete(Bill $bill) { // put previous url in session - Session::put('bills.delete.url', URL::previous()); + $this->rememberPreviousUri('bills.delete.uri'); Session::flash('gaEventCategory', 'bills'); Session::flash('gaEventAction', 'delete'); $subTitle = trans('firefly.delete_bill', ['name' => $bill->name]); @@ -99,20 +99,13 @@ class BillController extends Controller */ public function destroy(BillRepositoryInterface $repository, Bill $bill) { - $name = $bill->name; - $billId = $bill->id; + $name = $bill->name; $repository->destroy($bill); Session::flash('success', strval(trans('firefly.deleted_bill', ['name' => $name]))); Preferences::mark(); - $uri = session('bills.delete.url'); - if (!(strpos($uri, sprintf('bills/show/%s', $billId)) === false)) { - // uri would point back to bill - $uri = route('bills.index'); - } - - return redirect($uri); + return redirect($this->getPreviousUri('bills.delete.uri')); } /** @@ -130,7 +123,7 @@ class BillController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('bills.edit.fromUpdate') !== true) { - Session::put('bills.edit.url', URL::previous()); + $this->rememberPreviousUri('bills.edit.uri'); } Session::forget('bills.edit.fromUpdate'); Session::flash('gaEventCategory', 'bills'); @@ -249,7 +242,7 @@ class BillController extends Controller } // redirect to previous URL. - return redirect(session('bills.create.url')); + return redirect($this->getPreviousUri('bills.create.uri')); } @@ -275,8 +268,7 @@ class BillController extends Controller return redirect(route('bills.edit', [$bill->id]))->withInput(['return_to_edit' => 1]); } - // redirect to previous URL. - return redirect(session('bills.edit.url')); + return redirect($this->getPreviousUri('bills.edit.uri')); } diff --git a/app/Http/Controllers/BudgetController.php b/app/Http/Controllers/BudgetController.php index 0d8ce65937..1f2d510dcb 100644 --- a/app/Http/Controllers/BudgetController.php +++ b/app/Http/Controllers/BudgetController.php @@ -30,7 +30,6 @@ use Illuminate\Support\Collection; use Preferences; use Response; use Session; -use URL; use View; /** @@ -94,7 +93,7 @@ class BudgetController extends Controller { // put previous url in session if not redirect from store (not "create another"). if (session('budgets.create.fromStore') !== true) { - Session::put('budgets.create.url', URL::previous()); + $this->rememberPreviousUri('budgets.create.uri'); } Session::forget('budgets.create.fromStore'); Session::flash('gaEventCategory', 'budgets'); @@ -114,7 +113,7 @@ class BudgetController extends Controller $subTitle = trans('firefly.delete_budget', ['name' => $budget->name]); // put previous url in session - Session::put('budgets.delete.url', URL::previous()); + $this->rememberPreviousUri('budgets.delete.uri'); Session::flash('gaEventCategory', 'budgets'); Session::flash('gaEventAction', 'delete'); @@ -129,21 +128,12 @@ class BudgetController extends Controller public function destroy(Budget $budget) { - $name = $budget->name; - $budgetId = $budget->id; + $name = $budget->name; $this->repository->destroy($budget); - - Session::flash('success', strval(trans('firefly.deleted_budget', ['name' => e($name)]))); Preferences::mark(); - $uri = session('budgets.delete.url'); - if (!(strpos($uri, sprintf('budgets/show/%s', $budgetId)) === false)) { - // uri would point back to budget - $uri = route('budgets.index'); - } - - return redirect($uri); + return redirect($this->getPreviousUri('budgets.delete.uri')); } /** @@ -157,7 +147,7 @@ class BudgetController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('budgets.edit.fromUpdate') !== true) { - Session::put('budgets.edit.url', URL::previous()); + $this->rememberPreviousUri('budgets.edit.uri'); } Session::forget('budgets.edit.fromUpdate'); Session::flash('gaEventCategory', 'budgets'); @@ -278,9 +268,9 @@ class BudgetController extends Controller throw new FireflyException('This budget limit is not part of this budget.'); } - $page = intval($request->get('page')) == 0 ? 1 : intval($request->get('page')); - $pageSize = intval(Preferences::get('transactionPageSize', 50)->data); - $subTitle = trans( + $page = intval($request->get('page')) == 0 ? 1 : intval($request->get('page')); + $pageSize = intval(Preferences::get('transactionPageSize', 50)->data); + $subTitle = trans( 'firefly.budget_in_period', [ 'name' => $budget->name, 'start' => $budgetLimit->start_date->formatLocalized($this->monthAndDayFormat), @@ -325,9 +315,7 @@ class BudgetController extends Controller return redirect(route('budgets.create'))->withInput(); } - // redirect to previous URL. - return redirect(session('budgets.create.url')); - + return redirect($this->getPreviousUri('budgets.create.uri')); } /** @@ -351,9 +339,7 @@ class BudgetController extends Controller return redirect(route('budgets.edit', [$budget->id]))->withInput(['return_to_edit' => 1]); } - // redirect to previous URL. - return redirect(session('budgets.edit.url')); - + return redirect($this->getPreviousUri('budgets.edit.uri')); } /** diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 2a52505818..e74786199c 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -26,7 +26,6 @@ use Illuminate\Support\Collection; use Navigation; use Preferences; use Session; -use URL; use View; /** @@ -61,7 +60,7 @@ class CategoryController extends Controller public function create() { if (session('categories.create.fromStore') !== true) { - Session::put('categories.create.url', URL::previous()); + $this->rememberPreviousUri('categories.create.uri'); } Session::forget('categories.create.fromStore'); Session::flash('gaEventCategory', 'categories'); @@ -81,7 +80,7 @@ class CategoryController extends Controller $subTitle = trans('firefly.delete_category', ['name' => $category->name]); // put previous url in session - Session::put('categories.delete.url', URL::previous()); + $this->rememberPreviousUri('categories.delete.uri'); Session::flash('gaEventCategory', 'categories'); Session::flash('gaEventAction', 'delete'); @@ -98,20 +97,13 @@ class CategoryController extends Controller public function destroy(CategoryRepositoryInterface $repository, Category $category) { - $name = $category->name; - $categoryId = $category->id; + $name = $category->name; $repository->destroy($category); Session::flash('success', strval(trans('firefly.deleted_category', ['name' => e($name)]))); Preferences::mark(); - $uri = session('categories.delete.url'); - if (!(strpos($uri, sprintf('categories/show/%s', $categoryId)) === false)) { - // uri would point back to category - $uri = route('categories.index'); - } - - return redirect($uri); + return redirect($this->getPreviousUri('categories.delete.uri')); } /** @@ -125,7 +117,7 @@ class CategoryController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('categories.edit.fromUpdate') !== true) { - Session::put('categories.edit.url', URL::previous()); + $this->rememberPreviousUri('categories.edit.uri'); } Session::forget('categories.edit.fromUpdate'); Session::flash('gaEventCategory', 'categories'); @@ -311,9 +303,7 @@ class CategoryController extends Controller return redirect(route('categories.edit', [$category->id])); } - // redirect to previous URL. - return redirect(session('categories.edit.url')); - + return redirect($this->getPreviousUri('categories.edit.uri')); } /** diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 0904e4bbbc..d2233d75fb 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -23,6 +23,7 @@ use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; use Session; +use URL; use View; /** @@ -56,7 +57,6 @@ class Controller extends BaseController View::share('DEMO_PASSWORD', env('DEMO_PASSWORD', '')); // translations: - $this->middleware( function ($request, $next) { $this->monthFormat = (string)trans('config.month'); @@ -69,6 +69,32 @@ class Controller extends BaseController } + /** + * Functionality: + * + * - If the $identifier contains the word "delete" then a remembered uri with the text "/show/" in it will not be returned but instead the index (/) + * will be returned. + * - If the remembered uri contains "javascript/" the remembered uri will not be returned but instead the index (/) will be returned. + * + * @param string $identifier + * + * @return string + */ + protected function getPreviousUri(string $identifier): string + { + $uri = strval(session($identifier)); + // 1 (see above): + if (!(strpos($identifier, 'delete') === false) && !(strpos($uri, '/show/') === false)) { + $uri = route('index'); + } + + // 2 (see above) + if (!(strpos($uri, 'javascript') === false)) { + $uri = route('index'); + } + + return $uri; + } /** * @param TransactionJournal $journal @@ -102,4 +128,12 @@ class Controller extends BaseController return redirect(route('index')); } + /** + * @param string $identifier + */ + protected function rememberPreviousUri(string $identifier) + { + Session::put($identifier, URL::previous()); + } + } diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php index 2b01c3043c..01cb6abd3e 100644 --- a/app/Http/Controllers/CurrencyController.php +++ b/app/Http/Controllers/CurrencyController.php @@ -20,7 +20,6 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use Log; use Preferences; use Session; -use URL; use View; /** @@ -60,7 +59,7 @@ class CurrencyController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('currencies.create.fromStore') !== true) { - Session::put('currencies.create.url', URL::previous()); + $this->rememberPreviousUri('currencies.create.uri'); } Session::forget('currencies.create.fromStore'); Session::flash('gaEventCategory', 'currency'); @@ -105,7 +104,7 @@ class CurrencyController extends Controller // put previous url in session - Session::put('currencies.delete.url', URL::previous()); + $this->rememberPreviousUri('currencies.delete.uri'); Session::flash('gaEventCategory', 'currency'); Session::flash('gaEventAction', 'delete'); $subTitle = trans('form.delete_currency', ['name' => $currency->name]); @@ -131,7 +130,7 @@ class CurrencyController extends Controller $repository->destroy($currency); Session::flash('success', trans('firefly.deleted_currency', ['name' => $currency->name])); - return redirect(session('currencies.delete.url')); + return redirect($this->getPreviousUri('currencies.delete.uri')); } /** @@ -147,7 +146,7 @@ class CurrencyController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('currencies.edit.fromUpdate') !== true) { - Session::put('currencies.edit.url', URL::previous()); + $this->rememberPreviousUri('currencies.edit.uri'); } Session::forget('currencies.edit.fromUpdate'); Session::flash('gaEventCategory', 'currency'); @@ -188,7 +187,7 @@ class CurrencyController extends Controller if (!auth()->user()->hasRole('owner')) { Log::error('User ' . auth()->user()->id . ' is not admin, but tried to store a currency.'); - return redirect(session('currencies.create.url')); + return redirect($this->getPreviousUri('currencies.create.uri')); } $data = $request->getCurrencyData(); @@ -201,10 +200,7 @@ class CurrencyController extends Controller return redirect(route('currencies.create'))->withInput(); } - // redirect to previous URL. - return redirect(session('currencies.create.url')); - - + return redirect($this->getPreviousUri('currencies.create.uri')); } /** @@ -230,8 +226,6 @@ class CurrencyController extends Controller return redirect(route('currencies.edit', [$currency->id])); } - // redirect to previous URL. - return redirect(session('currencies.edit.url')); - + return redirect($this->getPreviousUri('currencies.edit.uri')); } } diff --git a/app/Http/Controllers/PiggyBankController.php b/app/Http/Controllers/PiggyBankController.php index 47357c5bc0..b74905c682 100644 --- a/app/Http/Controllers/PiggyBankController.php +++ b/app/Http/Controllers/PiggyBankController.php @@ -27,7 +27,6 @@ use Preferences; use Response; use Session; use Steam; -use URL; use View; /** @@ -116,7 +115,7 @@ class PiggyBankController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('piggy-banks.create.fromStore') !== true) { - Session::put('piggy-banks.create.url', URL::previous()); + $this->rememberPreviousUri('piggy-banks.create.uri'); } Session::forget('piggy-banks.create.fromStore'); Session::flash('gaEventCategory', 'piggy-banks'); @@ -135,7 +134,7 @@ class PiggyBankController extends Controller $subTitle = trans('firefly.delete_piggy_bank', ['name' => $piggyBank->name]); // put previous url in session - Session::put('piggy-banks.delete.url', URL::previous()); + $this->rememberPreviousUri('piggy-banks.delete.uri'); Session::flash('gaEventCategory', 'piggy-banks'); Session::flash('gaEventAction', 'delete'); @@ -152,16 +151,9 @@ class PiggyBankController extends Controller { Session::flash('success', strval(trans('firefly.deleted_piggy_bank', ['name' => e($piggyBank->name)]))); Preferences::mark(); - $piggyBankId = $piggyBank->id; $repository->destroy($piggyBank); - $uri = session('piggy-banks.delete.url'); - if (!(strpos($uri, sprintf('piggy-banks/show/%s', $piggyBankId)) === false)) { - // uri would point back to piggy bank - $uri = route('piggy-banks.index'); - } - - return redirect($uri); + return redirect($this->getPreviousUri('piggy-banks.delete.uri')); } /** @@ -197,7 +189,7 @@ class PiggyBankController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('piggy-banks.edit.fromUpdate') !== true) { - Session::put('piggy-banks.edit.url', URL::previous()); + $this->rememberPreviousUri('piggy-banks.edit.uri'); } Session::forget('piggy-banks.edit.fromUpdate'); @@ -404,9 +396,7 @@ class PiggyBankController extends Controller return redirect(route('piggy-banks.create'))->withInput(); } - - // redirect to previous URL. - return redirect(session('piggy-banks.create.url')); + return redirect($this->getPreviousUri('piggy-banks.edit.uri')); } /** @@ -430,12 +420,6 @@ class PiggyBankController extends Controller return redirect(route('piggy-banks.edit', [$piggyBank->id])); } - - // redirect to previous URL. - return redirect(session('piggy-banks.edit.url')); - - + return redirect($this->getPreviousUri('piggy-banks.edit.uri')); } - - } diff --git a/app/Http/Controllers/RuleController.php b/app/Http/Controllers/RuleController.php index 8e0e466933..2eee1da8a0 100644 --- a/app/Http/Controllers/RuleController.php +++ b/app/Http/Controllers/RuleController.php @@ -26,7 +26,6 @@ use Illuminate\Http\Request; use Preferences; use Response; use Session; -use URL; use View; /** @@ -88,7 +87,7 @@ class RuleController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('rules.create.fromStore') !== true) { - Session::put('rules.create.url', URL::previous()); + $this->rememberPreviousUri('rules.create.uri'); } Session::forget('rules.create.fromStore'); Session::flash('gaEventCategory', 'rules'); @@ -111,7 +110,7 @@ class RuleController extends Controller $subTitle = trans('firefly.delete_rule', ['title' => $rule->title]); // put previous url in session - Session::put('rules.delete.url', URL::previous()); + $this->rememberPreviousUri('rules.delete.uri'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'delete-rule'); @@ -135,8 +134,7 @@ class RuleController extends Controller Session::flash('success', trans('firefly.deleted_rule', ['title' => $title])); Preferences::mark(); - - return redirect(session('rules.delete.url')); + return redirect($this->getPreviousUri('rules.delete.uri')); } /** @@ -181,7 +179,7 @@ class RuleController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('rules.edit.fromUpdate') !== true) { - Session::put('rules.edit.url', URL::previous()); + $this->rememberPreviousUri('rules.edit.uri'); } Session::forget('rules.edit.fromUpdate'); Session::flash('gaEventCategory', 'rules'); @@ -263,9 +261,7 @@ class RuleController extends Controller return redirect(route('rules.create', [$ruleGroup]))->withInput(); } - // redirect to previous URL. - return redirect(session('rules.create.url')); - + return redirect($this->getPreviousUri('rules.create.uri')); } /** @@ -350,8 +346,7 @@ class RuleController extends Controller return redirect(route('rules.edit', [$rule->id]))->withInput(['return_to_edit' => 1]); } - // redirect to previous URL. - return redirect(session('rules.edit.url')); + return redirect($this->getPreviousUri('rules.edit.uri')); } private function createDefaultRule() diff --git a/app/Http/Controllers/RuleGroupController.php b/app/Http/Controllers/RuleGroupController.php index ee0cb84c26..e0bc8b7476 100644 --- a/app/Http/Controllers/RuleGroupController.php +++ b/app/Http/Controllers/RuleGroupController.php @@ -25,7 +25,6 @@ use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; use Illuminate\Http\Request; use Preferences; use Session; -use URL; use View; /** @@ -63,7 +62,7 @@ class RuleGroupController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('rule-groups.create.fromStore') !== true) { - Session::put('rule-groups.create.url', URL::previous()); + $this->rememberPreviousUri('rule-groups.create.uri'); } Session::forget('rule-groups.create.fromStore'); Session::flash('gaEventCategory', 'rules'); @@ -86,7 +85,7 @@ class RuleGroupController extends Controller unset($ruleGroupList[$ruleGroup->id]); // put previous url in session - Session::put('rule-groups.delete.url', URL::previous()); + $this->rememberPreviousUri('rule-groups.delete.uri'); Session::flash('gaEventCategory', 'rules'); Session::flash('gaEventAction', 'delete-rule-group'); @@ -112,8 +111,7 @@ class RuleGroupController extends Controller Session::flash('success', strval(trans('firefly.deleted_rule_group', ['title' => $title]))); Preferences::mark(); - - return redirect(session('rule-groups.delete.url')); + return redirect($this->getPreviousUri('rule-groups.delete.uri')); } /** @@ -141,7 +139,7 @@ class RuleGroupController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('rule-groups.edit.fromUpdate') !== true) { - Session::put('rule-groups.edit.url', URL::previous()); + $this->rememberPreviousUri('rule-groups.edit.uri'); } Session::forget('rule-groups.edit.fromUpdate'); Session::flash('gaEventCategory', 'rules'); @@ -225,8 +223,7 @@ class RuleGroupController extends Controller return redirect(route('rule-groups.create'))->withInput(); } - // redirect to previous URL. - return redirect(session('rule-groups.create.url')); + return redirect($this->getPreviousUri('rule-groups.create.uri')); } /** @@ -271,7 +268,7 @@ class RuleGroupController extends Controller } // redirect to previous URL. - return redirect(session('rule-groups.edit.url')); + return redirect($this->getPreviousUri('rule-groups.edit.uri')); } } diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php index 260adc97e3..bdb3160ea7 100644 --- a/app/Http/Controllers/TagController.php +++ b/app/Http/Controllers/TagController.php @@ -26,7 +26,6 @@ use Illuminate\Support\Collection; use Navigation; use Preferences; use Session; -use URL; use View; /** @@ -98,7 +97,7 @@ class TagController extends Controller } // put previous url in session if not redirect from store (not "create another"). if (session('tags.create.fromStore') !== true) { - Session::put('tags.create.url', URL::previous()); + $this->rememberPreviousUri('tags.create.uri'); } Session::forget('tags.create.fromStore'); Session::flash('gaEventCategory', 'tags'); @@ -117,7 +116,7 @@ class TagController extends Controller $subTitle = trans('breadcrumbs.delete_tag', ['tag' => e($tag->tag)]); // put previous url in session - Session::put('tags.delete.url', URL::previous()); + $this->rememberPreviousUri('tags.delete.uri'); Session::flash('gaEventCategory', 'tags'); Session::flash('gaEventAction', 'delete'); @@ -138,7 +137,7 @@ class TagController extends Controller Session::flash('success', strval(trans('firefly.deleted_tag', ['tag' => e($tagName)]))); Preferences::mark(); - return redirect(route('tags.index')); + return redirect($this->getPreviousUri('tags.delete.uri')); } /** @@ -174,7 +173,7 @@ class TagController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('tags.edit.fromUpdate') !== true) { - Session::put('tags.edit.url', URL::previous()); + $this->rememberPreviousUri('tags.edit.uri'); } Session::forget('tags.edit.fromUpdate'); Session::flash('gaEventCategory', 'tags'); @@ -289,8 +288,7 @@ class TagController extends Controller return redirect(route('tags.create'))->withInput(); } - // redirect to previous URL. - return redirect(session('tags.create.url')); + return redirect($this->getPreviousUri('tags.create.uri')); } @@ -316,7 +314,7 @@ class TagController extends Controller } // redirect to previous URL. - return redirect(session('tags.edit.url')); + return redirect($this->getPreviousUri('tags.edit.uri')); } /** diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index d139f0f414..5a61b060f4 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -25,7 +25,6 @@ use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use Illuminate\Support\Collection; use Preferences; use Session; -use URL; use View; /** @@ -63,7 +62,7 @@ class MassController extends Controller $subTitle = trans('firefly.mass_delete_journals'); // put previous url in session - Session::put('transactions.mass-delete.url', URL::previous()); + $this->rememberPreviousUri('transactions.mass-delete.uri'); Session::flash('gaEventCategory', 'transactions'); Session::flash('gaEventAction', 'mass-delete'); @@ -104,7 +103,7 @@ class MassController extends Controller Session::flash('success', trans('firefly.mass_deleted_transactions_success', ['amount' => $count])); // redirect to previous URL: - return redirect(session('transactions.mass-delete.url')); + return redirect($this->getPreviousUri('transactions.mass-delete.uri')); } @@ -150,7 +149,7 @@ class MassController extends Controller } // put previous url in session - Session::put('transactions.mass-edit.url', URL::previous()); + $this->rememberPreviousUri('transactions.mass-edit.uri'); Session::flash('gaEventCategory', 'transactions'); Session::flash('gaEventAction', 'mass-edit'); @@ -236,7 +235,7 @@ class MassController extends Controller Session::flash('success', trans('firefly.mass_edited_transactions_success', ['amount' => $count])); // redirect to previous URL: - return redirect(session('transactions.mass-edit.url')); + return redirect($this->getPreviousUri('transactions.mass-edit.uri')); } } diff --git a/app/Http/Controllers/Transaction/SingleController.php b/app/Http/Controllers/Transaction/SingleController.php index 9c006617bd..c031443e1c 100644 --- a/app/Http/Controllers/Transaction/SingleController.php +++ b/app/Http/Controllers/Transaction/SingleController.php @@ -31,7 +31,6 @@ use Log; use Preferences; use Session; use Steam; -use URL; use View; /** @@ -140,8 +139,7 @@ class SingleController extends Controller // put previous url in session if not redirect from store (not "create another"). if (session('transactions.create.fromStore') !== true) { - $url = URL::previous(); - Session::put('transactions.create.url', $url); + $this->rememberPreviousUri('transactions.create.uri'); } Session::forget('transactions.create.fromStore'); Session::flash('gaEventCategory', 'transactions'); @@ -172,7 +170,7 @@ class SingleController extends Controller $subTitle = trans('firefly.delete_' . $what, ['description' => $journal->description]); // put previous url in session - Session::put('transactions.delete.url', URL::previous()); + $this->rememberPreviousUri('transactions.delete.uri'); Session::flash('gaEventCategory', 'transactions'); Session::flash('gaEventAction', 'delete-' . $what); @@ -200,13 +198,7 @@ class SingleController extends Controller Preferences::mark(); - $uri = session('transactions.delete.url'); - if (!(strpos($uri, sprintf('transactions/show/%s', $journalId)) === false)) { - // uri would point back to transaction - $uri = route('transactions.index', [strtolower($type)]); - } - - return redirect($uri); + return redirect($this->getPreviousUri('transactions.delete.uri')); } /** @@ -275,7 +267,7 @@ class SingleController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('transactions.edit.fromUpdate') !== true) { - Session::put('transactions.edit.url', URL::previous()); + $this->rememberPreviousUri('transactions.edit.uri'); } Session::forget('transactions.edit.fromUpdate'); @@ -336,7 +328,7 @@ class SingleController extends Controller // redirect to previous URL. - return redirect(session('transactions.create.url')); + return redirect($this->getPreviousUri('transactions.create.uri')); } @@ -386,7 +378,6 @@ class SingleController extends Controller } // redirect to previous URL. - return redirect(session('transactions.edit.url')); - + return redirect($this->getPreviousUri('transactions.edit.uri')); } } diff --git a/app/Http/Controllers/Transaction/SplitController.php b/app/Http/Controllers/Transaction/SplitController.php index 91b35ddfce..e667cb5f1b 100644 --- a/app/Http/Controllers/Transaction/SplitController.php +++ b/app/Http/Controllers/Transaction/SplitController.php @@ -30,7 +30,6 @@ use Log; use Preferences; use Session; use Steam; -use URL; use View; /** @@ -107,7 +106,7 @@ class SplitController extends Controller // put previous url in session if not redirect from store (not "return_to_edit"). if (session('transactions.edit-split.fromUpdate') !== true) { - Session::put('transactions.edit-split.url', URL::previous()); + $this->rememberPreviousUri('transactions.edit-split.uri'); } Session::forget('transactions.edit-split.fromUpdate'); @@ -139,7 +138,7 @@ class SplitController extends Controller $data = $this->arrayFromInput($request); $journal = $repository->updateSplitJournal($journal, $data); /** @var array $files */ - $files = $request->hasFile('attachments') ? $request->file('attachments') : null; + $files = $request->hasFile('attachments') ? $request->file('attachments') : null; // save attachments: $this->attachments->saveAttachmentsForModel($journal, $files); @@ -163,8 +162,7 @@ class SplitController extends Controller } // redirect to previous URL. - return redirect(session('transactions.edit-split.url')); - + return redirect($this->getPreviousUri('transactions.edit-split.uri')); } /**