Group management code.

This commit is contained in:
James Cole
2020-06-20 10:10:55 +02:00
parent b54ef9f5e5
commit 5b29e78c4b
25 changed files with 737 additions and 14 deletions

View File

@@ -0,0 +1,87 @@
<?php
declare(strict_types=1);
namespace FireflyIII\Http\Controllers\ObjectGroup;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\ObjectGroupFormRequest;
use FireflyIII\Models\ObjectGroup;
use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface;
/**
* Class EditController
*/
class EditController extends Controller
{
private ObjectGroupRepositoryInterface $repository;
/**
* PiggyBankController constructor.
*
* @codeCoverageIgnore
*/
public function __construct()
{
parent::__construct();
$this->middleware(
function ($request, $next) {
app('view')->share('mainTitleIcon', 'fa-envelope-o');
app('view')->share('title', (string) trans('firefly.object_groups_page_title'));
$this->repository = app(ObjectGroupRepositoryInterface::class);
return $next($request);
}
);
}
/**
* Edit an object group.
*
* @param ObjectGroup $objectGroup
*/
public function edit(ObjectGroup $objectGroup)
{
$subTitle = (string) trans('firefly.edit_object_group', ['title' => $objectGroup->title]);
$subTitleIcon = 'fa-pencil';
$targetDate = null;
$startDate = null;
if (true !== session('object-groups.edit.fromUpdate')) {
$this->rememberPreviousUri('object-groups.edit.uri');
}
session()->forget('object-groups.edit.fromUpdate');
return view('object-groups.edit', compact('subTitle', 'subTitleIcon', 'objectGroup'));
}
/**
* Update a piggy bank.
*
* @param ObjectGroupFormRequest $request
* @param ObjectGroup $objectGroup
*/
public function update(ObjectGroupFormRequest $request, ObjectGroup $objectGroup)
{
$data = $request->getObjectGroupData();
$piggyBank = $this->repository->update($objectGroup, $data);
session()->flash('success', (string) trans('firefly.updated_object_group', ['title' => $objectGroup->title]));
app('preferences')->mark();
$redirect = redirect($this->getPreviousUri('object-groups.edit.uri'));
if (1 === (int) $request->get('return_to_edit')) {
// @codeCoverageIgnoreStart
session()->put('object-groups.edit.fromUpdate', true);
$redirect = redirect(route('object-groups.edit', [$piggyBank->id]));
// @codeCoverageIgnoreEnd
}
return $redirect;
}
}