1beefaa8eSGreg Roach<?php 2beefaa8eSGreg Roach 3e381f98dSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\BroadcastPage; 4fd6c003fSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CleanDataFolder; 5b1a54200SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel; 65afbc57aSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateTreePage; 764d12f7bSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\EmailPreferencesPage; 8*8ce3bd73SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ManageMediaPage; 96fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ManageTrees; 1094e35917SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\MapDataList; 116fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\MergeTreesPage; 1241170634SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesAllPage; 139f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesAnalyticsPage; 149f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesBlocksPage; 159f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesChartsPage; 169f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesDataFixesPage; 179f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesFootersPage; 189f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesHistoricEventsPage; 199f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesLanguagesPage; 209f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesListsPage; 219f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesMenusPage; 229f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesReportsPage; 239f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesSidebarsPage; 249f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesTabsPage; 259f667ff2SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ModulesThemesPage; 2622e73debSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\PendingChanges; 27b1a54200SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\PhpInformation; 2857bfa969SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\SiteLogsPage; 29c7aa856bSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\SitePreferencesPage; 30c7aa856bSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\SiteRegistrationPage; 318e0e1b25SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePageDefaultEdit; 32*8ce3bd73SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\UploadMediaPage; 338e0e1b25SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\UserPageDefaultEdit; 342474349cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\UsersCleanupPage; 35beefaa8eSGreg Roachuse Fisharebest\Webtrees\I18N; 36b1a54200SGreg Roachuse Fisharebest\Webtrees\Module\FamilyListModule; 37b1a54200SGreg Roachuse Fisharebest\Webtrees\Module\IndividualListModule; 38b1a54200SGreg Roachuse Fisharebest\Webtrees\Module\MediaListModule; 3941170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleAnalyticsInterface; 4041170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleBlockInterface; 4141170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleChartInterface; 42beefaa8eSGreg Roachuse Fisharebest\Webtrees\Module\ModuleConfigInterface; 43beefaa8eSGreg Roachuse Fisharebest\Webtrees\Module\ModuleCustomInterface; 4441170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleDataFixInterface; 4541170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleFooterInterface; 4641170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleHistoricEventsInterface; 4741170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleInterface; 4841170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleLanguageInterface; 4941170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleListInterface; 5041170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleMenuInterface; 5141170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleReportInterface; 5241170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleSidebarInterface; 5341170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleTabInterface; 5441170634SGreg Roachuse Fisharebest\Webtrees\Module\ModuleThemeInterface; 55b1a54200SGreg Roachuse Fisharebest\Webtrees\Module\NoteListModule; 56b1a54200SGreg Roachuse Fisharebest\Webtrees\Module\RepositoryListModule; 57b1a54200SGreg Roachuse Fisharebest\Webtrees\Module\SourceListModule; 58e72c24d6SGreg Roachuse Fisharebest\Webtrees\Module\SubmitterListModule; 5941170634SGreg Roachuse Fisharebest\Webtrees\Tree; 6041170634SGreg Roachuse Fisharebest\Webtrees\User; 61beefaa8eSGreg Roachuse Fisharebest\Webtrees\Webtrees; 62beefaa8eSGreg Roachuse Illuminate\Support\Collection; 63beefaa8eSGreg Roach 64beefaa8eSGreg Roach/** 6541170634SGreg Roach * @var Collection<User> $administrators 6641170634SGreg Roach * @var Collection<ModuleInterface> $all_modules_disabled 6741170634SGreg Roach * @var Collection<ModuleInterface> $all_modules_enabled 6841170634SGreg Roach * @var Collection<Tree> $all_trees 6941170634SGreg Roach * @var Collection<User> $all_users 7041170634SGreg Roach * @var Collection<ModuleAnalyticsInterface> $analytics_modules_disabled 7141170634SGreg Roach * @var Collection<ModuleAnalyticsInterface> $analytics_modules_enabled 7241170634SGreg Roach * @var Collection<ModuleBlockInterface> $block_modules_disabled 7341170634SGreg Roach * @var Collection<ModuleBlockInterface> $block_modules_enabled 7441170634SGreg Roach * @var array<string,int> $changes 7541170634SGreg Roach * @var Collection<ModuleChartInterface> $chart_modules_disabled 7641170634SGreg Roach * @var Collection<ModuleChartInterface> $chart_modules_enabled 7764d12f7bSGreg Roach * @var Collection<ModuleCustomInterface> $custom_updates 7841170634SGreg Roach * @var Collection<ModuleDataFixInterface> $data_fix_modules_disabled 7941170634SGreg Roach * @var Collection<ModuleDataFixInterface> $data_fix_modules_enabled 8041170634SGreg Roach * @var Collection<string,int> $families 8141170634SGreg Roach * @var FamilyListModule|null $family_list_module 8241170634SGreg Roach * @var Collection<ModuleFooterInterface> $footer_modules_disabled 8341170634SGreg Roach * @var Collection<ModuleFooterInterface> $footer_modules_enabled 8441170634SGreg Roach * @var Collection<ModuleHistoricEventsInterface> $history_modules_disabled 8541170634SGreg Roach * @var Collection<ModuleHistoricEventsInterface> $history_modules_enabled 8641170634SGreg Roach * @var Collection<string,int> $individuals 8741170634SGreg Roach * @var IndividualListModule|null $individual_list_module 8841170634SGreg Roach * @var Collection<ModuleLanguageInterface> $language_modules_disabled 8941170634SGreg Roach * @var Collection<ModuleLanguageInterface> $language_modules_enabled 90beefaa8eSGreg Roach * @var string $latest_version 9141170634SGreg Roach * @var Collection<ModuleListInterface> $list_modules_disabled 9241170634SGreg Roach * @var Collection<ModuleListInterface> $list_modules_enabled 9341170634SGreg Roach * @var Collection<User> $managers 9441170634SGreg Roach * @var Collection<string,int> $media 9541170634SGreg Roach * @var MediaListModule|null $media_list_module 9641170634SGreg Roach * @var Collection<ModuleMenuInterface> $menu_modules_disabled 9741170634SGreg Roach * @var Collection<ModuleMenuInterface> $menu_modules_enabled 9841170634SGreg Roach * @var Collection<User> $moderators 9941170634SGreg Roach * @var Collection<string,int> $notes 10041170634SGreg Roach * @var NoteListModule|null $note_list_module 10141170634SGreg Roach * @var Collection<ModuleInterface> $other_modules 10241170634SGreg Roach * @var Collection<ModuleReportInterface> $report_modules_disabled 10341170634SGreg Roach * @var Collection<ModuleReportInterface> $report_modules_enabled 10441170634SGreg Roach * @var Collection<string,int> $repositories 10541170634SGreg Roach * @var RepositoryListModule|null $repository_list_module 10664d12f7bSGreg Roach * @var Collection<string> $server_errors 10764d12f7bSGreg Roach * @var Collection<string> $server_warnings 1086fd01894SGreg Roach * @var bool $show_synchronize 10941170634SGreg Roach * @var Collection<ModuleSidebarInterface> $sidebar_modules_disabled 11041170634SGreg Roach * @var Collection<ModuleSidebarInterface> $sidebar_modules_enabled 11141170634SGreg Roach * @var Collection<string,int> $sources 11241170634SGreg Roach * @var SourceListModule|null $source_list_module 11341170634SGreg Roach * @var Collection<string,int> $submitters 11441170634SGreg Roach * @var SubmitterListModule|null $submitter_list_module 11541170634SGreg Roach * @var Collection<ModuleTabInterface> $tab_modules_disabled 11641170634SGreg Roach * @var Collection<ModuleTabInterface> $tab_modules_enabled 11741170634SGreg Roach * @var Collection<ModuleThemeInterface> $theme_modules_disabled 11841170634SGreg Roach * @var Collection<ModuleThemeInterface> $theme_modules_enabled 11941170634SGreg Roach * @var string $title 12041170634SGreg Roach * @var Collection<User> $unapproved 12141170634SGreg Roach * @var Collection<User> $unverified 122beefaa8eSGreg Roach */ 123beefaa8eSGreg Roach 124beefaa8eSGreg Roach?> 125dd6b2bfcSGreg Roach 126dd6b2bfcSGreg Roach<h1><?= $title ?></h1> 127dd6b2bfcSGreg Roach 128dd6b2bfcSGreg Roach<!-- WEBSITE / WEBTREES --> 129dd6b2bfcSGreg Roach<div class="card mb-4"> 130dd6b2bfcSGreg Roach <div class="card-header"> 131dd6b2bfcSGreg Roach <h2 class="mb-0"> 132dd6b2bfcSGreg Roach <?= I18N::translate('Website') ?> 1334ebbf4abSGreg Roach <span class="badge badge-secondary" dir="ltr"> 1348d0ebef0SGreg Roach <?= e(Webtrees::VERSION) ?> 135dd6b2bfcSGreg Roach </span> 136dd6b2bfcSGreg Roach </h2> 137dd6b2bfcSGreg Roach </div> 138dd6b2bfcSGreg Roach <div class="card-body"> 139b7059dccSGreg Roach <?php foreach ($server_errors as $server_error) : ?> 140b7059dccSGreg Roach <p class="alert alert-danger"><?= $server_error ?></p> 141b7059dccSGreg Roach <?php endforeach ?> 142b7059dccSGreg Roach 143dd6b2bfcSGreg Roach <?php foreach ($server_warnings as $server_warning) : ?> 144dd6b2bfcSGreg Roach <p class="alert alert-warning"><?= $server_warning ?></p> 145dd6b2bfcSGreg Roach <?php endforeach ?> 146dd6b2bfcSGreg Roach 147dd6b2bfcSGreg Roach <p class="card-text"> 148dd6b2bfcSGreg Roach <?= /* I18N: %s is a URL/link to the project website */ 149dd6b2bfcSGreg Roach I18N::translate('Support and documentation can be found at %s.', '<a href="https://webtrees.net/">webtrees.net</a>') ?> 150dd6b2bfcSGreg Roach </p> 151dd6b2bfcSGreg Roach <p class="card-text"> 152dd6b2bfcSGreg Roach <?php if ($latest_version === '') : ?> 153dd6b2bfcSGreg Roach <?= I18N::translate('No upgrade information is available.') ?> 1548d0ebef0SGreg Roach <?php elseif (version_compare(Webtrees::VERSION, $latest_version) < 0) : ?> 1555b868ec0SGreg Roach <div class="alert alert-info"> 156dd6b2bfcSGreg Roach <?= I18N::translate('A new version of webtrees is available.') ?> 1575b868ec0SGreg Roach <a href="<?= e(route('upgrade')) ?>" class="alert-link"> 158dd6b2bfcSGreg Roach <?= /* I18N: %s is a version number */ 159dd6b2bfcSGreg Roach I18N::translate('Upgrade to webtrees %s.', e($latest_version)) ?> 160dd6b2bfcSGreg Roach </a> 1615b868ec0SGreg Roach </div> 162dd6b2bfcSGreg Roach <?php else : ?> 163dd6b2bfcSGreg Roach <?= I18N::translate('This is the latest version of webtrees. No upgrade is available.') ?> 164dd6b2bfcSGreg Roach <?php endif ?> 165dd6b2bfcSGreg Roach </p> 166dd6b2bfcSGreg Roach 16764d12f7bSGreg Roach <?php foreach ($custom_updates as $module) : ?> 16864d12f7bSGreg Roach <div class="alert alert-info"> 16964d12f7bSGreg Roach <?= view('icons/information') ?> 17064d12f7bSGreg Roach <?= I18N::translate('An upgrade is available.') ?> 17164d12f7bSGreg Roach <br> 17264d12f7bSGreg Roach <?= $module->title() ?> — <?= e($module->customModuleVersion()) ?> — <?= e($module->customModuleLatestVersion()) ?> 17364d12f7bSGreg Roach </div> 17464d12f7bSGreg Roach <?php endforeach ?> 17564d12f7bSGreg Roach 176dd6b2bfcSGreg Roach <div class="row"> 177dd6b2bfcSGreg Roach <div class="col-sm-6"> 178dd6b2bfcSGreg Roach <ul class="fa-ul"> 179dd6b2bfcSGreg Roach <li> 180dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/preferences') ?></span> 181c7aa856bSGreg Roach <a href="<?= e(route(SitePreferencesPage::class)) ?>"> 182dd6b2bfcSGreg Roach <?= I18N::translate('Website preferences') ?> 183dd6b2bfcSGreg Roach </a> 184dd6b2bfcSGreg Roach </li> 185dd6b2bfcSGreg Roach <li> 186a24f7142SGreg Roach <span class="fa-li"><?= view('icons/email') ?></span> 187b4144a6dSGreg Roach <a href="<?= e(route(EmailPreferencesPage::class)) ?>"> 188dd6b2bfcSGreg Roach <?= I18N::translate('Sending email') ?> 189dd6b2bfcSGreg Roach </a> 190dd6b2bfcSGreg Roach </li> 191dd6b2bfcSGreg Roach <li> 192a24f7142SGreg Roach <span class="fa-li"><?= view('icons/user') ?></span> 193c7aa856bSGreg Roach <a href="<?= e(route(SiteRegistrationPage::class)) ?>"> 194dd6b2bfcSGreg Roach <?= I18N::translate('Sign-in and registration') ?> 195dd6b2bfcSGreg Roach </a> 196dd6b2bfcSGreg Roach </li> 197dd6b2bfcSGreg Roach </ul> 198dd6b2bfcSGreg Roach </div> 199dd6b2bfcSGreg Roach <div class="col-sm-6"> 200dd6b2bfcSGreg Roach <ul class="fa-ul"> 201dd6b2bfcSGreg Roach <li> 202a24f7142SGreg Roach <span class="fa-li"><?= view('icons/list') ?></span> 20357bfa969SGreg Roach <a href="<?= e(route(SiteLogsPage::class)) ?>"> 204dd6b2bfcSGreg Roach <?= I18N::translate('Website logs') ?> 205dd6b2bfcSGreg Roach </a> 206dd6b2bfcSGreg Roach </li> 207dd6b2bfcSGreg Roach <li> 208a24f7142SGreg Roach <span class="fa-li"><?= view('icons/delete') ?></span> 209fd6c003fSGreg Roach <a href="<?= e(route(CleanDataFolder::class)) ?>"> 210dd6b2bfcSGreg Roach <?= I18N::translate('Clean up data folder') ?> 211dd6b2bfcSGreg Roach </a> 212dd6b2bfcSGreg Roach </li> 213dd6b2bfcSGreg Roach <li> 214a24f7142SGreg Roach <span class="fa-li"><?= view('icons/help') ?></span> 215b1a54200SGreg Roach <a href="<?= e(route(PhpInformation::class)) ?>"> 216dd6b2bfcSGreg Roach <?= I18N::translate('Server information') ?> 217dd6b2bfcSGreg Roach </a> 218dd6b2bfcSGreg Roach </li> 219dd6b2bfcSGreg Roach </ul> 220dd6b2bfcSGreg Roach </div> 221dd6b2bfcSGreg Roach </div> 222dd6b2bfcSGreg Roach </div> 223dd6b2bfcSGreg Roach</div> 224dd6b2bfcSGreg Roach 225dd6b2bfcSGreg Roach<!-- FAMILY TREES --> 2264e73f0bdSGreg Roach<div class="card mb-4 <?= array_sum($changes) ? 'card-outline-danger' : '' ?>"> 227dd6b2bfcSGreg Roach <div class="card-header"> 228dd6b2bfcSGreg Roach <h2 class="mb-0"> 229dd6b2bfcSGreg Roach <?= I18N::translate('Family trees') ?> 230dd6b2bfcSGreg Roach <span class="badge badge-secondary"> 23141170634SGreg Roach <?= I18N::number($all_trees->count()) ?> 232dd6b2bfcSGreg Roach </span> 233dd6b2bfcSGreg Roach </h2> 234dd6b2bfcSGreg Roach </div> 2356fd01894SGreg Roach 236dd6b2bfcSGreg Roach <div class="card-body"> 237e218f363SGreg Roach <?php if ($all_trees->isEmpty()) : ?> 238e218f363SGreg Roach <p class="alert alert-info"> 239e218f363SGreg Roach <?= I18N::translate('You need to create a family tree.') ?> 240e218f363SGreg Roach </p> 241e218f363SGreg Roach <?php endif ?> 242e218f363SGreg Roach 2435afbc57aSGreg Roach <ul class="fa-ul"> 2445afbc57aSGreg Roach <li> 2455afbc57aSGreg Roach <span class="fa-li"><?= view('icons/add') ?></span> 2465afbc57aSGreg Roach <a href="<?= e(route(CreateTreePage::class)) ?>"> 2475afbc57aSGreg Roach <?= I18N::translate('Create a family tree') ?> 2485afbc57aSGreg Roach </a> 2495afbc57aSGreg Roach </li> 2505afbc57aSGreg Roach <li> 2515afbc57aSGreg Roach <span class="fa-li"><?= view('icons/block') ?></span> 2528e0e1b25SGreg Roach <a href="<?= e(route(TreePageDefaultEdit::class)) ?>"> 2535afbc57aSGreg Roach <?= I18N::translate('Set the default blocks for new family trees') ?> 2545afbc57aSGreg Roach </a> 2555afbc57aSGreg Roach </li> 2565afbc57aSGreg Roach <?php if (count($all_trees) > 1) : ?> 2575afbc57aSGreg Roach <li> 2585afbc57aSGreg Roach <span class="fa-li"><?= view('icons/merge') ?></span> 2596fd01894SGreg Roach <a href="<?= e(route(MergeTreesPage::class)) ?>"> 2605afbc57aSGreg Roach <?= I18N::translate('Merge family trees') ?> 2615afbc57aSGreg Roach </a> 2625afbc57aSGreg Roach </li> 2635afbc57aSGreg Roach <?php endif ?> 2645afbc57aSGreg Roach </ul> 2655afbc57aSGreg Roach 266dd6b2bfcSGreg Roach <table class="table table-sm"> 267dd6b2bfcSGreg Roach <caption class="sr-only"> 268dd6b2bfcSGreg Roach <?= I18N::translate('Family trees') ?> 269dd6b2bfcSGreg Roach </caption> 2707039fd97SGreg Roach 271dd6b2bfcSGreg Roach <thead> 272dd6b2bfcSGreg Roach <tr> 273dd6b2bfcSGreg Roach <th><?= I18N::translate('Family tree') ?></th> 274e72c24d6SGreg Roach <th class="align-digits"><?= I18N::translate('Pending changes') ?></th> 275e72c24d6SGreg Roach <th class="d-none d-sm-table-cell align-digits"><?= I18N::translate('Individuals') ?></th> 276e72c24d6SGreg Roach <th class="d-none d-lg-table-cell align-digits"><?= I18N::translate('Families') ?></th> 277e72c24d6SGreg Roach <th class="d-none d-sm-table-cell align-digits"><?= I18N::translate('Sources') ?></th> 278e72c24d6SGreg Roach <th class="d-none d-lg-table-cell align-digits"><?= I18N::translate('Repositories') ?></th> 279e72c24d6SGreg Roach <th class="d-none d-sm-table-cell align-digits"><?= I18N::translate('Media') ?></th> 280e72c24d6SGreg Roach <th class="d-none d-lg-table-cell align-digits"><?= I18N::translate('Notes') ?></th> 281e72c24d6SGreg Roach <th class="d-none d-lg-table-cell align-digits"><?= I18N::translate('Submitters') ?></th> 282dd6b2bfcSGreg Roach </tr> 283dd6b2bfcSGreg Roach </thead> 2847039fd97SGreg Roach 285dd6b2bfcSGreg Roach <tbody> 286b1a54200SGreg Roach <?php foreach ($all_trees as $tree) : ?> 287b1a54200SGreg Roach <tr class="<?= $changes[$tree->id()] ? 'danger' : '' ?>"> 288b1a54200SGreg Roach <th scope="row"> 289b1a54200SGreg Roach <?= view('icons/preferences') ?> 2906fd01894SGreg Roach <a href="<?= e(route(ManageTrees::class, ['tree' => $tree->name()])) ?>"> 291b1a54200SGreg Roach <?= e($tree->name()) ?> 292b1a54200SGreg Roach - 293b1a54200SGreg Roach <?= e($tree->title()) ?> 294b1a54200SGreg Roach </a> 295b1a54200SGreg Roach </th> 296b1a54200SGreg Roach <td style="text-align: right;"> 297b1a54200SGreg Roach <?php if ($changes[$tree->id()]) : ?> 29822e73debSGreg Roach <a href="<?= e(route(PendingChanges::class, ['tree' => $tree->name(), 'url' => route(ControlPanel::class)])) ?>"> 299b1a54200SGreg Roach <?= I18N::number($changes[$tree->id()]) ?> 300b1a54200SGreg Roach <span class="sr-only"><?= I18N::translate('Pending changes') ?> <?= e($tree->title()) ?></span> 301b1a54200SGreg Roach </a> 302b1a54200SGreg Roach <?php else : ?> 303b1a54200SGreg Roach - 304b1a54200SGreg Roach <?php endif ?> 305b1a54200SGreg Roach </td> 306b1a54200SGreg Roach <td class="d-none d-sm-table-cell align-digits"> 307b1a54200SGreg Roach <?php if ($individuals[$tree->id()] > 0) : ?> 308b1a54200SGreg Roach <?php if ($individual_list_module instanceof IndividualListModule) : ?> 309b1a54200SGreg Roach <a href="<?= e($individual_list_module->listUrl($tree)) ?>"><?= I18N::number($individuals[$tree->id()]) ?></a> 310b1a54200SGreg Roach <?php else : ?> 311b1a54200SGreg Roach <?= I18N::number($individuals[$tree->id()]) ?> 312b1a54200SGreg Roach <?php endif ?> 313b1a54200SGreg Roach <?php else : ?> 314b1a54200SGreg Roach - 315b1a54200SGreg Roach <?php endif ?> 316b1a54200SGreg Roach </td> 317b1a54200SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 318b1a54200SGreg Roach <?php if ($families[$tree->id()] > 0) : ?> 319b1a54200SGreg Roach <?php if ($family_list_module instanceof FamilyListModule) : ?> 320b1a54200SGreg Roach <a href="<?= e($family_list_module->listUrl($tree)) ?>"><?= I18N::number($families[$tree->id()]) ?></a> 321b1a54200SGreg Roach <?php else : ?> 322b1a54200SGreg Roach <?= I18N::number($families[$tree->id()]) ?> 323b1a54200SGreg Roach <?php endif ?> 324b1a54200SGreg Roach <?php else : ?> 325b1a54200SGreg Roach - 326b1a54200SGreg Roach <?php endif ?> 327b1a54200SGreg Roach </td> 328b1a54200SGreg Roach <td class="d-none d-sm-table-cell align-digits"> 329b1a54200SGreg Roach <?php if ($sources[$tree->id()] > 0) : ?> 330b1a54200SGreg Roach <?php if ($source_list_module instanceof SourceListModule) : ?> 331b1a54200SGreg Roach <a href="<?= e($source_list_module->listUrl($tree)) ?>"><?= I18N::number($sources[$tree->id()]) ?></a> 332b1a54200SGreg Roach <?php else : ?> 333b1a54200SGreg Roach <?= I18N::number($sources[$tree->id()]) ?> 334b1a54200SGreg Roach <?php endif ?> 335b1a54200SGreg Roach <?php else : ?> 336b1a54200SGreg Roach - 337b1a54200SGreg Roach <?php endif ?> 338b1a54200SGreg Roach </td> 339b1a54200SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 340b1a54200SGreg Roach <?php if ($repositories[$tree->id()] > 0) : ?> 341b1a54200SGreg Roach <?php if ($repository_list_module instanceof RepositoryListModule) : ?> 342b1a54200SGreg Roach <a href="<?= e($repository_list_module->listUrl($tree)) ?>"><?= I18N::number($repositories[$tree->id()]) ?></a> 343b1a54200SGreg Roach <?php else : ?> 344b1a54200SGreg Roach <?= I18N::number($repositories[$tree->id()]) ?> 345b1a54200SGreg Roach <?php endif ?> 346b1a54200SGreg Roach <?php else : ?> 347b1a54200SGreg Roach - 348b1a54200SGreg Roach <?php endif ?> 349b1a54200SGreg Roach </td> 350b1a54200SGreg Roach <td class="d-none d-sm-table-cell align-digits"> 351b1a54200SGreg Roach <?php if ($media[$tree->id()] > 0) : ?> 352b1a54200SGreg Roach <?php if ($media_list_module instanceof MediaListModule) : ?> 353b1a54200SGreg Roach <a href="<?= e($media_list_module->listUrl($tree)) ?>"><?= I18N::number($media[$tree->id()]) ?></a> 354b1a54200SGreg Roach <?php else : ?> 355b1a54200SGreg Roach <?= I18N::number($media[$tree->id()]) ?> 356b1a54200SGreg Roach <?php endif ?> 357b1a54200SGreg Roach <?php else : ?> 358b1a54200SGreg Roach - 359b1a54200SGreg Roach <?php endif ?> 360b1a54200SGreg Roach </td> 361b1a54200SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 362b1a54200SGreg Roach <?php if ($notes[$tree->id()] > 0) : ?> 363b1a54200SGreg Roach <?php if ($note_list_module instanceof NoteListModule) : ?> 364b1a54200SGreg Roach <a href="<?= e($note_list_module->listUrl($tree)) ?>"><?= I18N::number($notes[$tree->id()]) ?></a> 365b1a54200SGreg Roach <?php else : ?> 366b1a54200SGreg Roach <?= I18N::number($notes[$tree->id()]) ?> 367b1a54200SGreg Roach <?php endif ?> 368b1a54200SGreg Roach <?php else : ?> 369b1a54200SGreg Roach - 370b1a54200SGreg Roach <?php endif ?> 371b1a54200SGreg Roach </td> 372e72c24d6SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 373e72c24d6SGreg Roach <?php if ($submitters[$tree->id()] > 0) : ?> 374e72c24d6SGreg Roach <?php if ($submitter_list_module instanceof SubmitterListModule) : ?> 375e72c24d6SGreg Roach <a href="<?= e($submitter_list_module->listUrl($tree)) ?>"><?= I18N::number($submitters[$tree->id()]) ?></a> 376e72c24d6SGreg Roach <?php else : ?> 377e72c24d6SGreg Roach <?= I18N::number($submitters[$tree->id()]) ?> 378e72c24d6SGreg Roach <?php endif ?> 379e72c24d6SGreg Roach <?php else : ?> 380e72c24d6SGreg Roach - 381e72c24d6SGreg Roach <?php endif ?> 382e72c24d6SGreg Roach </td> 383b1a54200SGreg Roach </tr> 384ce42304aSGreg Roach <?php endforeach ?> 385ce42304aSGreg Roach </tbody> 3867039fd97SGreg Roach 387dd6b2bfcSGreg Roach <tfoot> 388dd6b2bfcSGreg Roach <tr> 389dd6b2bfcSGreg Roach <th scope="row"> 390dd6b2bfcSGreg Roach <?= I18N::translate('Total') ?> 391dd6b2bfcSGreg Roach </th> 392dbffae50SGreg Roach <td class="align-digits"> 393dd6b2bfcSGreg Roach <?= I18N::number(array_sum($changes)) ?> 394dd6b2bfcSGreg Roach </td> 395dbffae50SGreg Roach <td class="d-none d-sm-table-cell align-digits"> 3962078eafaSGreg Roach <?= I18N::number($individuals->sum()) ?> 397dd6b2bfcSGreg Roach </td> 398dbffae50SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 3992078eafaSGreg Roach <?= I18N::number($families->sum()) ?> 400dd6b2bfcSGreg Roach </td> 401dbffae50SGreg Roach <td class="d-none d-sm-table-cell align-digits"> 4022078eafaSGreg Roach <?= I18N::number($sources->sum()) ?> 403dd6b2bfcSGreg Roach </td> 404dbffae50SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 4052078eafaSGreg Roach <?= I18N::number($repositories->sum()) ?> 406dd6b2bfcSGreg Roach </td> 407dbffae50SGreg Roach <td class="d-none d-sm-table-cell align-digits"> 4082078eafaSGreg Roach <?= I18N::number($media->sum()) ?> 409dd6b2bfcSGreg Roach </td> 410dbffae50SGreg Roach <td class="d-none d-lg-table-cell align-digits"> 4112078eafaSGreg Roach <?= I18N::number($notes->sum()) ?> 412dd6b2bfcSGreg Roach </td> 413dd6b2bfcSGreg Roach </tr> 414dd6b2bfcSGreg Roach </tfoot> 415dd6b2bfcSGreg Roach </table> 416dd6b2bfcSGreg Roach </div> 417dd6b2bfcSGreg Roach</div> 418dd6b2bfcSGreg Roach 4196fd01894SGreg Roach<?php if ($show_synchronize): ?> 4206fd01894SGreg Roach <?= view('admin/synchronize-trees') ?> 4216fd01894SGreg Roach<?php endif ?> 4226fd01894SGreg Roach 423dd6b2bfcSGreg Roach<!-- USERS --> 424dd6b2bfcSGreg Roach<div class="card mb-4 <?= $unapproved || $unverified ? 'card-outline-danger' : '' ?>"> 425dd6b2bfcSGreg Roach <div class="card-header"> 426dd6b2bfcSGreg Roach <h2 class="mb-0"> 427dd6b2bfcSGreg Roach <?= I18N::translate('Users') ?> 428dd6b2bfcSGreg Roach <span class="badge badge-secondary"> 429dd6b2bfcSGreg Roach <?= I18N::number(count($all_users)) ?> 430dd6b2bfcSGreg Roach </span> 431dd6b2bfcSGreg Roach </h2> 432dd6b2bfcSGreg Roach </div> 433dd6b2bfcSGreg Roach <div class="card-body"> 434dd6b2bfcSGreg Roach <dl class="row"> 435dd6b2bfcSGreg Roach <?php foreach ([I18N::translate('Administrators') => $administrators, I18N::translate('Managers') => $managers, I18N::translate('Moderators') => $moderators, I18N::translate('Not verified by the user') => $unverified, I18N::translate('Not approved by an administrator') => $unapproved] as $label => $list) : ?> 436dd6b2bfcSGreg Roach <?php if (!empty($list)) : ?> 437040e7dbaSGreg Roach <dt class="col-sm-6"> 438dd6b2bfcSGreg Roach <?= $label ?> 439dd6b2bfcSGreg Roach </dt> 440040e7dbaSGreg Roach <dd class="col-sm-6"> 441dd6b2bfcSGreg Roach <?php foreach ($list as $n => $user) : ?> 442dd6b2bfcSGreg Roach <?= $n ? I18N::$list_separator : '' ?> 443895230eeSGreg Roach <a href="<?= e(route('admin-users-edit', ['user_id' => $user->id()])) ?>" dir="auto"> 444e5a6b4d4SGreg Roach <?= e($user->realName()) ?> 445dd6b2bfcSGreg Roach </a> 446dd6b2bfcSGreg Roach <?php endforeach ?> 447040e7dbaSGreg Roach <?php if ($list->isEmpty()) : ?> 448040e7dbaSGreg Roach — 449040e7dbaSGreg Roach <?php endif ?> 450dd6b2bfcSGreg Roach </dd> 451dd6b2bfcSGreg Roach <?php endif ?> 452dd6b2bfcSGreg Roach <?php endforeach ?> 453dd6b2bfcSGreg Roach </dl> 454dd6b2bfcSGreg Roach 455dd6b2bfcSGreg Roach <div class="row"> 456dd6b2bfcSGreg Roach <div class="col-sm-6"> 457dd6b2bfcSGreg Roach <ul class="fa-ul"> 458dd6b2bfcSGreg Roach <li> 459dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/preferences') ?></span> 460bf57b580SGreg Roach <a href="<?= e(route('admin-users')) ?>"> 461dd6b2bfcSGreg Roach <?= I18N::translate('User administration') ?> 462dd6b2bfcSGreg Roach </a> 463dd6b2bfcSGreg Roach </li> 464dd6b2bfcSGreg Roach <li> 465a24f7142SGreg Roach <span class="fa-li"><?= view('icons/add') ?></span> 466bf57b580SGreg Roach <a href="<?= e(route('admin-users-create')) ?>"> 467dd6b2bfcSGreg Roach <?= I18N::translate('Add a user') ?> 468dd6b2bfcSGreg Roach </a> 469dd6b2bfcSGreg Roach </li> 470dd6b2bfcSGreg Roach <li> 471a24f7142SGreg Roach <span class="fa-li"><?= view('icons/delete') ?></span> 4722474349cSGreg Roach <a href="<?= e(route(UsersCleanupPage::class)) ?>"> 473dd6b2bfcSGreg Roach <?= I18N::translate('Delete inactive users') ?> 474dd6b2bfcSGreg Roach </a> 475dd6b2bfcSGreg Roach </li> 476dd6b2bfcSGreg Roach <li> 477a24f7142SGreg Roach <span class="fa-li"><?= view('icons/block') ?></span> 4788e0e1b25SGreg Roach <a href="<?= e(route(UserPageDefaultEdit::class)) ?>"> 479dd6b2bfcSGreg Roach <?= I18N::translate('Set the default blocks for new users') ?> 480dd6b2bfcSGreg Roach </a> 481dd6b2bfcSGreg Roach </li> 482dd6b2bfcSGreg Roach </ul> 483dd6b2bfcSGreg Roach </div> 484dd6b2bfcSGreg Roach <div class="col-sm-6"> 485dd6b2bfcSGreg Roach <ul class="fa-ul"> 486dd6b2bfcSGreg Roach <li> 487dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/email') ?></span> 488e381f98dSGreg Roach <a href="<?= e(route(BroadcastPage::class, ['to' => 'all'])) ?>"> 489dd6b2bfcSGreg Roach <?= I18N::translate('Send a message to all users') ?> 490dd6b2bfcSGreg Roach </a> 491dd6b2bfcSGreg Roach </li> 492dd6b2bfcSGreg Roach <li> 493dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/email') ?></span> 494e381f98dSGreg Roach <a href="<?= e(route(BroadcastPage::class, ['to' => 'never_logged'])) ?>"> 495dd6b2bfcSGreg Roach <?= I18N::translate('Send a message to users who have never signed in') ?> 496dd6b2bfcSGreg Roach </a> 497dd6b2bfcSGreg Roach </li> 498dd6b2bfcSGreg Roach <li> 499dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/email') ?></span> 500e381f98dSGreg Roach <a href="<?= e(route(BroadcastPage::class, ['to' => 'last_6mo'])) ?>"> 501dd6b2bfcSGreg Roach <?= I18N::translate('Send a message to users who have not signed in for 6 months') ?> 502dd6b2bfcSGreg Roach </a> 503dd6b2bfcSGreg Roach </li> 504dd6b2bfcSGreg Roach </ul> 505dd6b2bfcSGreg Roach </div> 506dd6b2bfcSGreg Roach </div> 507dd6b2bfcSGreg Roach </div> 508dd6b2bfcSGreg Roach</div> 509dd6b2bfcSGreg Roach 510dd6b2bfcSGreg Roach<!-- MODULES --> 511dd6b2bfcSGreg Roach<div class="card mb-4"> 512dd6b2bfcSGreg Roach <div class="card-header"> 513dd6b2bfcSGreg Roach <h2 class="mb-0"> 514dd6b2bfcSGreg Roach <?= I18N::translate('Modules') ?> 5159d627a9eSGreg Roach <?= view('components/badge', ['count' => $all_modules_enabled->count(), 'total' => $all_modules_disabled->count(), 'context' => 'secondary']) ?> 516dd6b2bfcSGreg Roach </h2> 517dd6b2bfcSGreg Roach </div> 5180cb66f86SGreg Roach 519dd6b2bfcSGreg Roach <div class="card-body"> 5200cb66f86SGreg Roach <ul class="fa-ul"> 5210cb66f86SGreg Roach <li> 5229d627a9eSGreg Roach <span class="fa-li"><?= view('icons/module') ?></span> 5239f667ff2SGreg Roach <a href="<?= e(route(ModulesAllPage::class)) ?>"> 5249d627a9eSGreg Roach <?= I18N::translate('All modules') ?> 5250cb66f86SGreg Roach </a> 5269d627a9eSGreg Roach <?= view('components/badge', ['count' => $all_modules_enabled->count(), 'total' => $all_modules_disabled->count(), 'context' => 'primary']) ?> 5270cb66f86SGreg Roach </li> 5280cb66f86SGreg Roach </ul> 5290cb66f86SGreg Roach 530dd6b2bfcSGreg Roach <div class="row"> 531abafa13cSGreg Roach <div class="col-sm-4"> 5329d627a9eSGreg Roach <h3> 5339d627a9eSGreg Roach <?= I18N::translate('Genealogy') ?> 5349d627a9eSGreg Roach </h3> 53509fbf3e5SGreg Roach 536dd6b2bfcSGreg Roach <ul class="fa-ul"> 537dd6b2bfcSGreg Roach <li> 538dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/menu') ?></span> 5399f667ff2SGreg Roach <a href="<?= e(route(ModulesMenusPage::class)) ?>"> 540dd6b2bfcSGreg Roach <?= I18N::translate('Menus') ?> 541dd6b2bfcSGreg Roach </a> 5429d627a9eSGreg Roach <?= view('components/badge', ['count' => $menu_modules_enabled->count(), 'total' => $menu_modules_disabled->count(), 'context' => 'primary']) ?> 543dd6b2bfcSGreg Roach </li> 544dd6b2bfcSGreg Roach <li> 545dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/chart') ?></span> 5469f667ff2SGreg Roach <a href="<?= e(route(ModulesChartsPage::class)) ?>"> 547dd6b2bfcSGreg Roach <?= I18N::translate('Charts') ?> 548dd6b2bfcSGreg Roach </a> 5499d627a9eSGreg Roach <?= view('components/badge', ['count' => $chart_modules_enabled->count(), 'total' => $chart_modules_disabled->count(), 'context' => 'primary']) ?> 550dd6b2bfcSGreg Roach </li> 551dd6b2bfcSGreg Roach <li> 55267992b6aSRichard Cissee <span class="fa-li"><?= view('icons/list') ?></span> 5539f667ff2SGreg Roach <a href="<?= e(route(ModulesListsPage::class)) ?>"> 55467992b6aSRichard Cissee <?= I18N::translate('Lists') ?> 55567992b6aSRichard Cissee </a> 5569d627a9eSGreg Roach <?= view('components/badge', ['count' => $list_modules_enabled->count(), 'total' => $list_modules_disabled->count(), 'context' => 'primary']) ?> 55767992b6aSRichard Cissee </li> 55867992b6aSRichard Cissee <li> 559dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/report') ?></span> 5609f667ff2SGreg Roach <a href="<?= e(route(ModulesReportsPage::class)) ?>"> 561dd6b2bfcSGreg Roach <?= I18N::translate('Reports') ?> 562dd6b2bfcSGreg Roach </a> 5639d627a9eSGreg Roach <?= view('components/badge', ['count' => $report_modules_enabled->count(), 'total' => $report_modules_disabled->count(), 'context' => 'primary']) ?> 564dd6b2bfcSGreg Roach </li> 565ce42304aSGreg Roach <li> 566ce42304aSGreg Roach <span class="fa-li"><?= view('icons/data-fix') ?></span> 5679f667ff2SGreg Roach <a href="<?= e(route(ModulesDataFixesPage::class)) ?>"> 568ce42304aSGreg Roach <?= I18N::translate('Data fixes') ?> 569ce42304aSGreg Roach </a> 570ce42304aSGreg Roach <?= view('components/badge', ['count' => $data_fix_modules_enabled->count(), 'total' => $data_fix_modules_disabled->count(), 'context' => 'primary']) ?> 571ce42304aSGreg Roach </li> 5729d627a9eSGreg Roach </ul> 57309fbf3e5SGreg Roach 5749d627a9eSGreg Roach <h3> 5759d627a9eSGreg Roach <?= I18N::translate('Website') ?> 5769d627a9eSGreg Roach </h3> 57709fbf3e5SGreg Roach 5789d627a9eSGreg Roach <ul class="fa-ul"> 57933c34396SGreg Roach <li> 58033c34396SGreg Roach <span class="fa-li"><?= view('icons/footer') ?></span> 5819f667ff2SGreg Roach <a href="<?= e(route(ModulesFootersPage::class)) ?>"> 58233c34396SGreg Roach <?= I18N::translate('Footers') ?> 58333c34396SGreg Roach </a> 5849d627a9eSGreg Roach <?= view('components/badge', ['count' => $footer_modules_enabled->count(), 'total' => $footer_modules_disabled->count(), 'context' => 'primary']) ?> 5858e5c5efeSGreg Roach </li> 5868e5c5efeSGreg Roach <li> 5878e5c5efeSGreg Roach <span class="fa-li"><?= view('icons/analytics') ?></span> 5889f667ff2SGreg Roach <a href="<?= e(route(ModulesAnalyticsPage::class)) ?>"> 5898e5c5efeSGreg Roach <?= I18N::translate('Tracking and analytics') ?> 5908e5c5efeSGreg Roach </a> 5919d627a9eSGreg Roach <?= view('components/badge', ['count' => $analytics_modules_enabled->count(), 'total' => $analytics_modules_disabled->count(), 'context' => 'primary']) ?> 59233c34396SGreg Roach </li> 59311eb8581SGreg Roach <li> 59411eb8581SGreg Roach <span class="fa-li"><?= view('icons/theme') ?></span> 5959f667ff2SGreg Roach <a href="<?= e(route(ModulesThemesPage::class)) ?>"> 59611eb8581SGreg Roach <?= I18N::translate('Themes') ?> 59711eb8581SGreg Roach </a> 5989d627a9eSGreg Roach <?= view('components/badge', ['count' => $theme_modules_enabled->count(), 'total' => $theme_modules_disabled->count(), 'context' => 'primary']) ?> 59911eb8581SGreg Roach </li> 60011eb8581SGreg Roach <li> 60111eb8581SGreg Roach <span class="fa-li"><?= view('icons/language') ?></span> 6029f667ff2SGreg Roach <a href="<?= e(route(ModulesLanguagesPage::class)) ?>"> 60311eb8581SGreg Roach <?= I18N::translate('Languages') ?> 60411eb8581SGreg Roach </a> 6059d627a9eSGreg Roach <?= view('components/badge', ['count' => $language_modules_enabled->count(), 'total' => $language_modules_disabled->count(), 'context' => 'primary']) ?> 60611eb8581SGreg Roach </li> 607dd6b2bfcSGreg Roach </ul> 60809fbf3e5SGreg Roach 609abafa13cSGreg Roach </div> 610abafa13cSGreg Roach 611abafa13cSGreg Roach <div class="col-sm-4"> 612abafa13cSGreg Roach 61309fbf3e5SGreg Roach <h3> 61409fbf3e5SGreg Roach <?= I18N::translate('Home page') ?> 61509fbf3e5SGreg Roach </h3> 61609fbf3e5SGreg Roach 61709fbf3e5SGreg Roach <ul class="fa-ul"> 61809fbf3e5SGreg Roach <li> 61909fbf3e5SGreg Roach <span class="fa-li"><?= view('icons/block') ?></span> 6209f667ff2SGreg Roach <a href="<?= e(route(ModulesBlocksPage::class)) ?>"> 62109fbf3e5SGreg Roach <?= I18N::translate('Blocks') ?> 62209fbf3e5SGreg Roach </a> 62309fbf3e5SGreg Roach <?= view('components/badge', ['count' => $block_modules_enabled->count(), 'total' => $block_modules_disabled->count(), 'context' => 'primary']) ?> 62409fbf3e5SGreg Roach </li> 62509fbf3e5SGreg Roach </ul> 62609fbf3e5SGreg Roach 6279d627a9eSGreg Roach <h3> 6289d627a9eSGreg Roach <?= I18N::translate('Individual page') ?> 6299d627a9eSGreg Roach </h3> 63009fbf3e5SGreg Roach 6319d627a9eSGreg Roach <ul class="fa-ul"> 6329d627a9eSGreg Roach <li> 6339d627a9eSGreg Roach <span class="fa-li"><?= view('icons/tab') ?></span> 6349f667ff2SGreg Roach <a href="<?= e(route(ModulesTabsPage::class)) ?>"> 6359d627a9eSGreg Roach <?= I18N::translate('Tabs') ?> 6369d627a9eSGreg Roach <?= view('components/badge', ['count' => $tab_modules_enabled->count(), 'total' => $tab_modules_disabled->count(), 'context' => 'primary']) ?> 6379d627a9eSGreg Roach </a> 6389d627a9eSGreg Roach </li> 6399d627a9eSGreg Roach <li> 6409d627a9eSGreg Roach <span class="fa-li"><?= view('icons/sidebar') ?></span> 6419f667ff2SGreg Roach <a href="<?= e(route(ModulesSidebarsPage::class)) ?>"> 6429d627a9eSGreg Roach <?= I18N::translate('Sidebars') ?> 6439d627a9eSGreg Roach </a> 6449d627a9eSGreg Roach <?= view('components/badge', ['count' => $sidebar_modules_enabled->count(), 'total' => $sidebar_modules_disabled->count(), 'context' => 'primary']) ?> 6459d627a9eSGreg Roach </li> 6469d627a9eSGreg Roach <li> 6479d627a9eSGreg Roach <span class="fa-li"><?= view('icons/history') ?></span> 6489f667ff2SGreg Roach <a href="<?= e(route(ModulesHistoricEventsPage::class)) ?>"> 6499d627a9eSGreg Roach <?= I18N::translate('Historic events') ?> 6509d627a9eSGreg Roach </a> 6519d627a9eSGreg Roach <?= view('components/badge', ['count' => $history_modules_enabled->count(), 'total' => $history_modules_disabled->count(), 'context' => 'primary']) ?> 6529d627a9eSGreg Roach </li> 6539d627a9eSGreg Roach </ul> 65409fbf3e5SGreg Roach 655abafa13cSGreg Roach </div> 656abafa13cSGreg Roach 657abafa13cSGreg Roach <div class="col-sm-4"> 658abafa13cSGreg Roach 6599d627a9eSGreg Roach <h3> 6609d627a9eSGreg Roach <?= I18N::translate('Other') ?> 6619d627a9eSGreg Roach </h3> 66209fbf3e5SGreg Roach 663dd6b2bfcSGreg Roach <ul class="fa-ul"> 66409fbf3e5SGreg Roach <?php foreach ($other_modules as $module) : ?> 665dd6b2bfcSGreg Roach <li> 66609fbf3e5SGreg Roach <span class="fa-li"><?= view('icons/module') ?></span> 6678d6560c4SGreg Roach 6688d6560c4SGreg Roach <?php if ($module->isEnabled()) : ?> 6698d6560c4SGreg Roach <?php if ($module instanceof ModuleConfigInterface) : ?> 670dd6b2bfcSGreg Roach <a href="<?= e($module->getConfigLink()) ?>"> 67149a243cbSGreg Roach <?= $module->title() ?> 672852bddbeSGreg Roach <?= view('icons/preferences') ?> 673dd6b2bfcSGreg Roach </a> 67409fbf3e5SGreg Roach <?php else : ?> 6758d6560c4SGreg Roach <?= $module->title() ?> 67609fbf3e5SGreg Roach <?php endif ?> 6778d6560c4SGreg Roach <?php else : ?> 6788d6560c4SGreg Roach <span class="text-muted"> 6798d6560c4SGreg Roach <span class="fa-li"><?= view('icons/module') ?></span> 6808d6560c4SGreg Roach <?= $module->title() ?> 6818d6560c4SGreg Roach <?php if ($module instanceof ModuleConfigInterface) : ?> 682852bddbeSGreg Roach <?= view('icons/preferences') ?> 6838d6560c4SGreg Roach <?php endif ?> 6848d6560c4SGreg Roach </span> 6858d6560c4SGreg Roach </span> 6868d6560c4SGreg Roach <?php endif ?> 6878d6560c4SGreg Roach 688beefaa8eSGreg Roach <?php if ($module instanceof ModuleCustomInterface) : ?> 689beefaa8eSGreg Roach <?= view('admin/custom-module-info', ['module' => $module]) ?> 690beefaa8eSGreg Roach <?php endif ?> 691dd6b2bfcSGreg Roach </li> 692dd6b2bfcSGreg Roach <?php endforeach ?> 693dd6b2bfcSGreg Roach </ul> 694dd6b2bfcSGreg Roach </div> 695dd6b2bfcSGreg Roach </div> 696dd6b2bfcSGreg Roach </div> 697dd6b2bfcSGreg Roach</div> 698dd6b2bfcSGreg Roach 699dd6b2bfcSGreg Roach<!-- MEDIA --> 700dd6b2bfcSGreg Roach<div class="card mb-4"> 701dd6b2bfcSGreg Roach <div class="card-header"> 702dd6b2bfcSGreg Roach <h2 class="mb-0"> 703dd6b2bfcSGreg Roach <?= I18N::translate('Media') ?> 704dd6b2bfcSGreg Roach </h2> 705dd6b2bfcSGreg Roach </div> 706dd6b2bfcSGreg Roach <div class="card-body"> 707dd6b2bfcSGreg Roach <ul class="fa-ul"> 708dd6b2bfcSGreg Roach <li> 709dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/preferences') ?></span> 710*8ce3bd73SGreg Roach <a href="<?= e(route(ManageMediaPage::class)) ?>"> 711dd6b2bfcSGreg Roach <?= I18N::translate('Manage media') ?> 712dd6b2bfcSGreg Roach </a> 713dd6b2bfcSGreg Roach </li> 714dd6b2bfcSGreg Roach <li> 715a24f7142SGreg Roach <span class="fa-li"><?= view('icons/upload') ?></span> 716*8ce3bd73SGreg Roach <a href="<?= e(route(UploadMediaPage::class)) ?>"> 717dd6b2bfcSGreg Roach <?= I18N::translate('Upload media files') ?> 718dd6b2bfcSGreg Roach </a> 719dd6b2bfcSGreg Roach </li> 720dd6b2bfcSGreg Roach <li> 721a24f7142SGreg Roach <span class="fa-li"><?= view('icons/link') ?></span> 722dd6b2bfcSGreg Roach <a href="<?= e(route('admin-fix-level-0-media')) ?>"> 723dd6b2bfcSGreg Roach <?= I18N::translate('Link media objects to facts and events') ?> 724dd6b2bfcSGreg Roach </a> 725dd6b2bfcSGreg Roach </li> 726dd6b2bfcSGreg Roach <li> 727a24f7142SGreg Roach <span class="fa-li"><?= view('icons/upload') ?></span> 728dd6b2bfcSGreg Roach <a href="<?= e(route('admin-webtrees1-thumbs')) ?>"> 729dd6b2bfcSGreg Roach <?= I18N::translate('Import custom thumbnails from webtrees version 1') ?> 730dd6b2bfcSGreg Roach </a> 731dd6b2bfcSGreg Roach </li> 732dd6b2bfcSGreg Roach </ul> 733dd6b2bfcSGreg Roach </div> 734dd6b2bfcSGreg Roach</div> 735dd6b2bfcSGreg Roach 736dd6b2bfcSGreg Roach<!-- MAPS --> 737dd6b2bfcSGreg Roach<div class="card mb-4"> 738dd6b2bfcSGreg Roach <div class="card-header"> 739dd6b2bfcSGreg Roach <h2 class="mb-0"> 740dd6b2bfcSGreg Roach <?= I18N::translate('Map') ?> 741dd6b2bfcSGreg Roach </h2> 742dd6b2bfcSGreg Roach </div> 743dd6b2bfcSGreg Roach <div class="card-body"> 744dd6b2bfcSGreg Roach <div class="row"> 745dd6b2bfcSGreg Roach <div class="col-sm-6"> 746dd6b2bfcSGreg Roach <ul class="fa-ul"> 747dd6b2bfcSGreg Roach <li> 748dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/location') ?></span> 74994e35917SGreg Roach <a href="<?= e(route(MapDataList::class)) ?>"> 750dd6b2bfcSGreg Roach <?= I18N::translate('Geographic data') ?> 751dd6b2bfcSGreg Roach </a> 752dd6b2bfcSGreg Roach </li> 753dd6b2bfcSGreg Roach </ul> 754dd6b2bfcSGreg Roach </div> 755dd6b2bfcSGreg Roach <div class="col-sm-6"> 756dd6b2bfcSGreg Roach <ul class="fa-ul"> 757dd6b2bfcSGreg Roach <li> 758dd6b2bfcSGreg Roach <span class="fa-li"><?= view('icons/map') ?></span> 759dd6b2bfcSGreg Roach <a href="<?= e(route('map-provider')) ?>"> 760dd6b2bfcSGreg Roach <?= I18N::translate('Map provider') ?> 761dd6b2bfcSGreg Roach </a> 762dd6b2bfcSGreg Roach </li> 763dd6b2bfcSGreg Roach </ul> 764dd6b2bfcSGreg Roach </div> 765dd6b2bfcSGreg Roach </div> 766dd6b2bfcSGreg Roach </div> 767dd6b2bfcSGreg Roach</div> 768dd6b2bfcSGreg Roach 769dd6b2bfcSGreg Roach<!-- OLD FILES --> 770dd6b2bfcSGreg Roach<?php if (!empty($files_to_delete)) : ?> 771dd6b2bfcSGreg Roach <div class="card mb-4 card-outline-danger"> 772dd6b2bfcSGreg Roach <div class="card-header"> 773dd6b2bfcSGreg Roach <h2 class="mb-0"> 774dd6b2bfcSGreg Roach <?= I18N::translate('Old files found') ?> 775dd6b2bfcSGreg Roach </h2> 776dd6b2bfcSGreg Roach </div> 777dd6b2bfcSGreg Roach <div class="card-body"> 778dd6b2bfcSGreg Roach <p> 779dd6b2bfcSGreg Roach <?= I18N::translate('Files have been found from a previous version of webtrees. Old files can sometimes be a security risk. You should delete them.') ?> 780dd6b2bfcSGreg Roach </p> 781dd6b2bfcSGreg Roach <ul class="list-unstyled"> 782dd6b2bfcSGreg Roach <?php foreach ($files_to_delete as $file_to_delete) : ?> 783beefaa8eSGreg Roach <li dir="ltr"> 784beefaa8eSGreg Roach <code><?= e($file_to_delete) ?></code> 785beefaa8eSGreg Roach </li> 786dd6b2bfcSGreg Roach <?php endforeach ?> 787dd6b2bfcSGreg Roach </ul> 788dd6b2bfcSGreg Roach </div> 789dd6b2bfcSGreg Roach </div> 790dd6b2bfcSGreg Roach<?php endif ?> 791