xref: /webtrees/resources/views/individual-page-menu.phtml (revision 45ebc6c6221f90468111ed2015b8449dca331d93)
1<?php
2
3declare(strict_types=1);
4
5use Fisharebest\Webtrees\Auth;
6use Fisharebest\Webtrees\Fact;
7use Fisharebest\Webtrees\Http\RequestHandlers\AddNewFact;
8use Fisharebest\Webtrees\Http\RequestHandlers\DeleteRecord;
9use Fisharebest\Webtrees\Http\RequestHandlers\EditFactPage;
10use Fisharebest\Webtrees\Http\RequestHandlers\EditRawRecordPage;
11use Fisharebest\Webtrees\Http\RequestHandlers\ReorderFamiliesPage;
12use Fisharebest\Webtrees\Http\RequestHandlers\ReorderMediaPage;
13use Fisharebest\Webtrees\Http\RequestHandlers\ReorderNamesPage;
14use Fisharebest\Webtrees\I18N;
15use Fisharebest\Webtrees\Individual;
16use Illuminate\Support\Collection;
17
18/**
19 * @var bool                   $can_upload_media
20 * @var Collection<int,Fact>   $clipboard_facts
21 * @var Individual             $record
22 * @var Collection<int,string> $shares
23 */
24
25?>
26
27<div class="dropdown wt-page-menu">
28    <button class="btn btn-primary dropdown-toggle wt-page-menu-button" type="button" id="page-menu" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
29        <?= view('icons/menu') ?>
30        <?= I18N::translate('edit') ?>
31    </button>
32
33    <div class="dropdown-menu dropdown-menu-end wt-page-menu-items" aria-labelledby="page-menu">
34        <?php if ($shares->isNotEmpty()) : ?>
35            <button class="dropdown-item"  data-bs-toggle="modal" data-bs-target="#wt-shares-modal">
36                <?= view('icons/share') ?>
37                <?= I18N::translate('Share') ?>
38            </button>
39
40            <hr>
41        <?php endif ?>
42
43        <a class="dropdown-item" href="<?= e(route(AddNewFact::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref(), 'fact' => 'NAME'])) ?>">
44            <?= view('icons/add') ?>
45            <?= I18N::translate('Add a name') ?>
46        </a>
47
48        <?php if ($record->facts(['NAME'], false, null, true)->count() > 1) : ?>
49            <a class="dropdown-item" href="<?= e(route(ReorderNamesPage::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>">
50                <?= view('icons/reorder') ?>
51                <?= I18N::translate('Re-order names') ?>
52            </a>
53        <?php else : ?>
54            <div class="dropdown-item disabled">
55                <?= view('icons/spacer') ?>
56                <?= I18N::translate('Re-order names') ?>
57            </div>
58        <?php endif ?>
59
60        <div class="dropdown-divider"></div>
61
62        <?php if ($record->facts(['SEX'], false, null, true)->isEmpty()) : ?>
63            <a class="dropdown-item" href="<?= e(route(AddNewFact::class, ['fact' => 'SEX', 'tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>">
64                <?= view('icons/edit') ?>
65                <?= I18N::translate('Edit the gender') ?>
66            </a>
67        <?php endif ?>
68
69        <?php foreach ($record->facts(['SEX'], false, null, true) as $fact) : ?>
70            <?php if ($fact->canEdit()) : ?>
71                <a class="dropdown-item" href="<?= e(route(EditFactPage::class, ['xref' => $record->xref(), 'fact_id' => $fact->id(), 'tree' => $record->tree()->name()])) ?>">
72                    <?= view('icons/edit') ?>
73                    <?= I18N::translate('Edit the gender') ?>
74                </a>
75            <?php endif ?>
76        <?php endforeach ?>
77
78        <div class="dropdown-divider"></div>
79
80        <?php if ($record->spouseFamilies()->count() > 1 || $record->childFamilies()->count() > 1) : ?>
81            <a class="dropdown-item" href="<?= e(route(ReorderFamiliesPage::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>">
82                <?= view('icons/reorder') ?>
83                <?= I18N::translate('Re-order families') ?>
84            </a>
85        <?php else : ?>
86            <div class="dropdown-item disabled">
87                <?= view('icons/spacer') ?>
88                <?= I18N::translate('Re-order families') ?>
89            </div>
90        <?php endif ?>
91
92        <div class="dropdown-divider"></div>
93
94        <?php if ($can_upload_media) : ?>
95            <a class="dropdown-item" href="<?= e(route(AddNewFact::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref(), 'fact' => 'OBJE'])) ?>">
96                <?= view('icons/add') ?>
97                <?= I18N::translate('Add a media object') ?>
98            </a>
99        <?php endif ?>
100
101        <?php if ($record->facts(['OBJE'], false, null, true)->count() > 1) : ?>
102            <a class="dropdown-item" href="<?= e(route(ReorderMediaPage::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>">
103                <?= view('icons/reorder') ?>
104                <?= I18N::translate('Re-order media') ?>
105            </a>
106        <?php else : ?>
107            <div class="dropdown-item disabled">
108                <?= view('icons/spacer') ?>
109                <?= I18N::translate('Re-order media') ?>
110            </div>
111        <?php endif ?>
112
113        <?php if ($clipboard_facts->isNotEmpty()) : ?>
114            <div class="dropdown-divider"></div>
115
116            <?= view('record-page-menu-clipboard', ['clipboard_facts' => $clipboard_facts, 'record' => $record]) ?>
117        <?php endif ?>
118
119        <div class="dropdown-divider"></div>
120
121        <a class="dropdown-item" href="#" data-wt-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', strip_tags($record->fullName())) ?>" data-wt-post-url="<?= e(route(DeleteRecord::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>">
122            <?= view('icons/delete') ?>
123            <?= I18N::translate('Delete') ?>
124        </a>
125
126        <?php if (Auth::isAdmin() || $record->tree()->getPreference('SHOW_GEDCOM_RECORD') === '1') : ?>
127            <a class="dropdown-item" href="<?= e(route(EditRawRecordPage::class, ['tree' => $record->tree()->name(), 'xref' => $record->xref()])) ?>">
128                <?= view('icons/edit') ?>
129                <?= I18N::translate('Edit the raw GEDCOM') ?>
130            </a>
131        <?php endif ?>
132    </div>
133</div>
134