summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/AddSpouseToFamilyAction.php
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2022-05-13 13:57:58 +0100
committerGreg Roach <greg@subaqua.co.uk>2022-05-13 14:00:10 +0100
commite4ce91ea2aa613a20379db5651de7024c7f91a55 (patch)
tree6961239e0d6858b3fe15b61855d2cc4d4acd6daf /app/Http/RequestHandlers/AddSpouseToFamilyAction.php
parentb389d3236b11e886dfa8175d4d87c048cafce8d5 (diff)
downloadwebtrees-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.php18
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);