diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2020-06-14 14:38:29 +0100 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2020-06-14 15:01:00 +0100 |
| commit | 7c7d1e03066c50e172e4a6239e322c1e0cd62040 (patch) | |
| tree | aa7afa0087e656475fc924f17dfb5bf6a4c70769 /app/Http/RequestHandlers/AddSpouseToIndividualPage.php | |
| parent | 43322877c77e9a8a16cba087b3fe7e0af63a6800 (diff) | |
| download | webtrees-7c7d1e03066c50e172e4a6239e322c1e0cd62040.tar.gz webtrees-7c7d1e03066c50e172e4a6239e322c1e0cd62040.tar.bz2 webtrees-7c7d1e03066c50e172e4a6239e322c1e0cd62040.zip | |
Refactor edit controllers into request handlers. Preparing to use GedcomElements
Diffstat (limited to 'app/Http/RequestHandlers/AddSpouseToIndividualPage.php')
| -rw-r--r-- | app/Http/RequestHandlers/AddSpouseToIndividualPage.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/app/Http/RequestHandlers/AddSpouseToIndividualPage.php b/app/Http/RequestHandlers/AddSpouseToIndividualPage.php new file mode 100644 index 0000000000..b209fe8746 --- /dev/null +++ b/app/Http/RequestHandlers/AddSpouseToIndividualPage.php @@ -0,0 +1,76 @@ +<?php + +/** + * webtrees: online genealogy + * Copyright (C) 2020 webtrees development team + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +declare(strict_types=1); + +namespace Fisharebest\Webtrees\Http\RequestHandlers; + +use Fisharebest\Webtrees\Auth; +use Fisharebest\Webtrees\Factory; +use Fisharebest\Webtrees\Http\ViewResponseTrait; +use Fisharebest\Webtrees\I18N; +use Fisharebest\Webtrees\Tree; +use Psr\Http\Message\ResponseInterface; +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface; + +use function assert; + +/** + * Add a new spouse to an individual, creating a new family. + */ +class AddSpouseToIndividualPage implements RequestHandlerInterface +{ + use ViewResponseTrait; + + /** + * @param ServerRequestInterface $request + * + * @return ResponseInterface + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + $tree = $request->getAttribute('tree'); + assert($tree instanceof Tree); + + $xref = $request->getQueryParams()['xref']; + + $individual = Factory::individual()->make($xref, $tree); + $individual = Auth::checkIndividualAccess($individual, true); + + if ($individual->sex() === 'F') { + $title = $individual->fullName() . ' - ' . I18N::translate('Add a husband'); + $famtag = 'HUSB'; + $gender = 'M'; + } else { + $title = $individual->fullName() . ' - ' . I18N::translate('Add a wife'); + $famtag = 'WIFE'; + $gender = 'F'; + } + + return $this->viewResponse('edit/new-individual', [ + 'next_action' => AddSpouseToIndividualAction::class, + 'tree' => $tree, + 'title' => $title, + 'individual' => $individual, + 'family' => null, + 'name_fact' => null, + 'famtag' => $famtag, + 'gender' => $gender, + ]); + } +} |
