xref: /webtrees/resources/views/pending-changes-page.phtml (revision 06a438b41c4b328354bcb5bd8d8d578a3a78f995)
1<?php
2
3use Fisharebest\Webtrees\Http\RequestHandlers\MessagePage;
4use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesAcceptChange;
5use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesAcceptTree;
6use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesRejectChange;
7use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesRejectTree;
8use Fisharebest\Webtrees\I18N;
9use Fisharebest\Webtrees\Tree;
10
11/**
12 * @var array<array<stdClass>> $changes
13 * @var int                    $count
14 * @var string                 $title
15 * @var Tree                   $tree
16 * @var string                 $url
17 */
18
19?>
20
21<h2 class="wt-page-title">
22    <?= $title ?>
23    <?php if ($count > count($changes)): ?>
24<?= I18N::translate('Showing %1$s to %2$s of %3$s', I18N::number(1), I18N::number(count($changes)), I18N::number($count)) ?>
25    <?php endif ?>
26</h2>
27
28<?php if ($changes === []) : ?>
29    <p>
30        <?= I18N::translate('There are no pending changes.') ?>
31    </p>
32    <p>
33        <a class="btn btn-primary" href="<?= e($url) ?>">
34            <?= I18N::translate('continue') ?>
35        </a>
36    </p>
37<?php endif ?>
38
39<?php foreach ($changes as $change) : ?>
40    <h3 class="pt-2">
41        <a href="<?= e($change[0]->record->url()) ?>"><?= $change[0]->record->fullName() ?></a>
42    </h3>
43
44    <table class="table table-bordered table-sm">
45        <thead class="thead-default">
46            <tr>
47                <th><?= I18N::translate('Accept') ?></th>
48                <th><?= I18N::translate('Changes') ?></th>
49                <th><?= I18N::translate('Editor') ?></th>
50                <th><?= I18N::translate('Date') ?></th>
51                <th><?= I18N::translate('Reject') ?></th>
52            </tr>
53        </thead>
54        <tbody>
55            <?php foreach ($change as $record_change) : ?>
56                <tr>
57                    <td>
58                        <button type="button" class="btn btn-primary" data-post-url="<?= e(route(PendingChangesAcceptChange::class, ['tree' => $tree->name(), 'xref' => $record_change->xref, 'change' => $record_change->change_id])) ?>">
59                            <?= I18N::translate('Accept') ?>
60                        </button>
61                    </td>
62
63                    <td>
64                        <?php foreach ($record_change->record->facts() as $fact) : ?>
65                            <?php if ($fact->getTag() !== 'CHAN' && $fact->isPendingAddition()) : ?>
66                                <div class="wt-new">
67                                    <?= strip_tags($fact->summary()) ?>
68                                </div>
69                            <?php elseif ($fact->getTag() !== 'CHAN' && $fact->isPendingDeletion()) : ?>
70                                <div class="wt-old">
71                                    <?= strip_tags($fact->summary()) ?>
72                                </div>
73                            <?php endif ?>
74                        <?php endforeach ?>
75                    </td>
76
77                    <td>
78                        <a href="<?= e(route(MessagePage::class, ['to' => $record_change->user_name, 'subject' => I18N::translate('Pending changes') . ' - ' . strip_tags($record_change->record->fullName()), 'body' => $record_change->record->url(), 'tree' => $tree->name()])) ?>" title="<?= I18N::translate('Send a message') ?>">
79                            <?= e($record_change->real_name) ?> - <?= e($record_change->user_name) ?>
80                        </a>
81                    </td>
82
83                    <td>
84                        <?= view('components/datetime', ['timestamp' => $record_change->change_time]) ?>
85                    </td>
86
87                    <td>
88                        <button type="button" class="btn btn-secondary" data-post-url="<?= e(route(PendingChangesRejectChange::class, ['tree' => $tree->name(), 'xref' => $record_change->xref, 'change' => $record_change->change_id])) ?>">
89                            <?= I18N::translate('Reject') ?>
90                        </button>
91                    </td>
92                </tr>
93            <?php endforeach ?>
94        </tbody>
95    </table>
96<?php endforeach ?>
97
98<div class="d-flex justify-content-between">
99    <button type="button" class="btn btn-primary" data-post-url="<?= e(route(PendingChangesAcceptTree::class, ['tree' => $tree->name(), 'n' => count($changes)])) ?>">
100        <?= I18N::translate('Accept all changes') ?>
101    </button>
102
103    <button type="button" class="btn btn-secondary" data-post-url="<?= e(route(PendingChangesRejectTree::class, ['tree' => $tree->name()])) ?>" data-confirm="<?= I18N::translate('Are you sure you want to reject all the changes to this family tree?') ?>">
104        <?= I18N::translate('Reject all changes') ?>
105    </button>
106</div>
107