diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2022-05-13 13:57:58 +0100 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2022-05-13 14:00:10 +0100 |
| commit | e4ce91ea2aa613a20379db5651de7024c7f91a55 (patch) | |
| tree | 6961239e0d6858b3fe15b61855d2cc4d4acd6daf /app/Http/RequestHandlers/AddSpouseToFamilyAction.php | |
| parent | b389d3236b11e886dfa8175d4d87c048cafce8d5 (diff) | |
| download | webtrees-e4ce91ea2aa613a20379db5651de7024c7f91a55.tar.gz webtrees-e4ce91ea2aa613a20379db5651de7024c7f91a55.tar.bz2 webtrees-e4ce91ea2aa613a20379db5651de7024c7f91a55.zip | |
Fix: #4401 - family facts missing when adding second spouse to family
Diffstat (limited to 'app/Http/RequestHandlers/AddSpouseToFamilyAction.php')
| -rw-r--r-- | app/Http/RequestHandlers/AddSpouseToFamilyAction.php | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/app/Http/RequestHandlers/AddSpouseToFamilyAction.php b/app/Http/RequestHandlers/AddSpouseToFamilyAction.php index 325e5c4a09..4d1b5e8b13 100644 --- a/app/Http/RequestHandlers/AddSpouseToFamilyAction.php +++ b/app/Http/RequestHandlers/AddSpouseToFamilyAction.php @@ -20,6 +20,7 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; use Fisharebest\Webtrees\Auth; +use Fisharebest\Webtrees\Family; use Fisharebest\Webtrees\Individual; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Services\GedcomEditService; @@ -60,13 +61,12 @@ class AddSpouseToFamilyAction implements RequestHandlerInterface $family = Registry::familyFactory()->make($xref, $tree); $family = Auth::checkFamilyAccess($family, true); + // Create the new spouse $levels = $params['ilevels'] ?? []; $tags = $params['itags'] ?? []; $values = $params['ivalues'] ?? []; - - // Create the new spouse - $gedcom = "0 @@ INDI\n1 FAMS @" . $family->xref() . '@' . $this->gedcom_edit_service->editLinesToGedcom(Individual::RECORD_TYPE, $levels, $tags, $values); - $spouse = $tree->createIndividual($gedcom); + $gedcom = $this->gedcom_edit_service->editLinesToGedcom(Individual::RECORD_TYPE, $levels, $tags, $values); + $spouse = $tree->createIndividual("0 @@ INDI\n1 FAMS @" . $family->xref() . '@' . $gedcom); // Link the spouse to the family $husb = $family->facts(['HUSB'], false, null, true)->first(); @@ -88,6 +88,16 @@ class AddSpouseToFamilyAction implements RequestHandlerInterface // Link the spouse to the family $family->createFact('1 ' . $link . ' @' . $spouse->xref() . '@', false); + // Add any family facts + $levels = $params['flevels'] ?? []; + $tags = $params['ftags'] ?? []; + $values = $params['fvalues'] ?? []; + $gedcom = $this->gedcom_edit_service->editLinesToGedcom(Family::RECORD_TYPE, $levels, $tags, $values); + + if ($gedcom !== '') { + $family->createFact($gedcom, false); + } + $url = Validator::parsedBody($request)->isLocalUrl()->string('url', $spouse->url()); return redirect($url); |
