. */ 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; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\View\Factory; use Illuminate\Contracts\View\View; use Illuminate\Http\RedirectResponse; use Illuminate\Routing\Redirector; /** * Class EditController */ class EditController extends Controller { private ObjectGroupRepositoryInterface $repository; /** * PiggyBankController constructor. * */ 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 * * @return Factory|View */ public function edit(ObjectGroup $objectGroup) { $subTitle = (string)trans('firefly.edit_object_group', ['title' => $objectGroup->title]); $subTitleIcon = 'fa-pencil'; if (true !== session('object-groups.edit.fromUpdate')) { $this->rememberPreviousUrl('object-groups.edit.url'); } 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 * * @return Application|RedirectResponse|Redirector */ 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->getPreviousUrl('object-groups.edit.url')); if (1 === (int)$request->get('return_to_edit')) { session()->put('object-groups.edit.fromUpdate', true); $redirect = redirect(route('object-groups.edit', [$piggyBank->id])); } return $redirect; } }