Add attachment helper to relevant classes #2828

This commit is contained in:
James Cole 2020-03-19 08:58:55 +01:00
parent aceaf5f891
commit d489244c00
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
8 changed files with 65 additions and 2 deletions

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Account;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\AccountFormRequest;
use FireflyIII\Models\AccountType;
@ -42,6 +43,10 @@ use Log;
class CreateController extends Controller
{
use ModelInformation;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/** @var AccountRepositoryInterface The account repository */
private $repository;
@ -61,6 +66,7 @@ class CreateController extends Controller
app('view')->share('title', (string) trans('firefly.accounts'));
$this->repository = app(AccountRepositoryInterface::class);
$this->attachments = app(AttachmentHelperInterface::class);
return $next($request);
}
@ -141,6 +147,16 @@ class CreateController extends Controller
$frontPage[] = $account->id;
app('preferences')->set('frontPageAccounts', $frontPage);
}
// store attachment(s):
/** @var array $files */
$files = $request->hasFile('attachments') ? $request->file('attachments') : null;
$this->attachments->saveAttachmentsForModel($account, $files);
if (count($this->attachments->getMessages()->get('attachments')) > 0) {
$request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore
}
// redirect to previous URL.
$redirect = redirect($this->getPreviousUri('accounts.create.uri'));
if (1 === (int) $request->get('create_another')) {

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Account;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\AccountFormRequest;
use FireflyIII\Models\Account;
@ -48,6 +49,9 @@ class EditController extends Controller
/** @var AccountRepositoryInterface The account repository */
private $repository;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* EditController constructor.
*/
@ -63,6 +67,7 @@ class EditController extends Controller
$this->repository = app(AccountRepositoryInterface::class);
$this->currencyRepos = app(CurrencyRepositoryInterface::class);
$this->attachments = app(AttachmentHelperInterface::class);
return $next($request);
}
@ -185,6 +190,17 @@ class EditController extends Controller
$request->session()->flash('success', (string) trans('firefly.updated_account', ['name' => $account->name]));
app('preferences')->mark();
// store new attachments
// store attachment(s):
/** @var array $files */
$files = $request->hasFile('attachments') ? $request->file('attachments') : null;
$this->attachments->saveAttachmentsForModel($account, $files);
if (count($this->attachments->getMessages()->get('attachments')) > 0) {
$request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore
}
// redirect
$redirect = redirect($this->getPreviousUri('accounts.edit.uri'));
if (1 === (int) $request->get('return_to_edit')) {
// set value so edit routine will not overwrite URL:

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Budget;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\BudgetFormStoreRequest;
use FireflyIII\Models\AutoBudget;
@ -41,6 +42,9 @@ class CreateController extends Controller
/** @var BudgetRepositoryInterface The budget repository */
private $repository;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* CreateController constructor.
*
@ -56,6 +60,7 @@ class CreateController extends Controller
app('view')->share('title', (string) trans('firefly.budgets'));
app('view')->share('mainTitleIcon', 'fa-tasks');
$this->repository = app(BudgetRepositoryInterface::class);
$this->attachments = app(AttachmentHelperInterface::class);
return $next($request);
}

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Budget;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\BudgetFormUpdateRequest;
use FireflyIII\Models\AutoBudget;
@ -43,6 +44,9 @@ class EditController extends Controller
/** @var BudgetRepositoryInterface The budget repository */
private $repository;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* EditController constructor.
*
@ -57,6 +61,7 @@ class EditController extends Controller
app('view')->share('title', (string) trans('firefly.budgets'));
app('view')->share('mainTitleIcon', 'fa-tasks');
$this->repository = app(BudgetRepositoryInterface::class);
$this->attachments = app(AttachmentHelperInterface::class);
return $next($request);
}

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Category;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\CategoryFormRequest;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
@ -41,6 +42,9 @@ class CreateController extends Controller
/** @var CategoryRepositoryInterface The category repository */
private $repository;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* CategoryController constructor.
*
@ -55,6 +59,7 @@ class CreateController extends Controller
app('view')->share('title', (string) trans('firefly.categories'));
app('view')->share('mainTitleIcon', 'fa-bar-chart');
$this->repository = app(CategoryRepositoryInterface::class);
$this->attachments = app(AttachmentHelperInterface::class);
return $next($request);
}

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Category;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\CategoryFormRequest;
use FireflyIII\Models\Category;
@ -43,6 +44,9 @@ class EditController extends Controller
/** @var CategoryRepositoryInterface The category repository */
private $repository;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* CategoryController constructor.
*
@ -57,6 +61,7 @@ class EditController extends Controller
app('view')->share('title', (string) trans('firefly.categories'));
app('view')->share('mainTitleIcon', 'fa-bar-chart');
$this->repository = app(CategoryRepositoryInterface::class);
$this->attachments = app(AttachmentHelperInterface::class);
return $next($request);
}

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers;
use Carbon\Carbon;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Requests\PiggyBankFormRequest;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
@ -55,6 +56,9 @@ class PiggyBankController extends Controller
/** @var PiggyBankRepositoryInterface Piggy bank repository. */
private $piggyRepos;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* PiggyBankController constructor.
*
@ -69,6 +73,7 @@ class PiggyBankController extends Controller
app('view')->share('title', (string) trans('firefly.piggyBanks'));
app('view')->share('mainTitleIcon', 'fa-sort-amount-asc');
$this->attachments = app(AttachmentHelperInterface::class);
$this->piggyRepos = app(PiggyBankRepositoryInterface::class);
$this->currencyRepos = app(CurrencyRepositoryInterface::class);
$this->accountRepos = app(AccountRepositoryInterface::class);

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers;
use Carbon\Carbon;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Http\Requests\TagFormRequest;
use FireflyIII\Models\Tag;
@ -45,6 +46,9 @@ class TagController extends Controller
/** @var TagRepositoryInterface The tag repository. */
protected $repository;
/** @var AttachmentHelperInterface Helper for attachments. */
private $attachments;
/**
* TagController constructor.
*/
@ -55,10 +59,12 @@ class TagController extends Controller
$this->middleware(
function ($request, $next) {
$this->repository = app(TagRepositoryInterface::class);
app('view')->share('title', (string) trans('firefly.tags'));
app('view')->share('mainTitleIcon', 'fa-tags');
$this->attachments = app(AttachmentHelperInterface::class);
$this->repository = app(TagRepositoryInterface::class);
return $next($request);
}
);