summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Functions/FunctionsPrint.php1
-rw-r--r--app/Http/Controllers/BranchesController.php5
-rw-r--r--app/Http/Controllers/IndividualController.php1
-rw-r--r--app/Http/Controllers/ListController.php5
-rw-r--r--app/Http/Middleware/Router.php6
-rw-r--r--app/Http/RequestHandlers/EditRawFactPage.php1
-rw-r--r--app/Http/RequestHandlers/EditRawRecordPage.php1
-rw-r--r--app/Http/RequestHandlers/PasswordResetPage.php8
-rw-r--r--app/Http/RequestHandlers/SearchAdvancedPage.php1
-rw-r--r--app/Http/ViewResponseTrait.php2
-rw-r--r--app/Module/AncestorsChartModule.php7
-rw-r--r--app/Module/CompactTreeChartModule.php1
-rw-r--r--app/Module/DescendancyChartModule.php7
-rw-r--r--app/Module/DescendancyModule.php1
-rw-r--r--app/Module/FamilyBookChartModule.php1
-rw-r--r--app/Module/FanChartModule.php1
-rw-r--r--app/Module/HourglassChartModule.php1
-rw-r--r--app/Module/InteractiveTree/TreeView.php1
-rw-r--r--app/Module/LifespansChartModule.php1
-rw-r--r--app/Module/LoginBlockModule.php1
-rw-r--r--app/Module/PedigreeChartModule.php1
-rw-r--r--app/Module/StatisticsChartModule.php1
-rw-r--r--app/Module/TimelineChartModule.php1
-rw-r--r--app/View.php23
-rw-r--r--resources/views/individual-page.phtml2
-rw-r--r--resources/views/place-events.phtml4
-rw-r--r--resources/views/repository-list-page.phtml2
-rw-r--r--resources/views/repository-page.phtml2
-rw-r--r--resources/views/search-advanced-page.phtml2
-rw-r--r--resources/views/search-general-page.phtml2
-rw-r--r--resources/views/search-phonetic-page.phtml2
-rw-r--r--resources/views/source-list-page.phtml2
-rw-r--r--tests/TestCase.php3
-rw-r--r--tests/app/Http/RequestHandlers/LoginPageTest.php1
-rw-r--r--tests/app/Http/RequestHandlers/PasswordResetPageTest.php4
35 files changed, 53 insertions, 52 deletions
diff --git a/app/Functions/FunctionsPrint.php b/app/Functions/FunctionsPrint.php
index 4914aa470c..da60cfcc7f 100644
--- a/app/Functions/FunctionsPrint.php
+++ b/app/Functions/FunctionsPrint.php
@@ -488,6 +488,7 @@ class FunctionsPrint
'add_facts' => $translated_addfacts,
'quick_facts' => $quickfacts,
'record' => $record,
+ 'tree' => $tree,
]);
}
}
diff --git a/app/Http/Controllers/BranchesController.php b/app/Http/Controllers/BranchesController.php
index f3260aa8b3..c85ec9971f 100644
--- a/app/Http/Controllers/BranchesController.php
+++ b/app/Http/Controllers/BranchesController.php
@@ -37,6 +37,7 @@ use Illuminate\Database\Query\JoinClause;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
+use function assert;
use function stripos;
use function view;
@@ -67,6 +68,9 @@ class BranchesController extends AbstractBaseController
*/
public function page(ServerRequestInterface $request): ResponseInterface
{
+ $tree = $request->getAttribute('tree');
+ assert($tree instanceof Tree);
+
$module = $request->getAttribute('module');
$action = $request->getAttribute('action');
@@ -87,6 +91,7 @@ class BranchesController extends AbstractBaseController
'soundex_std' => $soundex_std,
'surname' => $surname,
'title' => $title,
+ 'tree' => $tree,
'module' => $module,
'action' => $action,
]);
diff --git a/app/Http/Controllers/IndividualController.php b/app/Http/Controllers/IndividualController.php
index 2268fd4b1a..9c8526f970 100644
--- a/app/Http/Controllers/IndividualController.php
+++ b/app/Http/Controllers/IndividualController.php
@@ -163,6 +163,7 @@ class IndividualController extends AbstractBaseController
'tabs' => $this->getTabs($individual),
'significant' => $this->significant($individual),
'title' => $individual->fullName() . ' ' . $individual->getLifeSpan(),
+ 'tree' => $tree,
'user_link' => $user_link,
]);
}
diff --git a/app/Http/Controllers/ListController.php b/app/Http/Controllers/ListController.php
index 49a58409e0..2f0af7910a 100644
--- a/app/Http/Controllers/ListController.php
+++ b/app/Http/Controllers/ListController.php
@@ -394,6 +394,7 @@ class ListController extends AbstractBaseController
return $this->viewResponse('individual-list-page', [
'content' => $html,
'title' => $title,
+ 'tree' => $tree,
]);
}
@@ -454,6 +455,7 @@ class ListController extends AbstractBaseController
'pages' => $pages,
'subdirs' => $subdirs,
'title' => I18N::translate('Media'),
+ 'tree' => $tree,
'module' => $module,
'action' => $action,
]);
@@ -474,6 +476,7 @@ class ListController extends AbstractBaseController
return $this->viewResponse('note-list-page', [
'notes' => $notes,
'title' => I18N::translate('Shared notes'),
+ 'tree' => $tree,
]);
}
@@ -492,6 +495,7 @@ class ListController extends AbstractBaseController
return $this->viewResponse('repository-list-page', [
'repositories' => $repositories,
'title' => I18N::translate('Repositories'),
+ 'tree' => $tree,
]);
}
@@ -510,6 +514,7 @@ class ListController extends AbstractBaseController
return $this->viewResponse('source-list-page', [
'sources' => $sources,
'title' => I18N::translate('Sources'),
+ 'tree' => $tree,
]);
}
diff --git a/app/Http/Middleware/Router.php b/app/Http/Middleware/Router.php
index 315691b9d5..68b2dcc02d 100644
--- a/app/Http/Middleware/Router.php
+++ b/app/Http/Middleware/Router.php
@@ -84,9 +84,8 @@ class Router implements MiddlewareInterface
// No route matched?
if ($route === false) {
- // Bind the request into the container and the layout
+ // Bind the request into the container
app()->instance(ServerRequestInterface::class, $request);
- View::share('request', $request);
return $handler->handle($request);
}
@@ -116,9 +115,8 @@ class Router implements MiddlewareInterface
$request = $request->withAttribute($key, $value);
}
- // Bind the request into the container and the layout
+ // Bind the request into the container
app()->instance(ServerRequestInterface::class, $request);
- View::share('request', $request);
$dispatcher = new Dispatcher($middleware, app());
diff --git a/app/Http/RequestHandlers/EditRawFactPage.php b/app/Http/RequestHandlers/EditRawFactPage.php
index f65c4d2181..d09d6b66f2 100644
--- a/app/Http/RequestHandlers/EditRawFactPage.php
+++ b/app/Http/RequestHandlers/EditRawFactPage.php
@@ -62,6 +62,7 @@ class EditRawFactPage implements RequestHandlerInterface
return $this->viewResponse('edit/raw-gedcom-fact', [
'fact' => $fact,
'title' => $title,
+ 'tree' => $tree,
]);
}
}
diff --git a/app/Http/RequestHandlers/EditRawRecordPage.php b/app/Http/RequestHandlers/EditRawRecordPage.php
index 2217783ae1..9a40041de1 100644
--- a/app/Http/RequestHandlers/EditRawRecordPage.php
+++ b/app/Http/RequestHandlers/EditRawRecordPage.php
@@ -57,6 +57,7 @@ class EditRawRecordPage implements RequestHandlerInterface
return $this->viewResponse('edit/raw-gedcom-record', [
'record' => $record,
'title' => $title,
+ 'tree' => $tree,
]);
}
}
diff --git a/app/Http/RequestHandlers/PasswordResetPage.php b/app/Http/RequestHandlers/PasswordResetPage.php
index 63a4eada7b..f5e68d8c55 100644
--- a/app/Http/RequestHandlers/PasswordResetPage.php
+++ b/app/Http/RequestHandlers/PasswordResetPage.php
@@ -58,12 +58,18 @@ class PasswordResetPage implements RequestHandlerInterface, StatusCodeInterface
*/
public function handle(ServerRequestInterface $request): ResponseInterface
{
+ $tree = $request->getAttribute('tree');
$title = I18N::translate('Set a new password');
$token = $request->getQueryParams()['token'] ?? '';
$user = $this->user_service->findByToken($token);
if ($user instanceof User) {
- return $this->viewResponse('password-reset-page', ['title' => $title, 'user' => $user, 'token' => $token]);
+ return $this->viewResponse('password-reset-page', [
+ 'title' => $title,
+ 'tree' => $tree,
+ 'user' => $user,
+ 'token' => $token,
+ ]);
}
$message1 = I18N::translate('The password reset link has expired.');
diff --git a/app/Http/RequestHandlers/SearchAdvancedPage.php b/app/Http/RequestHandlers/SearchAdvancedPage.php
index 8596fc9d2d..2bec3948fb 100644
--- a/app/Http/RequestHandlers/SearchAdvancedPage.php
+++ b/app/Http/RequestHandlers/SearchAdvancedPage.php
@@ -174,6 +174,7 @@ class SearchAdvancedPage implements RequestHandlerInterface
'name_options' => $name_options,
'other_fields' => $other_fields,
'title' => $title,
+ 'tree' => $tree,
]);
}
diff --git a/app/Http/ViewResponseTrait.php b/app/Http/ViewResponseTrait.php
index 3a9fb5a867..e008acb5de 100644
--- a/app/Http/ViewResponseTrait.php
+++ b/app/Http/ViewResponseTrait.php
@@ -21,6 +21,7 @@ namespace Fisharebest\Webtrees\Http;
use Fig\Http\Message\StatusCodeInterface;
use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
use function response;
use function view;
@@ -48,6 +49,7 @@ trait ViewResponseTrait
// Render the view
$layout_data['content'] = view($view_name, $view_data);
+ $layout_data['request'] = app(ServerRequestInterface::class);
// Most pages use the default layout. Other built-in layouts include admin and ajax.
$layout = $this->layout;
diff --git a/app/Module/AncestorsChartModule.php b/app/Module/AncestorsChartModule.php
index cc62b41601..e6103b2010 100644
--- a/app/Module/AncestorsChartModule.php
+++ b/app/Module/AncestorsChartModule.php
@@ -29,7 +29,6 @@ use Fisharebest\Webtrees\Services\ChartService;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
-
use function app;
use function assert;
use function max;
@@ -230,10 +229,7 @@ class AncestorsChartModule extends AbstractModule implements ModuleChartInterfac
}
}
- return $this->viewResponse('lists/families-table', [
- 'families' => $families,
- 'tree' => $tree,
- ]);
+ return $this->viewResponse('lists/families-table', ['families' => $families, 'tree' => $tree]);
}
}
@@ -254,6 +250,7 @@ class AncestorsChartModule extends AbstractModule implements ModuleChartInterfac
'style' => $style,
'styles' => $this->styles(),
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
]);
}
diff --git a/app/Module/CompactTreeChartModule.php b/app/Module/CompactTreeChartModule.php
index 95c34a7e0c..6b3ecfe154 100644
--- a/app/Module/CompactTreeChartModule.php
+++ b/app/Module/CompactTreeChartModule.php
@@ -187,6 +187,7 @@ class CompactTreeChartModule extends AbstractModule implements ModuleChartInterf
'individual' => $individual,
'module' => $this->name(),
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
]);
}
}
diff --git a/app/Module/DescendancyChartModule.php b/app/Module/DescendancyChartModule.php
index 6c84a5829f..97e11698da 100644
--- a/app/Module/DescendancyChartModule.php
+++ b/app/Module/DescendancyChartModule.php
@@ -29,7 +29,6 @@ use Fisharebest\Webtrees\Services\ChartService;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
-
use function app;
use function assert;
use function max;
@@ -220,10 +219,7 @@ class DescendancyChartModule extends AbstractModule implements ModuleChartInterf
case self::CHART_STYLE_FAMILIES:
$families = $this->chart_service->descendantFamilies($individual, $generations - 1);
- return $this->viewResponse('lists/families-table', [
- 'families' => $families,
- 'tree' => $tree,
- ]);
+ return $this->viewResponse('lists/families-table', ['families' => $families, 'tree' => $tree]);
}
}
@@ -244,6 +240,7 @@ class DescendancyChartModule extends AbstractModule implements ModuleChartInterf
'minimum_generations' => self::MINIMUM_GENERATIONS,
'module' => $this->name(),
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
]);
}
diff --git a/app/Module/DescendancyModule.php b/app/Module/DescendancyModule.php
index 7b2ae85fea..6ea2a53a7d 100644
--- a/app/Module/DescendancyModule.php
+++ b/app/Module/DescendancyModule.php
@@ -152,6 +152,7 @@ class DescendancyModule extends AbstractModule implements ModuleSidebarInterface
{
return view('modules/descendancy/sidebar', [
'individual_list' => $this->getPersonLi($individual, 1),
+ 'tree' => $individual->tree(),
]);
}
diff --git a/app/Module/FamilyBookChartModule.php b/app/Module/FamilyBookChartModule.php
index 1d30799570..4bda497af6 100644
--- a/app/Module/FamilyBookChartModule.php
+++ b/app/Module/FamilyBookChartModule.php
@@ -217,6 +217,7 @@ class FamilyBookChartModule extends AbstractModule implements ModuleChartInterfa
'module' => $this->name(),
'spouses' => $spouses,
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
]);
}
}
diff --git a/app/Module/FanChartModule.php b/app/Module/FanChartModule.php
index 078a7e5a41..bfdccbf124 100644
--- a/app/Module/FanChartModule.php
+++ b/app/Module/FanChartModule.php
@@ -236,6 +236,7 @@ class FanChartModule extends AbstractModule implements ModuleChartInterface, Req
'style' => $style,
'styles' => $this->styles(),
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
'width' => $width,
]);
}
diff --git a/app/Module/HourglassChartModule.php b/app/Module/HourglassChartModule.php
index e514427e8b..9993102d43 100644
--- a/app/Module/HourglassChartModule.php
+++ b/app/Module/HourglassChartModule.php
@@ -207,6 +207,7 @@ class HourglassChartModule extends AbstractModule implements ModuleChartInterfac
'module' => $this->name(),
'spouses' => $spouses,
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
]);
}
diff --git a/app/Module/InteractiveTree/TreeView.php b/app/Module/InteractiveTree/TreeView.php
index a16a44f80c..2af566dcf6 100644
--- a/app/Module/InteractiveTree/TreeView.php
+++ b/app/Module/InteractiveTree/TreeView.php
@@ -59,6 +59,7 @@ class TreeView
'module' => 'tree',
'name' => $this->name,
'individual' => $this->drawPerson($individual, $generations, 0, null, '', true),
+ 'tree' => $individual->tree(),
]);
return [
diff --git a/app/Module/LifespansChartModule.php b/app/Module/LifespansChartModule.php
index 04f4e1480d..89fb4da047 100644
--- a/app/Module/LifespansChartModule.php
+++ b/app/Module/LifespansChartModule.php
@@ -202,6 +202,7 @@ class LifespansChartModule extends AbstractModule implements ModuleChartInterfac
'module' => $this->name(),
'reset_url' => $reset_url,
'title' => $this->title(),
+ 'tree' => $tree,
'xrefs' => $xrefs,
]);
}
diff --git a/app/Module/LoginBlockModule.php b/app/Module/LoginBlockModule.php
index cc3f768d9d..a2dc51bc41 100644
--- a/app/Module/LoginBlockModule.php
+++ b/app/Module/LoginBlockModule.php
@@ -75,6 +75,7 @@ class LoginBlockModule extends AbstractModule implements ModuleBlockInterface
$title = I18N::translate('Sign in');
$content = view('modules/login_block/sign-in', [
'allow_register' => (bool) Site::getPreference('USE_REGISTRATION_MODULE'),
+ 'tree' => $tree,
]);
}
diff --git a/app/Module/PedigreeChartModule.php b/app/Module/PedigreeChartModule.php
index b6716cc9bc..4be91fac96 100644
--- a/app/Module/PedigreeChartModule.php
+++ b/app/Module/PedigreeChartModule.php
@@ -259,6 +259,7 @@ class PedigreeChartModule extends AbstractModule implements ModuleChartInterface
'style' => $style,
'styles' => $this->styles(),
'title' => $this->chartTitle($individual),
+ 'tree' => $tree,
]);
}
diff --git a/app/Module/StatisticsChartModule.php b/app/Module/StatisticsChartModule.php
index 11dc353f9a..983523e45a 100644
--- a/app/Module/StatisticsChartModule.php
+++ b/app/Module/StatisticsChartModule.php
@@ -177,6 +177,7 @@ class StatisticsChartModule extends AbstractModule implements ModuleChartInterfa
'module' => $this->name(),
'tabs' => $tabs,
'title' => $this->title(),
+ 'tree' => $tree,
]);
}
diff --git a/app/Module/TimelineChartModule.php b/app/Module/TimelineChartModule.php
index e4c43f3ca5..a2ab132b11 100644
--- a/app/Module/TimelineChartModule.php
+++ b/app/Module/TimelineChartModule.php
@@ -240,6 +240,7 @@ class TimelineChartModule extends AbstractModule implements ModuleChartInterface
'reset_url' => $reset_url,
'scale' => $scale,
'title' => $this->title(),
+ 'tree' => $tree,
'zoom_in_url' => $zoom_in_url,
'zoom_out_url' => $zoom_out_url,
]);
diff --git a/app/View.php b/app/View.php
index 7e22b07c3d..16e5c85f98 100644
--- a/app/View.php
+++ b/app/View.php
@@ -36,6 +36,8 @@ use function ob_get_level;
use function ob_start;
use function sha1;
+use const EXTR_OVERWRITE;
+
/**
* Simple view/template class.
*/
@@ -69,11 +71,6 @@ class View
private static $replacements = [];
/**
- * @var mixed[] Data to be inserted into all views.
- */
- private static $shared_data = [];
-
- /**
* @var string Implementation of Blade "stacks".
*/
private static $stack;
@@ -96,19 +93,6 @@ class View
}
/**
- * Shared data that is available to all views.
- *
- * @param string $key
- * @param mixed $value
- *
- * @return void
- */
- public static function share(string $key, $value): void
- {
- self::$shared_data[$key] = $value;
- }
-
- /**
* Implementation of Blade "stacks".
*
* @see https://laravel.com/docs/5.5/blade#stacks
@@ -194,8 +178,7 @@ class View
*/
public function render(): string
{
- $variables_for_view = $this->data + self::$shared_data;
- extract($variables_for_view, EXTR_SKIP);
+ extract($this->data, EXTR_OVERWRITE);
try {
ob_start();
diff --git a/resources/views/individual-page.phtml b/resources/views/individual-page.phtml
index 88c2aaa454..cd65e15b3f 100644
--- a/resources/views/individual-page.phtml
+++ b/resources/views/individual-page.phtml
@@ -46,7 +46,7 @@ use Illuminate\Support\Collection;
<?= $individual->fullName() ?><?= $user_link ?>, <?= $individual->getLifeSpan() ?> <?= $age ?>
</h2>
<?php if ($individual->canEdit()) : ?>
- <?= view('individual-page-menu', ['individual' => $individual, 'count_names' => $count_names, 'count_sex' => $count_sex]) ?>
+ <?= view('individual-page-menu', ['individual' => $individual, 'count_names' => $count_names, 'count_sex' => $count_sex, 'tree' => $tree]) ?>
<?php endif ?>
</div>
diff --git a/resources/views/place-events.phtml b/resources/views/place-events.phtml
index 8e4c33fc1b..37766a0431 100644
--- a/resources/views/place-events.phtml
+++ b/resources/views/place-events.phtml
@@ -31,9 +31,7 @@
<?php if (empty($famlist)) : ?>
<p><?= I18N::translate('No results found.') ?></p>
<?php else : ?>
- <?= view('lists/families-table', [
- 'families' => $famlist,
- ]) ?>
+ <?= view('lists/families-table', ['families' => $famlist, 'tree' => $tree]) ?>
<?php endif ?>
</div>
</div>
diff --git a/resources/views/repository-list-page.phtml b/resources/views/repository-list-page.phtml
index 38aadbd5e6..19ffc64459 100644
--- a/resources/views/repository-list-page.phtml
+++ b/resources/views/repository-list-page.phtml
@@ -3,5 +3,5 @@
</h2>
<div class="wt-page-content">
- <?= view('lists/repositories-table', ['repositories' => $repositories]) ?>
+ <?= view('lists/repositories-table', ['repositories' => $repositories, 'tree' => $tree]) ?>
</div>
diff --git a/resources/views/repository-page.phtml b/resources/views/repository-page.phtml
index 9e169db337..ece5b25199 100644
--- a/resources/views/repository-page.phtml
+++ b/resources/views/repository-page.phtml
@@ -63,7 +63,7 @@ use Fisharebest\Webtrees\I18N;
</div>
<div class="tab-pane fade" role="tabpanel" id="sources">
- <?= view('lists/sources-table', ['sources' => $sources]) ?>
+ <?= view('lists/sources-table', ['sources' => $sources, 'tree' => $tree]) ?>
</div>
</div>
</div>
diff --git a/resources/views/search-advanced-page.phtml b/resources/views/search-advanced-page.phtml
index 72de97fd02..5512e60ae9 100644
--- a/resources/views/search-advanced-page.phtml
+++ b/resources/views/search-advanced-page.phtml
@@ -81,7 +81,7 @@ use Fisharebest\Webtrees\I18N;
<?= I18N::translate('No results found.') ?>
</div>
<?php else : ?>
- <?= view('search-results', ['individuals' => $individuals, 'search_families' => false, 'search_individuals' => true, 'search_notes' => false, 'search_sources' => false, 'search_repositories' => false]) ?>
+ <?= view('search-results', ['individuals' => $individuals, 'search_families' => false, 'search_individuals' => true, 'search_notes' => false, 'search_sources' => false, 'search_repositories' => false, 'tree' => $tree]) ?>
<?php endif ?>
<?php endif ?>
diff --git a/resources/views/search-general-page.phtml b/resources/views/search-general-page.phtml
index 970db3cc80..a8d1cfeb13 100644
--- a/resources/views/search-general-page.phtml
+++ b/resources/views/search-general-page.phtml
@@ -113,7 +113,7 @@ use Fisharebest\Webtrees\I18N;
<?= I18N::translate('No results found.') ?>
</div>
<?php else : ?>
- <?= view('search-results', ['families' => $families, 'individuals' => $individuals, 'notes' => $notes, 'repositories' => $repositories, 'sources' => $sources, 'search_families' => $search_families, 'search_individuals' => $search_individuals, 'search_notes' => $search_notes, 'search_repositories' => $search_repositories, 'search_sources' => $search_sources]) ?>
+ <?= view('search-results', ['families' => $families, 'individuals' => $individuals, 'notes' => $notes, 'repositories' => $repositories, 'sources' => $sources, 'search_families' => $search_families, 'search_individuals' => $search_individuals, 'search_notes' => $search_notes, 'search_repositories' => $search_repositories, 'search_sources' => $search_sources, 'tree' => $tree]) ?>
<?php endif ?>
<?php endif ?>
diff --git a/resources/views/search-phonetic-page.phtml b/resources/views/search-phonetic-page.phtml
index 2b9ff8deab..d328db5928 100644
--- a/resources/views/search-phonetic-page.phtml
+++ b/resources/views/search-phonetic-page.phtml
@@ -114,7 +114,7 @@ use Fisharebest\Webtrees\I18N;
<?= I18N::translate('No results found.') ?>
</div>
<?php else : ?>
- <?= view('search-results', ['individuals' => $individuals, 'search_families' => false, 'search_individuals' => true, 'search_notes' => false, 'search_sources' => false, 'search_repositories' => false]) ?>
+ <?= view('search-results', ['individuals' => $individuals, 'search_families' => false, 'search_individuals' => true, 'search_notes' => false, 'search_sources' => false, 'search_repositories' => false, 'tree' => $tree]) ?>
<?php endif ?>
<?php endif ?>
diff --git a/resources/views/source-list-page.phtml b/resources/views/source-list-page.phtml
index 71dfa710d3..146fb1ef6e 100644
--- a/resources/views/source-list-page.phtml
+++ b/resources/views/source-list-page.phtml
@@ -3,5 +3,5 @@
</h2>
<div class="wt-page-content">
- <?= view('lists/sources-table', ['sources' => $sources]) ?>
+ <?= view('lists/sources-table', ['sources' => $sources, 'tree' => $tree]) ?>
</div>
diff --git a/tests/TestCase.php b/tests/TestCase.php
index 84cbcdc6c3..b886570ef1 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -174,7 +174,6 @@ class TestCase extends \PHPUnit\Framework\TestCase
->withAttribute('locale', new LocaleEnUs());
app()->instance(ServerRequestInterface::class, $request);
- View::share('request', $request);
return $request;
}
@@ -222,8 +221,6 @@ class TestCase extends \PHPUnit\Framework\TestCase
$tree->importGedcomFile($stream, $gedcom_file);
- View::share('tree', $tree);
-
$timeout_service = new TimeoutService(microtime(true));
$controller = new GedcomFileController($timeout_service);
$request = self::createRequest()->withAttribute('tree', $tree);
diff --git a/tests/app/Http/RequestHandlers/LoginPageTest.php b/tests/app/Http/RequestHandlers/LoginPageTest.php
index 5493c3073f..45cad5e138 100644
--- a/tests/app/Http/RequestHandlers/LoginPageTest.php
+++ b/tests/app/Http/RequestHandlers/LoginPageTest.php
@@ -36,7 +36,6 @@ class LoginPageTest extends TestCase
public function testLoginPage(): void
{
$tree_service = new TreeService();
- View::share('tree', null);
$request = self::createRequest();
$handler = new LoginPage($tree_service);
$response = $handler->handle($request);
diff --git a/tests/app/Http/RequestHandlers/PasswordResetPageTest.php b/tests/app/Http/RequestHandlers/PasswordResetPageTest.php
index 9c290aebb3..6c853730d9 100644
--- a/tests/app/Http/RequestHandlers/PasswordResetPageTest.php
+++ b/tests/app/Http/RequestHandlers/PasswordResetPageTest.php
@@ -41,9 +41,7 @@ class PasswordResetPageTest extends TestCase
$user_service = $this->createMock(UserService::class);
$user_service->expects($this->once())->method('findByToken')->willReturn($user);
- View::share('tree', null);
-
- $request = self::createRequest();
+ $request = self::createRequest()->withAttribute('tree', null);
$handler = new PasswordResetPage($user_service);
$response = $handler->handle($request);