fisharebest/webtrees

View on GitHub
resources/views/admin/trees-duplicates.phtml

Summary

Maintainability
Test Coverage
<?php

declare(strict_types=1);

use Fisharebest\Webtrees\GedcomRecord;
use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel;
use Fisharebest\Webtrees\Http\RequestHandlers\ManageTrees;
use Fisharebest\Webtrees\Http\RequestHandlers\MergeFactsPage;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Tree;

/**
 * @var array<string,array<int,array<int,GedcomRecord>>> $duplicates
 * @var Tree                                             $tree
 * @var string                                           $title
 */

?>

<?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), route(ManageTrees::class, ['tree' => $tree->name()]) => I18N::translate('Manage family trees'), $title]]) ?>

<h1><?= $title ?></h1>

<?php foreach ($duplicates as $category => $records) : ?>
    <h2><?= $category ?></h2>

    <?php if (!empty($records)) : ?>
        <ol>
            <?php foreach ($records as $duplicates) : ?>
                <li>
                    <?= $duplicates[0]->fullName() ?>
                    <?php foreach ($duplicates as $record) : ?>
                        —
                        <a href="<?= e($record->url()) ?>">
                            <?= $record->xref() ?>
                        </a>
                    <?php endforeach ?>
                    <?php if (count($duplicates) === 2) : ?>
                        —
                        <a href="<?= e(route(MergeFactsPage::class, ['tree' => $tree->name(), 'xref1' => $duplicates[0]->xref(), 'xref2' => $duplicates[1]->xref()])) ?>">
                            <?= I18N::translate('Merge') ?>
                        </a>
                    <?php endif ?>
                </li>
            <?php endforeach ?>
        </ol>
    <?php else : ?>
        <p><?= I18N::translate('No duplicates have been found.') ?></p>
    <?php endif ?>
<?php endforeach ?>