diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2021-06-21 08:51:41 +0100 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2021-06-21 08:51:41 +0100 |
| commit | 148eeb524efcef0eac2c63e4cbe93809f9cd7155 (patch) | |
| tree | b9f69f1eecb5c40b0e712209f24c59051622ca3d /app | |
| parent | e22e42f733f4ab630c81dc26a61e9a5470ca33de (diff) | |
| download | webtrees-148eeb524efcef0eac2c63e4cbe93809f9cd7155.tar.gz webtrees-148eeb524efcef0eac2c63e4cbe93809f9cd7155.tar.bz2 webtrees-148eeb524efcef0eac2c63e4cbe93809f9cd7155.zip | |
Option to show hidden GEDCOM tags
Diffstat (limited to 'app')
| -rw-r--r-- | app/Http/RequestHandlers/AddNewFact.php | 22 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/EditFactPage.php | 29 |
2 files changed, 38 insertions, 13 deletions
diff --git a/app/Http/RequestHandlers/AddNewFact.php b/app/Http/RequestHandlers/AddNewFact.php index bf746cf19f..9e38a21e73 100644 --- a/app/Http/RequestHandlers/AddNewFact.php +++ b/app/Http/RequestHandlers/AddNewFact.php @@ -31,6 +31,7 @@ use Psr\Http\Server\RequestHandlerInterface; use function assert; use function is_string; +use function route; use function trim; /** @@ -65,7 +66,7 @@ class AddNewFact implements RequestHandlerInterface $xref = $request->getAttribute('xref'); assert(is_string($xref)); - $subtag = $request->getAttribute('fact'); + $subtag = $request->getAttribute('fact'); $include_hidden = (bool) ($request->getQueryParams()['include_hidden'] ?? false); @@ -74,14 +75,29 @@ class AddNewFact implements RequestHandlerInterface $element = Registry::elementFactory()->make($record->tag() . ':' . $subtag); $title = $record->fullName() . ' - ' . $element->label(); $fact = new Fact(trim('1 ' . $subtag . ' ' . $element->default($tree)), $record, 'new'); + $gedcom = $this->gedcom_edit_service->insertMissingSubtags($fact, $include_hidden); + $hidden = $this->gedcom_edit_service->insertMissingSubtags($fact, true); + $url = $record->url(); + + if ($gedcom === $hidden) { + $hidden_url = ''; + } else { + $hidden_url = route(self::class, [ + 'fact' => $subtag, + 'include_hidden' => true, + 'tree' => $tree->name(), + 'xref' => $xref, + ]); + } return $this->viewResponse('edit/edit-fact', [ 'can_edit_raw' => false, 'fact' => $fact, - 'gedcom' => $this->gedcom_edit_service->insertMissingSubtags($fact, $include_hidden), + 'gedcom' => $gedcom, + 'hidden_url' => $hidden_url, 'title' => $title, 'tree' => $tree, - 'url' => $record->url(), + 'url' => $url, ]); } } diff --git a/app/Http/RequestHandlers/EditFactPage.php b/app/Http/RequestHandlers/EditFactPage.php index 713e9d483b..f8c304f434 100644 --- a/app/Http/RequestHandlers/EditFactPage.php +++ b/app/Http/RequestHandlers/EditFactPage.php @@ -74,10 +74,7 @@ class EditFactPage implements RequestHandlerInterface $record = Auth::checkRecordAccess($record, true); // Find the fact to edit - $fact = $record->facts() - ->first(static function (Fact $fact) use ($fact_id): bool { - return $fact->id() === $fact_id && $fact->canEdit(); - }); + $fact = $record->facts()->first(fn (Fact $fact): bool => $fact->id() === $fact_id && $fact->canEdit()); if ($fact === null) { return redirect($record->url()); @@ -85,20 +82,32 @@ class EditFactPage implements RequestHandlerInterface $can_edit_raw = Auth::isAdmin() || $tree->getPreference('SHOW_GEDCOM_RECORD'); - $tmp1 = $this->gedcom_edit_service->insertMissingSubtags($fact, $include_hidden); - $tmp2 = $this->gedcom_edit_service->insertMissingSubtags($fact, true); + $gedcom = $this->gedcom_edit_service->insertMissingSubtags($fact, $include_hidden); + $hidden = $this->gedcom_edit_service->insertMissingSubtags($fact, true); + $url = $request->getQueryParams()['url'] ?? $record->url(); - $allow_include_hidden = $tmp1 !== $tmp2; + if ($gedcom === $hidden) { + $hidden_url = ''; + } else { + $hidden_url = route(self::class, [ + 'fact_id' => $fact_id, + 'include_hidden' => true, + 'tree' => $tree->name(), + 'url' => $url, + 'xref' => $xref, + ]); + } - $title = $record->fullName() . ' - ' . $fact->label(); + $title = $record->fullName() . ' - ' . $fact->label(); return $this->viewResponse('edit/edit-fact', [ 'can_edit_raw' => $can_edit_raw, 'fact' => $fact, - 'gedcom' => $this->gedcom_edit_service->insertMissingSubtags($fact, $include_hidden), + 'gedcom' => $gedcom, + 'hidden_url' => $hidden_url, 'title' => $title, 'tree' => $tree, - 'url' => $request->getQueryParams()['url'] ?? $record->url(), + 'url' => $url, ]); } } |
