1<?php 2 3use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel; 4use Fisharebest\Webtrees\Http\RequestHandlers\ModulesAllPage; 5use Fisharebest\Webtrees\I18N; 6use Fisharebest\Webtrees\Tree; 7use Illuminate\Support\Collection; 8 9/** 10 * @var Collection<int,object> $stories 11 * @var string $title 12 * @var Tree $tree 13 * @var array<string> $tree_names 14 */ 15 16?> 17 18<?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), route(ModulesAllPage::class) => I18N::translate('Modules'), $title]]) ?> 19 20<h1><?= $title ?></h1> 21 22<form method="post" class="row"> 23 <div class="col-auto"> 24 <div class="input-group"> 25 <?= view('components/select', ['name' => 'tree', 'selected' => $tree->name(), 'options' => $tree_names, 'aria_label' => I18N::translate('Family tree')]) ?> 26 <input type="submit" class="btn btn-primary" value="<?= I18N::translate('show') ?>"> 27 </div> 28 </div> 29 30 <?= csrf_field() ?> 31</form> 32 33<p> 34 <a href="<?= e(route('module', ['module' => 'stories', 'action' => 'AdminEdit', 'tree' => $tree->name()])) ?>" class="btn btn-link"> 35 <?= view('icons/add') ?> 36 <?= I18N::translate('Add a story') ?> 37 </a> 38</p> 39 40<table 41 class="table table-bordered table-sm datatables d-none" 42 <?= view('lists/datatables-attributes') ?> 43 data-columns="<?= e(json_encode([ 44 null, 45 null, 46 ['sortable' => false], 47 ['sortable' => false], 48 ], JSON_THROW_ON_ERROR)) ?>" 49> 50 <caption> 51 <?= I18N::translate('Stories') ?> 52 </caption> 53 54 <thead> 55 <tr> 56 <th><?= I18N::translate('Individual') ?></th> 57 <th><?= I18N::translate('Story title') ?></th> 58 <th><?= I18N::translate('Edit') ?></th> 59 <th><?= I18N::translate('Delete') ?></th> 60 </tr> 61 </thead> 62 63 <tbody> 64 <?php foreach ($stories as $story) : ?> 65 <tr> 66 <td> 67 <?php if ($story->individual !== null) : ?> 68 <a href="<?= e($story->individual->url()) ?>#tab-stories"> 69 <?= $story->individual->fullName() ?> 70 </a> 71 <?php else : ?> 72 <?= $story->xref ?> 73 <?php endif ?> 74 </td> 75 <td> 76 <?= e($story->title) ?> 77 </td> 78 <td> 79 <a class="btn btn-primary" href="<?= e(route('module', ['module' => 'stories', 'action' => 'AdminEdit', 'tree' => $tree->name(), 'block_id' => $story->block_id])) ?>" aria-label="<?= I18N::translate('Edit') ?>"> 80 <?= view('icons/edit') ?> 81 <?= I18N::translate('Edit') ?> 82 </a> 83 </td> 84 <td> 85 <form method="post" action="<?= e(route('module', ['module' => 'stories', 'action' => 'AdminDelete', 'tree' => $tree->name(), 'block_id' => $story->block_id])) ?>"> 86 <button type="submit" class="btn btn-danger" data-wt-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', e($story->title)) ?>" onclick="return confirm(this.dataset.confirm);" aria-label="<?= I18N::translate('Delete') ?>"> 87 <?= view('icons/delete') ?> 88 <?= I18N::translate('Delete') ?> 89 </button> 90 91 <?= csrf_field() ?> 92 </form> 93 </td> 94 </tr> 95 <?php endforeach ?> 96 </tbody> 97</table> 98