diff options
| author | Greg Roach <fisharebest@gmail.com> | 2021-05-11 13:48:42 +0100 |
|---|---|---|
| committer | Greg Roach <fisharebest@gmail.com> | 2021-05-14 14:10:37 +0100 |
| commit | efd4768b0eab1f325771cdbc6181ff84f85f2149 (patch) | |
| tree | 8eb6d588142b030f6080134fbd972a61f5baf14a /app/Http/RequestHandlers/AddChildToFamilyPage.php | |
| parent | 9b80d2d98159cfc0110760b8e215998864838ff9 (diff) | |
| download | webtrees-efd4768b0eab1f325771cdbc6181ff84f85f2149.tar.gz webtrees-efd4768b0eab1f325771cdbc6181ff84f85f2149.tar.bz2 webtrees-efd4768b0eab1f325771cdbc6181ff84f85f2149.zip | |
Working on GEDCOM elements
Diffstat (limited to 'app/Http/RequestHandlers/AddChildToFamilyPage.php')
| -rw-r--r-- | app/Http/RequestHandlers/AddChildToFamilyPage.php | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/app/Http/RequestHandlers/AddChildToFamilyPage.php b/app/Http/RequestHandlers/AddChildToFamilyPage.php index ccca8d1c3e..f1eb504726 100644 --- a/app/Http/RequestHandlers/AddChildToFamilyPage.php +++ b/app/Http/RequestHandlers/AddChildToFamilyPage.php @@ -20,6 +20,7 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fisharebest\Webtrees\Auth; +use Fisharebest\Webtrees\Fact; use Fisharebest\Webtrees\Http\ViewResponseTrait; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Registry; @@ -29,6 +30,8 @@ use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use function assert; +use function is_string; +use function route; /** * Add a new child to a family. @@ -47,32 +50,42 @@ class AddChildToFamilyPage implements RequestHandlerInterface $tree = $request->getAttribute('tree'); assert($tree instanceof Tree); - $xref = $request->getQueryParams()['xref']; + $xref = $request->getAttribute('xref'); + assert(is_string($xref)); + + $sex = $request->getAttribute('sex'); + assert(is_string($sex)); $family = Registry::familyFactory()->make($xref, $tree); $family = Auth::checkFamilyAccess($family, true); - $gender = $request->getQueryParams()['gender']; + // Create a dummy individual, so that we can create new/empty facts. + $element = Registry::elementFactory()->make('INDI:NAME'); + $dummy = Registry::individualFactory()->new('', '0 @@ INDI', null, $tree); + $facts = [ + 'i' => [ + new Fact('1 SEX ' . $sex, $dummy, ''), + new Fact('1 NAME ' . $element->default($tree), $dummy, ''), + new Fact('1 BIRT', $dummy, ''), + new Fact('1 DEAT', $dummy, ''), + ], + ]; - $subtitles = [ + $titles = [ 'M' => I18N::translate('Add a son'), 'F' => I18N::translate('Add a daughter'), 'U' => I18N::translate('Add a child'), ]; - $subtitle = $subtitles[$gender] ?? $subtitles['U']; - - $title = $family->fullName() . ' - ' . $subtitle; + $title = $titles[$sex] ?? $titles['U']; return $this->viewResponse('edit/new-individual', [ - 'next_action' => AddChildToFamilyAction::class, - 'tree' => $tree, - 'title' => $title, - 'individual' => null, - 'family' => $family, - 'name_fact' => null, - 'famtag' => 'CHIL', - 'gender' => $gender, + 'cancel_url' => $family->url(), + 'facts' => $facts, + 'post_url' => route(AddChildToFamilyAction::class, ['tree' => $tree->name(), 'xref' => $xref]), + 'title' => $family->fullName() . ' - ' . $title, + 'tree' => $tree, + 'url' => $request->getQueryParams()['url'] ?? $family->url(), ]); } } |
