fisharebest/webtrees

View on GitHub
resources/views/lists/anniversaries-list.phtml

Summary

Maintainability
Test Coverage
<?php

declare(strict_types=1);

use Fisharebest\Webtrees\Fact;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Individual;
use Fisharebest\Webtrees\Registry;
use Fisharebest\Webtrees\View;
use Illuminate\Support\Collection;

/**
 * @var Collection<int,Fact> $facts
 * @var int                  $id
 * @var int                  $limit_low
 * @var int                  $limit_high
 */

?>

<?php foreach ($facts as $n => $fact) : ?>
    <?php if ($n === $limit_low && $facts->count() > $limit_high) : ?>
        <div>
            <button class="btn btn-sm btn-secondary" id="show-more-<?= e($id) ?>">
                <?= view('icons/add') ?>
                <?= /* I18N: button label */ I18N::translate('show more') ?>
            </button>
        </div>

        <?php View::push('javascript') ?>
        <script>
            document.getElementById("show-more-<?= e($id) ?>").addEventListener("click", function (ev) {
                document.querySelectorAll("#block-<?= e($id) ?> .d-none").forEach(function (el) {
                    el.classList.remove("d-none");
                });
                ev.target.parentNode.removeChild(ev.target);
            });
        </script>
        <?php View::endpush() ?>
    <?php endif ?>

    <div class="<?= $n >= $limit_low && $facts->count() > $limit_high ? 'd-none' : '' ?>">
        <?php $record = $fact->record(); ?>
        <a href="<?= e($record->url()) ?>" class="list_item">
            <?= $record->fullName() ?>
        </a>
        <?php if ($record instanceof Individual) : ?>
            <?= view('icons/sex', ['sex' => $record->sex()]) ?>
        <?php endif ?>
        <div class="indent">
            <?= $fact->label() . ' — ' . $fact->date()->display($record->tree(), null, true) ?>
            (<?= Registry::timestampFactory()->now()->subtractYears($fact->anniv)->diffForHumans() ?>)
            <?php if ($fact->place()->gedcomName() !== '') : ?>
                — <a href="<?= e($fact->place()->url()) ?>" title="<?= strip_tags($fact->place()->fullName()) ?>">
                    <?= $fact->place()->shortName() ?>
                </a>
            <?php endif ?>
        </div>
    </div>
<?php endforeach ?>