summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/GedcomRecordPage.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Http/RequestHandlers/GedcomRecordPage.php')
-rw-r--r--app/Http/RequestHandlers/GedcomRecordPage.php40
1 files changed, 34 insertions, 6 deletions
diff --git a/app/Http/RequestHandlers/GedcomRecordPage.php b/app/Http/RequestHandlers/GedcomRecordPage.php
index ec3a98754e..48339033ce 100644
--- a/app/Http/RequestHandlers/GedcomRecordPage.php
+++ b/app/Http/RequestHandlers/GedcomRecordPage.php
@@ -29,6 +29,8 @@ use Fisharebest\Webtrees\Media;
use Fisharebest\Webtrees\Note;
use Fisharebest\Webtrees\Registry;
use Fisharebest\Webtrees\Repository;
+use Fisharebest\Webtrees\Services\ClipboardService;
+use Fisharebest\Webtrees\Services\LinkedRecordService;
use Fisharebest\Webtrees\Source;
use Fisharebest\Webtrees\Submission;
use Fisharebest\Webtrees\Submitter;
@@ -61,6 +63,20 @@ class GedcomRecordPage implements RequestHandlerInterface
Submitter::class,
];
+ private ClipboardService $clipboard_service;
+
+ private LinkedRecordService $linked_record_service;
+
+ /**
+ * @param ClipboardService $clipboard_service
+ * @param LinkedRecordService $linked_record_service
+ */
+ public function __construct(ClipboardService $clipboard_service, LinkedRecordService $linked_record_service)
+ {
+ $this->clipboard_service = $clipboard_service;
+ $this->linked_record_service = $linked_record_service;
+ }
+
/**
* Show a gedcom record's page.
*
@@ -80,13 +96,25 @@ class GedcomRecordPage implements RequestHandlerInterface
return redirect($record->url());
}
+ $linked_families = $this->linked_record_service->linkedFamilies($record);
+ $linked_individuals = $this->linked_record_service->linkedIndividuals($record);
+ $linked_locations = $this->linked_record_service->linkedLocations($record);
+ $linked_media = $this->linked_record_service->linkedMedia($record);
+ $linked_notes = $this->linked_record_service->linkedNotes($record);
+ $linked_repositories = $this->linked_record_service->linkedRepositories($record);
+ $linked_sources = $this->linked_record_service->linkedSources($record);
+ $linked_submitters = $this->linked_record_service->linkedSubmitters($record);
+
return $this->viewResponse('record-page', [
- 'clipboard_facts' => new Collection(),
- 'linked_families' => $record->linkedFamilies($record->tag()),
- 'linked_individuals' => $record->linkedIndividuals($record->tag()),
- 'linked_media_objects' => $record->linkedMedia($record->tag()),
- 'linked_notes' => $record->linkedNotes($record->tag()),
- 'linked_sources' => $record->linkedSources($record->tag()),
+ 'clipboard_facts' => $this->clipboard_service->pastableFacts($record),
+ 'linked_families' => $linked_families->isEmpty() ? null : $linked_families,
+ 'linked_individuals' => $linked_individuals->isEmpty() ? null : $linked_individuals,
+ 'linked_locations' => $linked_locations->isEmpty() ? null : $linked_locations,
+ 'linked_media_objects' => $linked_media->isEmpty() ? null : $linked_media,
+ 'linked_notes' => $linked_notes->isEmpty() ? null : $linked_notes,
+ 'linked_repositories' => $linked_repositories->isEmpty() ? null : $linked_repositories,
+ 'linked_sources' => $linked_sources->isEmpty() ? null : $linked_sources,
+ 'linked_submitters' => $linked_submitters->isEmpty() ? null : $linked_submitters,
'record' => $record,
'title' => $record->fullName(),
'tree' => $tree,