From b4eac84097b230a1d117e145e5adf4159c275228 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 11 Dec 2016 10:38:06 +0100 Subject: [PATCH] Update tests, fixes some bugs. --- .../Transaction/MassController.php | 8 +- app/Http/breadcrumbs.php | 24 ++++ app/Repositories/Journal/JournalTasker.php | 4 +- resources/views/transactions/mass-delete.twig | 4 +- resources/views/transactions/mass-edit.twig | 4 +- routes/web.php | 14 ++- .../Transaction/MassControllerTest.php | 93 ++++++++++------ .../Transaction/SingleControllerTest.php | 105 ++++++++++++------ 8 files changed, 169 insertions(+), 87 deletions(-) diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index 54e886abab..8b234d3e36 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -58,7 +58,7 @@ class MassController extends Controller * * @return View */ - public function massDelete(Collection $journals) + public function delete(Collection $journals) { $subTitle = trans('firefly.mass_delete_journals'); @@ -77,7 +77,7 @@ class MassController extends Controller * * @return mixed */ - public function massDestroy(MassDeleteJournalRequest $request, JournalRepositoryInterface $repository) + public function destroy(MassDeleteJournalRequest $request, JournalRepositoryInterface $repository) { $ids = $request->get('confirm_mass_delete'); $set = new Collection; @@ -114,7 +114,7 @@ class MassController extends Controller * * @return View */ - public function massEdit(Collection $journals) + public function edit(Collection $journals) { $subTitle = trans('firefly.mass_edit_journals'); @@ -187,7 +187,7 @@ class MassController extends Controller * * @return mixed */ - public function massUpdate(MassEditJournalRequest $request, JournalRepositoryInterface $repository) + public function update(MassEditJournalRequest $request, JournalRepositoryInterface $repository) { $journalIds = $request->get('journals'); $count = 0; diff --git a/app/Http/breadcrumbs.php b/app/Http/breadcrumbs.php index 0b90f476f8..451777784c 100644 --- a/app/Http/breadcrumbs.php +++ b/app/Http/breadcrumbs.php @@ -27,6 +27,7 @@ use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; use FireflyIII\User; +use Illuminate\Support\Collection; /** * HOME @@ -652,6 +653,29 @@ Breadcrumbs::register( } ); +/** + * MASS TRANSACTION EDIT / DELETE + */ +Breadcrumbs::register( + 'transactions.mass.edit', function (BreadCrumbGenerator $breadcrumbs, Collection $journals) { + + $journalIds = $journals->pluck('id')->toArray(); + $what = strtolower($journals->first()->transactionType->type); + $breadcrumbs->parent('transactions.index', $what); + $breadcrumbs->push(trans('firefly.mass_edit_journals'), route('transactions.mass.edit', $journalIds)); +} +); + +Breadcrumbs::register( + 'transactions.mass.delete', function (BreadCrumbGenerator $breadcrumbs, Collection $journals) { + + $journalIds = $journals->pluck('id')->toArray(); + $what = strtolower($journals->first()->transactionType->type); + $breadcrumbs->parent('transactions.index', $what); + $breadcrumbs->push(trans('firefly.mass_edit_journals'), route('transactions.mass.delete', $journalIds)); +} +); + /** * SPLIT diff --git a/app/Repositories/Journal/JournalTasker.php b/app/Repositories/Journal/JournalTasker.php index 16cc5a5f3a..eb77c77e6f 100644 --- a/app/Repositories/Journal/JournalTasker.php +++ b/app/Repositories/Journal/JournalTasker.php @@ -113,8 +113,8 @@ class JournalTasker implements JournalTaskerInterface /** @var Transaction $entry */ foreach ($set as $entry) { - $sourceBalance = $this->getBalance($entry->id); - $destinationBalance = $this->getBalance($entry->destination_id); + $sourceBalance = $this->getBalance(intval($entry->id)); + $destinationBalance = $this->getBalance(intval($entry->destination_id)); $budget = $entry->budgets->first(); $category = $entry->categories->first(); $transaction = [ diff --git a/resources/views/transactions/mass-delete.twig b/resources/views/transactions/mass-delete.twig index 6eec80dec5..f3525c1d6c 100644 --- a/resources/views/transactions/mass-delete.twig +++ b/resources/views/transactions/mass-delete.twig @@ -1,11 +1,11 @@ {% extends "./layout/default" %} {% block breadcrumbs %} - {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName) }} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, journals) }} {% endblock %} {% block content %} -
+
diff --git a/resources/views/transactions/mass-edit.twig b/resources/views/transactions/mass-edit.twig index 6489998547..1399aea9d4 100644 --- a/resources/views/transactions/mass-edit.twig +++ b/resources/views/transactions/mass-edit.twig @@ -1,11 +1,11 @@ {% extends "./layout/default" %} {% block breadcrumbs %} - {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName) }} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, journals) }} {% endblock %} {% block content %} - +
diff --git a/routes/web.php b/routes/web.php index e96979ecfe..f6dbed2f93 100755 --- a/routes/web.php +++ b/routes/web.php @@ -228,9 +228,11 @@ Route::group( Route::get('expense', ['uses' => 'AccountController@expenseAccounts', 'as' => 'expense']); Route::get('revenue', ['uses' => 'AccountController@revenueAccounts', 'as' => 'revenue']); Route::get('report/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@report', 'as' => 'report']); + Route::get('all/{account}', ['uses' => 'AccountController@period', 'as' => 'all']); // TODO Route::get('single/{account}', ['uses' => 'AccountController@single', 'as' => 'single']); Route::get('period/{account}/{date}', ['uses' => 'AccountController@period', 'as' => 'period']); + Route::get('income-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@incomeCategory', 'as' => 'income-category']); Route::get('expense-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseCategory', 'as' => 'expense-category']); Route::get('expense-budget/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseBudget', 'as' => 'expense-budget']); @@ -307,8 +309,8 @@ Route::group( * Chart\PiggyBank Controller */ Route::group( - ['middleware' => 'user-full-auth', 'namespace' => 'Chart', 'prefix' => 'chart/piggy-bank','as'=> 'chart.piggy-bank.'], function () { - Route::get('{piggyBank}', ['uses' => 'PiggyBankController@history','as' => 'history']); + ['middleware' => 'user-full-auth', 'namespace' => 'Chart', 'prefix' => 'chart/piggy-bank', 'as' => 'chart.piggy-bank.'], function () { + Route::get('{piggyBank}', ['uses' => 'PiggyBankController@history', 'as' => 'history']); } ); @@ -593,9 +595,11 @@ Route::group( */ Route::group( ['middleware' => 'user-full-auth', 'prefix' => 'transactions', 'as' => 'transactions.'], function () { - Route::get('{what}', ['uses' => 'TransactionController@index', 'as' => 'index'])->where(['what' => 'withdrawal|deposit|transfers']); - Route::get('{what}/all', ['uses' => 'TransactionController@indexAll', 'as' => 'index.all'])->where(['what' => 'withdrawal|deposit|transfers']); - Route::get('{what}/{date}', ['uses' => 'TransactionController@indexByDate', 'as' => 'index.date'])->where(['what' => 'withdrawal|deposit|transfers']); + Route::get('{what}', ['uses' => 'TransactionController@index', 'as' => 'index'])->where(['what' => 'withdrawal|deposit|transfers|transfer']); + Route::get('{what}/all', ['uses' => 'TransactionController@indexAll', 'as' => 'index.all'])->where(['what' => 'withdrawal|deposit|transfers|transfer']); + Route::get('{what}/{date}', ['uses' => 'TransactionController@indexByDate', 'as' => 'index.date'])->where( + ['what' => 'withdrawal|deposit|transfers|transfer'] + ); Route::get('show/{tj}', ['uses' => 'TransactionController@show', 'as' => 'show']); Route::post('reorder', ['uses' => 'TransactionController@reorder', 'as' => 'reorder']); } diff --git a/tests/acceptance/Controllers/Transaction/MassControllerTest.php b/tests/acceptance/Controllers/Transaction/MassControllerTest.php index 4e51159a00..f5278bd6da 100644 --- a/tests/acceptance/Controllers/Transaction/MassControllerTest.php +++ b/tests/acceptance/Controllers/Transaction/MassControllerTest.php @@ -30,58 +30,81 @@ class MassControllerTest extends TestCase } /** - * @covers \FireflyIII\Http\Controllers\Transaction\MassController::massDelete - * Implement testMassDelete(). + * @covers \FireflyIII\Http\Controllers\Transaction\MassController::delete */ - public function testMassDelete() + public function testDelete() { - // Remove the following lines when you implement this test. - $this->markTestIncomplete( - 'This test has not been implemented yet.' - ); + $this->be($this->user()); + $this->call('get', route('transactions.mass.delete', [561, 562])); + $this->assertResponseStatus(200); + $this->see('Delete a number of transactions'); + // has bread crumb + $this->see('