diff --git a/.gitignore b/.gitignore index 71dfa14632..2b3beddc88 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ tests/_output/* clover.xml node_modules/ addNewLines.php +.phpstorm.meta.php diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index e5e2e8a919..db387e39ad 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -11,6 +11,7 @@ use Input; use Redirect; use Session; use Steam; +use URL; use View; /** @@ -39,6 +40,12 @@ class AccountController extends Controller $subTitleIcon = Config::get('firefly.subIconsByIdentifier.' . $what); $subTitle = 'Create a new ' . e($what) . ' account'; + // put previous url in session if not redirect from store (not "create another"). + if (Session::get('accounts.create.fromStore') !== true) { + Session::put('accounts.create.url', URL::previous()); + } + Session::forget('accounts.create.fromStore'); + return view('accounts.create', compact('subTitleIcon', 'what', 'subTitle')); } @@ -52,6 +59,9 @@ class AccountController extends Controller { $subTitle = 'Delete ' . strtolower(e($account->accountType->type)) . ' "' . e($account->name) . '"'; + // put previous url in session + Session::put('accounts.delete.url', URL::previous()); + return view('accounts.delete', compact('account', 'subTitle')); } @@ -71,7 +81,7 @@ class AccountController extends Controller Session::flash('success', 'The ' . e($typeName) . ' account "' . e($name) . '" was deleted.'); - return Redirect::route('accounts.index', $typeName); + return Redirect::to(Session::get('accounts.delete.url')); } /** @@ -88,6 +98,12 @@ class AccountController extends Controller $subTitleIcon = Config::get('firefly.subIconsByIdentifier.' . $what); $openingBalance = $repository->openingBalanceTransaction($account); + // put previous url in session if not redirect from store (not "return_to_edit"). + if (Session::get('accounts.edit.fromUpdate') !== true) { + Session::put('accounts.edit.url', URL::previous()); + } + Session::forget('accounts.edit.fromUpdate'); + // pre fill some useful values. // the opening balance is tricky: @@ -184,10 +200,15 @@ class AccountController extends Controller Session::flash('success', 'New account "' . $account->name . '" stored!'); if (intval(Input::get('create_another')) === 1) { - return Redirect::route('accounts.create', $request->input('what'))->withInput(); + // set value so create routine will not overwrite URL: + Session::put('accounts.create.fromStore', true); + + return Redirect::route('accounts.create')->withInput(); } - return Redirect::route('accounts.index', $request->input('what')); + // redirect to previous URL. + return Redirect::to(Session::get('accounts.create.url')); + } @@ -200,7 +221,7 @@ class AccountController extends Controller */ public function update(Account $account, AccountFormRequest $request, AccountRepositoryInterface $repository) { - $what = Config::get('firefly.shortNamesByFullName.' . $account->accountType->type); + $accountData = [ 'name' => $request->input('name'), 'active' => $request->input('active'), @@ -219,10 +240,14 @@ class AccountController extends Controller Session::flash('success', 'Account "' . $account->name . '" updated.'); if (intval(Input::get('return_to_edit')) === 1) { - return Redirect::route('accounts.edit', $account->id); + // set value so edit routine will not overwrite URL: + Session::put('accounts.edit.fromUpdate', true); + + return Redirect::route('accounts.edit', $account->id)->withInput(['return_to_edit' => 1]); } - return Redirect::route('accounts.index', $what); + // redirect to previous URL. + return Redirect::to(Session::get('accounts.edit.url')); } diff --git a/app/Http/Controllers/BillController.php b/app/Http/Controllers/BillController.php index d605b3d0ba..f509e1ddb5 100644 --- a/app/Http/Controllers/BillController.php +++ b/app/Http/Controllers/BillController.php @@ -83,6 +83,12 @@ class BillController extends Controller { $periods = Config::get('firefly.periods_to_text'); + // put previous url in session if not redirect from store (not "create another"). + if (Session::get('bills.create.fromStore') !== true) { + Session::put('bills.create.url', URL::previous()); + } + Session::forget('bills.create.fromStore'); + return view('bills.create')->with('periods', $periods)->with('subTitle', 'Create new'); } @@ -93,6 +99,9 @@ class BillController extends Controller */ public function delete(Bill $bill) { + // put previous url in session + Session::put('bills.delete.url', URL::previous()); + return view('bills.delete')->with('bill', $bill)->with('subTitle', 'Delete "' . e($bill->name) . '"'); } @@ -107,7 +116,7 @@ class BillController extends Controller Session::flash('success', 'The bill was deleted.'); - return Redirect::route('bills.index'); + return Redirect::to(Session::get('bills.delete.url')); } @@ -120,6 +129,12 @@ class BillController extends Controller { $periods = Config::get('firefly.periods_to_text'); + // put previous url in session if not redirect from store (not "return_to_edit"). + if (Session::get('bills.edit.fromUpdate') !== true) { + Session::put('bills.edit.url', URL::previous()); + } + Session::forget('bills.edit.fromUpdate'); + return view('bills.edit')->with('periods', $periods)->with('bill', $bill)->with('subTitle', 'Edit "' . e($bill->name) . '"'); } @@ -190,10 +205,14 @@ class BillController extends Controller Session::flash('success', 'Bill "' . e($bill->name) . '" stored.'); if (intval(Input::get('create_another')) === 1) { + // set value so create routine will not overwrite URL: + Session::put('bills.create.fromStore', true); + return Redirect::route('bills.create')->withInput(); } - return Redirect::route('bills.index'); + // redirect to previous URL. + return Redirect::to(Session::get('bills.create.url')); } @@ -213,7 +232,15 @@ class BillController extends Controller Session::flash('success', 'Bill "' . e($bill->name) . '" updated.'); - return Redirect::route('bills.index'); + if (intval(Input::get('return_to_edit')) === 1) { + // set value so edit routine will not overwrite URL: + Session::put('bills.edit.fromUpdate', true); + + return Redirect::route('bills.edit', $bill->id)->withInput(['return_to_edit' => 1]); + } + + // redirect to previous URL. + return Redirect::to(Session::get('bills.edit.url')); } diff --git a/composer.lock b/composer.lock index f1bab601ca..394312ec5e 100644 --- a/composer.lock +++ b/composer.lock @@ -943,16 +943,16 @@ }, { "name": "laravel/framework", - "version": "v5.0.27", + "version": "v5.0.28", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "4d6330118a295086ce9ff8eed2200d5b67f17688" + "reference": "06a09429322cf53e5bd4587db1060f02a291562e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/4d6330118a295086ce9ff8eed2200d5b67f17688", - "reference": "4d6330118a295086ce9ff8eed2200d5b67f17688", + "url": "https://api.github.com/repos/laravel/framework/zipball/06a09429322cf53e5bd4587db1060f02a291562e", + "reference": "06a09429322cf53e5bd4587db1060f02a291562e", "shasum": "" }, "require": { @@ -1022,7 +1022,7 @@ "predis/predis": "~1.0" }, "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver (~2.4).", + "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~2.4).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).", "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~5.0).", "iron-io/iron_mq": "Required to use the iron queue driver (~1.5).", @@ -1065,7 +1065,7 @@ "framework", "laravel" ], - "time": "2015-04-04 01:34:57" + "time": "2015-04-21 01:44:32" }, { "name": "league/commonmark", @@ -3103,16 +3103,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.4.0", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5" + "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5", - "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", + "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", "shasum": "" }, "require": { @@ -3159,7 +3159,7 @@ "spy", "stub" ], - "time": "2015-03-27 19:31:25" + "time": "2015-04-27 22:15:08" }, { "name": "phpunit/php-code-coverage", diff --git a/resources/views/accounts/show.blade.php b/resources/views/accounts/show.blade.php index 412014e342..acbabd0b1d 100644 --- a/resources/views/accounts/show.blade.php +++ b/resources/views/accounts/show.blade.php @@ -49,7 +49,6 @@ diff --git a/resources/views/budgets/index.blade.php b/resources/views/budgets/index.blade.php index e9dc51d410..8d4760f30a 100644 --- a/resources/views/budgets/index.blade.php +++ b/resources/views/budgets/index.blade.php @@ -175,9 +175,5 @@ @stop @section('scripts') - - @stop diff --git a/resources/views/list/journals-full.blade.php b/resources/views/list/journals-full.blade.php index 2584d8c8f0..8e671328f8 100644 --- a/resources/views/list/journals-full.blade.php +++ b/resources/views/list/journals-full.blade.php @@ -61,10 +61,10 @@