From 83f32478fac24bf80bd805a3dff7e9f5867f946e Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 1 Apr 2015 09:43:19 +0200 Subject: [PATCH] Fixed more redirections. --- app/Http/Controllers/BudgetController.php | 3 ++- app/Http/Controllers/CategoryController.php | 27 ++++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/BudgetController.php b/app/Http/Controllers/BudgetController.php index 066edb7fc8..82af257f93 100644 --- a/app/Http/Controllers/BudgetController.php +++ b/app/Http/Controllers/BudgetController.php @@ -244,7 +244,8 @@ class BudgetController extends Controller return Redirect::route('budgets.edit', $budget->id)->withInput(['return_to_edit' => 1]); } - return Redirect::route('budgets.index'); + // redirect to previous URL. + return Redirect::to(Session::get('budgets.edit.url')); } diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 0e45a06d8b..63da969bfd 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -11,7 +11,7 @@ use Input; use Redirect; use Session; use View; - +use URL; /** * Class CategoryController @@ -35,6 +35,12 @@ class CategoryController extends Controller */ public function create() { + // put previous url in session if not redirect from store (not "create another"). + if (Session::get('categories.create.fromStore') !== true) { + Session::put('categories.create.url', URL::previous()); + } + Session::forget('categories.create.fromStore'); + return view('categories.create')->with('subTitle', 'Create a new category'); } @@ -47,6 +53,9 @@ class CategoryController extends Controller { $subTitle = 'Delete category' . e($category->name) . '"'; + // put previous url in session + Session::put('categories.delete.url', URL::previous()); + return view('categories.delete', compact('category', 'subTitle')); } @@ -63,7 +72,7 @@ class CategoryController extends Controller Session::flash('success', 'The category "' . e($name) . '" was deleted.'); - return Redirect::route('categories.index'); + return Redirect::to(Session::get('categories.delete.url')); } /** @@ -75,6 +84,12 @@ class CategoryController extends Controller { $subTitle = 'Edit category "' . e($category->name) . '"'; + // put previous url in session if not redirect from store (not "return_to_edit"). + if (Session::get('categories.edit.fromUpdate') !== true) { + Session::put('categories.edit.url', URL::previous()); + } + Session::forget('categories.edit.fromUpdate'); + return view('categories.edit', compact('category', 'subTitle')); } @@ -166,10 +181,12 @@ class CategoryController extends Controller Session::flash('success', 'New category "' . $category->name . '" stored!'); if (intval(Input::get('create_another')) === 1) { + Session::put('categories.create.fromStore', true); return Redirect::route('categories.create')->withInput(); } - return Redirect::route('categories.index'); + // redirect to previous URL. + return Redirect::to(Session::get('categories.create.url')); } @@ -192,10 +209,12 @@ class CategoryController extends Controller Session::flash('success', 'Category "' . $category->name . '" updated.'); if (intval(Input::get('return_to_edit')) === 1) { + Session::put('categories.edit.fromUpdate', true); return Redirect::route('categories.edit', $category->id); } - return Redirect::route('categories.index'); + // redirect to previous URL. + return Redirect::to(Session::get('categories.edit.url')); }