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
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
<?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() ?>
|
||||
Reference in New Issue
Block a user