From a80b7aac6c076182185791b69d312201b4f8e2c8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 1 Apr 2015 18:59:34 +0200 Subject: [PATCH] Fix more redirections. --- app/Http/Controllers/CurrencyController.php | 27 +++++++++++++++--- app/Http/Controllers/PiggyBankController.php | 29 ++++++++++++++++---- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php index 9fed87a44b..a88eeb65d0 100644 --- a/app/Http/Controllers/CurrencyController.php +++ b/app/Http/Controllers/CurrencyController.php @@ -10,7 +10,7 @@ use Preferences; use Redirect; use Session; use View; - +use URL; /** * Class CurrencyController @@ -39,6 +39,12 @@ class CurrencyController extends Controller $subTitleIcon = 'fa-plus'; $subTitle = 'Create a new currency'; + // put previous url in session if not redirect from store (not "create another"). + if (Session::get('currency.create.fromStore') !== true) { + Session::put('currency.create.url', URL::previous()); + } + Session::forget('currency.create.fromStore'); + return view('currency.create', compact('subTitleIcon', 'subTitle')); } @@ -72,6 +78,9 @@ class CurrencyController extends Controller if ($currency->transactionJournals()->count() > 0) { Session::flash('error', 'Cannot delete ' . e($currency->name) . ' because there are still transactions attached to it.'); + // put previous url in session + Session::put('currency.delete.url', URL::previous()); + return Redirect::route('currency.index'); } @@ -96,7 +105,7 @@ class CurrencyController extends Controller $currency->delete(); - return Redirect::route('currency.index'); + return Redirect::to(Session::get('currency.delete.url')); } /** @@ -110,6 +119,12 @@ class CurrencyController extends Controller $subTitle = 'Edit currency "' . e($currency->name) . '"'; $currency->symbol = htmlentities($currency->symbol); + // put previous url in session if not redirect from store (not "return_to_edit"). + if (Session::get('currency.edit.fromUpdate') !== true) { + Session::put('currency.edit.url', URL::previous()); + } + Session::forget('currency.edit.fromUpdate'); + return view('currency.edit', compact('currency', 'subTitle', 'subTitleIcon')); } @@ -148,10 +163,12 @@ class CurrencyController extends Controller Session::flash('success', 'Currency "' . $currency->name . '" created'); if (intval(Input::get('create_another')) === 1) { + Session::put('currency.create.fromStore', true); return Redirect::route('currency.create')->withInput(); } - return Redirect::route('currency.index'); + // redirect to previous URL. + return Redirect::to(Session::get('categories.create.url')); } @@ -173,10 +190,12 @@ class CurrencyController extends Controller if (intval(Input::get('return_to_edit')) === 1) { + Session::put('currency.edit.fromUpdate', true); return Redirect::route('currency.edit', $currency->id); } - return Redirect::route('currency.index'); + // redirect to previous URL. + return Redirect::to(Session::get('currency.edit.url')); } diff --git a/app/Http/Controllers/PiggyBankController.php b/app/Http/Controllers/PiggyBankController.php index c4aa08799a..2b95970f4c 100644 --- a/app/Http/Controllers/PiggyBankController.php +++ b/app/Http/Controllers/PiggyBankController.php @@ -17,6 +17,7 @@ use Redirect; use Session; use Steam; use View; +use URL; /** * Class PiggyBankController @@ -49,9 +50,6 @@ class PiggyBankController extends Controller $leftToSave = $piggyBank->targetamount - $savedSoFar; $maxAmount = min($leftOnAccount, $leftToSave); - - \Log::debug('Now going to view for piggy bank #' . $piggyBank->id . ' (' . $piggyBank->name . ')'); - return view('piggy-banks.add', compact('piggyBank', 'maxAmount')); } @@ -68,6 +66,12 @@ class PiggyBankController extends Controller $subTitle = 'Create new piggy bank'; $subTitleIcon = 'fa-plus'; + // put previous url in session if not redirect from store (not "create another"). + if (Session::get('piggy-banks.create.fromStore') !== true) { + Session::put('piggy-banks.create.url', URL::previous()); + } + Session::forget('piggy-banks.create.fromStore'); + return view('piggy-banks.create', compact('accounts', 'periods', 'subTitle', 'subTitleIcon')); } @@ -80,6 +84,9 @@ class PiggyBankController extends Controller { $subTitle = 'Delete "' . e($piggyBank->name) . '"'; + // put previous url in session + Session::put('piggy-banks.delete.url', URL::previous()); + return view('piggy-banks.delete', compact('piggyBank', 'subTitle')); } @@ -94,7 +101,7 @@ class PiggyBankController extends Controller Session::flash('success', 'Piggy bank "' . e($piggyBank->name) . '" deleted.'); $piggyBank->delete(); - return Redirect::route('piggy-banks.index'); + return Redirect::to(Session::get('piggy-banks.delete.url')); } /** @@ -132,6 +139,12 @@ class PiggyBankController extends Controller ]; Session::flash('preFilled', $preFilled); + // put previous url in session if not redirect from store (not "return_to_edit"). + if (Session::get('piggy-banks.edit.fromUpdate') !== true) { + Session::put('piggy-banks.edit.url', URL::previous()); + } + Session::forget('piggy-banks.edit.fromUpdate'); + return view('piggy-banks.edit', compact('subTitle', 'subTitleIcon', 'piggyBank', 'accounts', 'periods', 'preFilled')); } @@ -312,11 +325,13 @@ class PiggyBankController extends Controller Session::flash('success', 'Stored piggy bank "' . e($piggyBank->name) . '".'); if (intval(Input::get('create_another')) === 1) { + Session::put('piggy-banks.create.fromStore', true); return Redirect::route('piggy-banks.create')->withInput(); } - return Redirect::route('piggy-banks.index'); + // redirect to previous URL. + return Redirect::to(Session::get('piggy-banks.create.url')); } /** @@ -344,11 +359,13 @@ class PiggyBankController extends Controller Session::flash('success', 'Updated piggy bank "' . e($piggyBank->name) . '".'); if (intval(Input::get('return_to_edit')) === 1) { + Session::put('piggy-banks.edit.fromUpdate', true); return Redirect::route('piggy-banks.edit', $piggyBank->id); } - return Redirect::route('piggy-banks.index'); + // redirect to previous URL. + return Redirect::to(Session::get('piggy-banks.edit.url')); }