Files
WebtreesBockenTheme/resources/views/modules/recent_changes/changes-list.phtml
Alexander Bocken ce11b25da4 Initial commit: Bocken theme for webtrees
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
2026-03-14 09:53:43 +01:00

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() ?>