Nord-themed dark/light mode family tree theme with: - Floating glass-morphism header bar - Auto/light/dark theme toggle with Lucide icons - Smart SVG logo with theme-aware fill colors - Active page highlighting with per-menu Nord icon colors - Language button showing 2-letter abbreviation - Start page search form - Mobile responsive icon-only nav - Custom views inherited from ArgonLight
59 lines
2.6 KiB
PHTML
59 lines
2.6 KiB
PHTML
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Fisharebest\Webtrees\Contracts\TimestampInterface;
|
|
use Fisharebest\Webtrees\Contracts\UserInterface;
|
|
use Fisharebest\Webtrees\GedcomRecord;
|
|
use Fisharebest\Webtrees\I18N;
|
|
use Fisharebest\Webtrees\View;
|
|
use Illuminate\Support\Collection;
|
|
|
|
/**
|
|
* @var int $id
|
|
* @var int $limit_low
|
|
* @var int $limit_high
|
|
* @var Collection<int,object{record:GedcomRecord,time:TimestampInterface,user:UserInterface}> $rows
|
|
* @var bool $show_date
|
|
* @var bool $show_user
|
|
*/
|
|
|
|
?>
|
|
|
|
<div class="list-group">
|
|
<?php foreach ($rows as $n => $row): ?>
|
|
<?php if ($n === $limit_low && $rows->count() > $limit_high): ?>
|
|
<div>
|
|
<button class="btn btn-sm btn-secondary my-3" id="show-more-<?= e($id) ?>">
|
|
<?= view('icons/add') ?>
|
|
<?= /* I18N: button label */ I18N::translate('show more') ?>
|
|
</button>
|
|
</div>
|
|
<?php endif ?>
|
|
|
|
<a href="<?= e($row->record->url()) ?>" class="<?= $n >= $limit_low && $rows->count() > $limit_high ? 'd-none' : '' ?> list-group-item list-group-item-action">
|
|
<span class="d-block"><?= $row->record->fullName() ?></span>
|
|
|
|
<small class="d-block">
|
|
<?php if ($show_user && $show_date): ?>
|
|
<?= /* I18N: [a record was] Changed on <date/time> by <user> */ I18N::translate('Changed on %1$s by %2$s', view('components/datetime', ['timestamp' => $row->time]), e($row->record->lastChangeUser())) ?>
|
|
<?php elseif ($show_date): ?>
|
|
<?= /* I18N: [a record was] Changed on <date/time> */ I18N::translate('Changed on %1$s', view('components/datetime', ['timestamp' => $row->time])) ?>
|
|
<?php elseif ($show_user): ?>
|
|
<?= /* I18N: [a record was] Changed by <user> */ I18N::translate('Changed by %1$s', e($row->user->userName())) ?>
|
|
<?php endif ?>
|
|
</small>
|
|
</a>
|
|
<?php endforeach ?>
|
|
</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() ?> |