xref: /webtrees/resources/views/admin/trees.phtml (revision 6f4ec3cadc983f0a7294108c634bef48846b4311)
15afbc57aSGreg Roach<?php
25afbc57aSGreg Roach
310e06497SGreg Roachdeclare(strict_types=1);
410e06497SGreg Roach
55afbc57aSGreg Roachuse Fisharebest\Webtrees\Auth;
6*6f4ec3caSGreg Roachuse Fisharebest\Webtrees\DB;
77c7d1e03SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\AddUnlinkedPage;
86fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CheckTree;
90c0910bfSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel;
10d4265d07SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateMediaObjectModal;
11d4265d07SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateNoteModal;
12852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateRepositoryModal;
13852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateSourceModal;
14852ede8cSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\CreateSubmitterModal;
15ce42304aSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\DataFixChoose;
165afbc57aSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\DeleteTreeAction;
176d576906SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ExportGedcomPage;
18*6f4ec3caSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\FindDuplicateRecords;
196fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\GedcomLoad;
206fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\ImportGedcomPage;
215bbfbb82SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\MergeRecordsPage;
2222e73debSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesLogPage;
236fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\RenumberTreePage;
24da1c67ccSGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\SelectDefaultTree;
258e0e1b25SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePage;
266fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePreferencesPage;
276fd01894SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\TreePrivacyPage;
2896716c47SGreg Roachuse Fisharebest\Webtrees\Http\RequestHandlers\UnconnectedPage;
29a2a24e20SGreg Roachuse Fisharebest\Webtrees\I18N;
30a2a24e20SGreg Roachuse Fisharebest\Webtrees\Site;
3195b80a66SGreg Roachuse Fisharebest\Webtrees\Tree;
32a2a24e20SGreg Roachuse Fisharebest\Webtrees\View;
335afbc57aSGreg Roach
3495b80a66SGreg Roach/**
3595b80a66SGreg Roach * @var array<Tree> $all_trees
3695b80a66SGreg Roach * @var string      $title
3795b80a66SGreg Roach * @var Tree        $tree
3895b80a66SGreg Roach */
3995b80a66SGreg Roach
405afbc57aSGreg Roach?>
41dd6b2bfcSGreg Roach
42dd6b2bfcSGreg Roach<?php if (!empty($all_trees)) : ?>
430c0910bfSGreg Roach    <?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), $title]]) ?>
44dd6b2bfcSGreg Roach<?php endif ?>
45dd6b2bfcSGreg Roach
46dd6b2bfcSGreg Roach<h1><?= $title ?></h1>
47dd6b2bfcSGreg Roach
48dd6b2bfcSGreg Roach<?php if (empty($all_trees)) : ?>
49dd6b2bfcSGreg Roach    <div class="alert alert-info">
50dd6b2bfcSGreg Roach        <?= I18N::translate('You need to create a family tree.') ?>
51dd6b2bfcSGreg Roach    </div>
52dd6b2bfcSGreg Roach<?php endif ?>
53dd6b2bfcSGreg Roach
54290bb197SJonathan Jaubart<div id="accordion" aria-multiselectable="true">
55dd6b2bfcSGreg Roach    <?php foreach ($all_trees as $managed_tree) : ?>
56dd6b2bfcSGreg Roach        <?php if (Auth::isManager($managed_tree)) : ?>
57290bb197SJonathan Jaubart            <div class="accordion-item">
58290bb197SJonathan Jaubart                <div class="accordion-header" id="card-tree-header-<?= $managed_tree->id() ?>">
597fa97a69SGreg Roach                    <button class="accordion-button <?= $managed_tree->id() === $tree->id() || $managed_tree->getPreference('imported') === '0' ? ' ' : ' collapsed' ?>" type="button" data-bs-toggle="collapse" data-bs-target="#card-tree-content-<?= $managed_tree->id() ?>" aria-expanded="<?= $managed_tree->id() === $tree->id() || $managed_tree->getPreference('imported') === '0' ? 'true' : 'false' ?>" aria-controls="card-tree-content-<?= $managed_tree->id() ?>">
60290bb197SJonathan Jaubart                        <h2>
61dd6b2bfcSGreg Roach                            <?= view('icons/tree') ?>
62cc13d6d8SGreg Roach                            <?= e($managed_tree->name()) ?><?= e($managed_tree->title()) ?>
63dd6b2bfcSGreg Roach                        </h2>
64290bb197SJonathan Jaubart                    </button>
65dd6b2bfcSGreg Roach                </div>
66315eb316SGreg Roach
677fa97a69SGreg Roach                <div id="card-tree-content-<?= $managed_tree->id() ?>" class="accordion-collapse collapse<?= $managed_tree->id() === $tree->id() || $managed_tree->getPreference('imported') === '0' ? ' show' : '' ?>" aria-labelledby="panel-tree-header-<?= $managed_tree->id() ?>">
68290bb197SJonathan Jaubart                    <div class="accordion-body">
693fa66c66SGreg Roach                        <?php $importing = DB::table('gedcom_chunk')->where('gedcom_id', '=', $managed_tree->id())->where('imported', '=', 0)->exists() ?>
70dd6b2bfcSGreg Roach                        <?php if ($importing) : ?>
715197b5a1SGreg Roach                            <div id="import<?= $managed_tree->id() ?>" class="col-12">
72c5cb081fSGreg Roach                                <div class="progress" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
73c5cb081fSGreg Roach                                    <div class="progress-bar">
74dd6b2bfcSGreg Roach                                        <?= I18N::translate('Calculating…') ?>
75dd6b2bfcSGreg Roach                                    </div>
76dd6b2bfcSGreg Roach                                </div>
77eb7fd195SGreg Roach                            </div>
78dd6b2bfcSGreg Roach                            <?php View::push('javascript'); ?>
79dd6b2bfcSGreg Roach                                <script>
806fd01894SGreg Roach                                    $("#import<?= $managed_tree->id() ?>").load("<?= route(GedcomLoad::class, ['tree' => $managed_tree->name()]) ?>", {});
81dd6b2bfcSGreg Roach                                </script>
82dd6b2bfcSGreg Roach                                <?php View::endpush() ?>
83dd6b2bfcSGreg Roach                        <?php endif ?>
8472cf66d4SGreg Roach                        <div class="row<?= $importing ? ' d-none' : '' ?>" id="actions<?= $managed_tree->id() ?>">
85dd6b2bfcSGreg Roach                            <div class="col-sm-6 col-md-3">
86dd6b2bfcSGreg Roach                                <h3>
87dd6b2bfcSGreg Roach                                    <?= I18N::translate('Family tree') ?>
88dd6b2bfcSGreg Roach                                </h3>
89315eb316SGreg Roach                                <ul class="fa-ul mx-0">
904d787ddeSGreg Roach                                    <li>
914d787ddeSGreg Roach                                        <span class="fa-li"><?= view('icons/tree') ?></span>
928e0e1b25SGreg Roach                                        <a href="<?= e(route(TreePage::class, ['tree' => $managed_tree->name()])) ?>">
934d787ddeSGreg Roach                                            <?= I18N::translate('Home page') ?>
944d787ddeSGreg Roach                                        </a>
954d787ddeSGreg Roach                                    </li>
964d787ddeSGreg Roach                                </ul>
97315eb316SGreg Roach                                <ul class="fa-ul mx-0">
98dd6b2bfcSGreg Roach                                    <!-- PREFERENCES -->
99dd6b2bfcSGreg Roach                                    <li>
100dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/preferences') ?></span>
1016fd01894SGreg Roach                                        <a href="<?= e(route(TreePreferencesPage::class, ['tree' => $managed_tree->name()])) ?>">
102dd6b2bfcSGreg Roach                                            <?= I18N::translate('Preferences') ?>
103315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
104dd6b2bfcSGreg Roach                                        </a>
105dd6b2bfcSGreg Roach                                    </li>
106dd6b2bfcSGreg Roach                                    <!-- PRIVACY -->
107dd6b2bfcSGreg Roach                                    <li>
108dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/lock') ?></span>
1096fd01894SGreg Roach                                        <a href="<?= e(route(TreePrivacyPage::class, ['tree' => $managed_tree->name()])) ?>">
110dd6b2bfcSGreg Roach                                            <?= I18N::translate('Privacy') ?>
111315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
112dd6b2bfcSGreg Roach                                        </a>
113dd6b2bfcSGreg Roach                                    </li>
114dd6b2bfcSGreg Roach                                    <!-- DELETE -->
115a2a24e20SGreg Roach                                    <?php if (count($all_trees) > 1 && Auth::isAdmin()) : ?>
116dd6b2bfcSGreg Roach                                        <li>
117dd6b2bfcSGreg Roach                                            <span class="fa-li"><?= view('icons/delete') ?></span>
118d4786c66SGreg Roach                                            <a href="#" data-wt-post-url="<?= e(route(DeleteTreeAction::class, ['tree' => $managed_tree->name()])) ?>" data-wt-reload-url="<?= e(route(ControlPanel::class)) ?>" data-wt-confirm="<?= I18N::translate('Are you sure you want to delete “%s”?', e($managed_tree->title())) ?>">
119dd6b2bfcSGreg Roach                                                <?= I18N::translate('Delete') ?>
120dd6b2bfcSGreg Roach                                            </a>
121dd6b2bfcSGreg Roach                                        </li>
122a2a24e20SGreg Roach                                    <?php endif ?>
123a2a24e20SGreg Roach
124dd6b2bfcSGreg Roach                                    <!-- SET AS DEFAULT -->
125a2a24e20SGreg Roach                                    <?php if (count($all_trees) > 1 && Auth::isAdmin()) : ?>
126dd6b2bfcSGreg Roach                                        <li>
127dd6b2bfcSGreg Roach                                            <span class="fa-li"><?= view('icons/favorite') ?></span>
128aa6f03bbSGreg Roach                                            <?php if ($managed_tree->name() === Site::getPreference('DEFAULT_GEDCOM')) : ?>
129dd6b2bfcSGreg Roach                                                <?= I18N::translate('Default family tree') ?>
130dd6b2bfcSGreg Roach                                            <?php else : ?>
13172cf66d4SGreg Roach                                                <a href="#" onclick="document.defaultform<?= $managed_tree->id() ?>.submit();">
132dd6b2bfcSGreg Roach                                                    <?= I18N::translate('Set as default') ?>
133315eb316SGreg Roach                                                    <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
134dd6b2bfcSGreg Roach                                                </a>
135da1c67ccSGreg Roach                                                <form method="post" action="<?= route(SelectDefaultTree::class, ['tree' => $managed_tree->name()]) ?>" name="defaultform<?= $managed_tree->id() ?>">
136dd6b2bfcSGreg Roach                                                    <!-- A11Y - forms need submit buttons, but they look ugly here -->
137315eb316SGreg Roach                                                    <button class="visually-hidden" type="submit">
138dd6b2bfcSGreg Roach                                                        <?= I18N::translate('Set as default') ?>
139dd6b2bfcSGreg Roach                                                    </button>
14081443e3cSGreg Roach
14181443e3cSGreg Roach                                                    <?= csrf_field() ?>
142dd6b2bfcSGreg Roach                                                </form>
143dd6b2bfcSGreg Roach                                            <?php endif ?>
144dd6b2bfcSGreg Roach                                        </li>
145dd6b2bfcSGreg Roach                                    <?php endif ?>
146dd6b2bfcSGreg Roach                                </ul>
147ce42304aSGreg Roach
148315eb316SGreg Roach                                <ul class="fa-ul mx-0">
149ce42304aSGreg Roach                                    <!-- DATA FIXES -->
150ce42304aSGreg Roach                                    <li>
151ce42304aSGreg Roach                                        <span class="fa-li"><?= view('icons/data-fix') ?></span>
152ce42304aSGreg Roach                                        <a href="<?= e(route(DataFixChoose::class, ['tree' => $managed_tree->name()])) ?>">
153ce42304aSGreg Roach                                            <?= I18N::translate('Data fixes') ?>
154315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
155ce42304aSGreg Roach                                        </a>
156ce42304aSGreg Roach                                    </li>
157ce42304aSGreg Roach                                </ul>
158dd6b2bfcSGreg Roach                            </div>
159dd6b2bfcSGreg Roach                            <div class="col-sm-6 col-md-3">
160dd6b2bfcSGreg Roach                                <h3>
161a2a24e20SGreg Roach                                    <?= /* I18N: Individuals, sources, dates, places, etc. */
162a2a24e20SGreg Roach                                    I18N::translate('Genealogy data') ?>
163dd6b2bfcSGreg Roach                                </h3>
164315eb316SGreg Roach                                <ul class="fa-ul mx-0">
165dd6b2bfcSGreg Roach                                    <!-- FIND DUPLICATES -->
166dd6b2bfcSGreg Roach                                    <li>
167dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/copy') ?></span>
1686fd01894SGreg Roach                                        <a href="<?= e(route(FindDuplicateRecords::class, ['tree' => $managed_tree->name()])) ?>">
169dd6b2bfcSGreg Roach                                            <?= I18N::translate('Find duplicates') ?>
170315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
171dd6b2bfcSGreg Roach                                        </a>
172dd6b2bfcSGreg Roach                                    </li>
173dd6b2bfcSGreg Roach                                    <!-- MERGE -->
174dd6b2bfcSGreg Roach                                    <li>
175dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/merge') ?></span>
1765bbfbb82SGreg Roach                                        <a href="<?= e(route(MergeRecordsPage::class, ['tree' => $managed_tree->name()])) ?>">
177dd6b2bfcSGreg Roach                                            <?= I18N::translate('Merge records') ?>
178315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
179dd6b2bfcSGreg Roach                                        </a>
180dd6b2bfcSGreg Roach                                    </li>
181dd6b2bfcSGreg Roach                                    <!-- CHECK FOR ERRORS -->
182dd6b2bfcSGreg Roach                                    <li>
183dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/warning') ?></span>
1846fd01894SGreg Roach                                        <a href="<?= e(route(CheckTree::class, ['tree' => $managed_tree->name()])) ?>">
185dd6b2bfcSGreg Roach                                            <?= I18N::translate('Check for errors') ?>
186315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
187dd6b2bfcSGreg Roach                                        </a>
188dd6b2bfcSGreg Roach                                    </li>
189dd6b2bfcSGreg Roach                                    <!-- UNCONNECTED INDIVIDUALS -->
190dd6b2bfcSGreg Roach                                    <li>
191dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/unlink') ?></span>
19296716c47SGreg Roach                                        <a href="<?= e(route(UnconnectedPage::class, ['tree' => $managed_tree->name()])) ?>">
193dd6b2bfcSGreg Roach                                            <?= I18N::translate('Find unrelated individuals') ?>
194315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
195dd6b2bfcSGreg Roach                                        </a>
196dd6b2bfcSGreg Roach                                    </li>
197dd6b2bfcSGreg Roach                                    <!-- RENUMBER -->
198dd6b2bfcSGreg Roach                                    <li>
199dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/sort') ?></span>
2006fd01894SGreg Roach                                        <a href="<?= e(route(RenumberTreePage::class, ['tree' => $managed_tree->name()])) ?>">
201a5aad981SGreg Roach                                            <?= I18N::translate('Renumber XREFs') ?>
202315eb316SGreg Roach                                            <span class="visually-hidden">
203cc13d6d8SGreg Roach                                        <?= e($managed_tree->title()) ?>
204dd6b2bfcSGreg Roach                                    </span>
205dd6b2bfcSGreg Roach                                        </a>
206dd6b2bfcSGreg Roach                                    </li>
207dd6b2bfcSGreg Roach                                    <!-- CHANGES -->
208dd6b2bfcSGreg Roach                                    <li>
209dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/edit') ?></span>
21022e73debSGreg Roach                                        <a href="<?= route(PendingChangesLogPage::class, ['tree' => $managed_tree->name()]) ?>">
211dd6b2bfcSGreg Roach                                            <?= I18N::translate('Changes log') ?>
212315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
213dd6b2bfcSGreg Roach                                        </a>
214dd6b2bfcSGreg Roach                                    </li>
215dd6b2bfcSGreg Roach                                </ul>
216dd6b2bfcSGreg Roach                            </div>
217dd6b2bfcSGreg Roach                            <div class="col-sm-6 col-md-3">
218dd6b2bfcSGreg Roach                                <h3>
219dd6b2bfcSGreg Roach                                    <?= I18N::translate('Add unlinked records') ?>
220dd6b2bfcSGreg Roach                                </h3>
221315eb316SGreg Roach                                <ul class="fa-ul mx-0">
222dd6b2bfcSGreg Roach                                    <!-- UNLINKED INDIVIDUAL -->
223dd6b2bfcSGreg Roach                                    <li>
224dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/individual') ?></span>
2257c7d1e03SGreg Roach                                        <a href="<?= e(route(AddUnlinkedPage::class, ['tree' => $managed_tree->name()])) ?>">
226dd6b2bfcSGreg Roach                                            <?= I18N::translate('Individual') ?>
227315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
228dd6b2bfcSGreg Roach                                        </a>
229dd6b2bfcSGreg Roach                                    </li>
230dd6b2bfcSGreg Roach                                    <!-- UNLINKED SOURCE -->
231dd6b2bfcSGreg Roach                                    <li>
232dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/source') ?></span>
233d4786c66SGreg Roach                                        <a href="#" data-wt-href="<?= e(route(CreateSourceModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static">
234dd6b2bfcSGreg Roach                                            <?= I18N::translate('Source') ?>
235315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
236dd6b2bfcSGreg Roach                                        </a>
237dd6b2bfcSGreg Roach                                    </li>
238dd6b2bfcSGreg Roach                                    <!-- UNLINKED REPOSITORY -->
239dd6b2bfcSGreg Roach                                    <li>
240dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/repository') ?></span>
241d4786c66SGreg Roach                                        <a href="#" data-wt-href="<?= e(route(CreateRepositoryModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static">
242dd6b2bfcSGreg Roach                                            <?= I18N::translate('Repository') ?>
243315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
244dd6b2bfcSGreg Roach                                        </a>
245dd6b2bfcSGreg Roach                                    </li>
246dd6b2bfcSGreg Roach                                    <!-- UNLINKED MEDIA OBJECT -->
247dd6b2bfcSGreg Roach                                    <li>
248dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/media') ?></span>
249d4786c66SGreg Roach                                        <a href="#" data-wt-href="<?= e(route(CreateMediaObjectModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static">
250dd6b2bfcSGreg Roach
251dd6b2bfcSGreg Roach                                            <?= I18N::translate('Media object') ?>
252315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
253dd6b2bfcSGreg Roach                                        </a>
254dd6b2bfcSGreg Roach                                    </li>
255dd6b2bfcSGreg Roach                                    <!-- UNLINKED NOTE -->
256dd6b2bfcSGreg Roach                                    <li>
257dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/note') ?></span>
258d4786c66SGreg Roach                                        <a href="#" data-wt-href="<?= e(route(CreateNoteModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static">
259dd6b2bfcSGreg Roach                                            <?= I18N::translate('Shared note') ?>
260315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
261dd6b2bfcSGreg Roach                                        </a>
262dd6b2bfcSGreg Roach                                    </li>
263dd6b2bfcSGreg Roach                                    <!-- UNLINKED SUBMITTER -->
264dd6b2bfcSGreg Roach                                    <li>
265dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/submitter') ?></span>
266d4786c66SGreg Roach                                        <a href="#" data-wt-href="<?= e(route(CreateSubmitterModal::class, ['tree' => $managed_tree->name()])) ?>" data-bs-target="#wt-ajax-modal" data-bs-toggle="modal" data-bs-backdrop="static">
267dd6b2bfcSGreg Roach                                            <?= I18N::translate('Submitter') ?>
268315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
269dd6b2bfcSGreg Roach                                        </a>
270dd6b2bfcSGreg Roach                                    </li>
271dd6b2bfcSGreg Roach                                </ul>
272dd6b2bfcSGreg Roach                            </div>
273dd6b2bfcSGreg Roach                            <div class="col-sm-6 col-md-3">
274dd6b2bfcSGreg Roach                                <h3>
275dd6b2bfcSGreg Roach                                    <?= I18N::translate('GEDCOM file') ?>
276dd6b2bfcSGreg Roach                                </h3>
277315eb316SGreg Roach                                <ul class="fa-ul mx-0">
278dd6b2bfcSGreg Roach                                    <!-- DOWNLOAD/Export -->
279dd6b2bfcSGreg Roach                                    <li>
280dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/download') ?></span>
2816d576906SGreg Roach                                        <a href="<?= e(route(ExportGedcomPage::class, ['tree' => $managed_tree->name()])) ?>">
282dd6b2bfcSGreg Roach                                            <?= I18N::translate('Export') ?>
283315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
284dd6b2bfcSGreg Roach                                        </a>
285dd6b2bfcSGreg Roach                                    </li>
286dd6b2bfcSGreg Roach                                    <!-- UPLOAD/IMPORT -->
287dd6b2bfcSGreg Roach                                    <li>
288dd6b2bfcSGreg Roach                                        <span class="fa-li"><?= view('icons/upload') ?></span>
2896fd01894SGreg Roach                                        <a href="<?= e(route(ImportGedcomPage::class, ['tree' => $managed_tree->name()])) ?>">
290dd6b2bfcSGreg Roach                                            <?= I18N::translate('Import') ?>
291315eb316SGreg Roach                                            <span class="visually-hidden"><?= e($managed_tree->title()) ?></span>
292dd6b2bfcSGreg Roach                                        </a>
293dd6b2bfcSGreg Roach                                    </li>
294dd6b2bfcSGreg Roach                                </ul>
295dd6b2bfcSGreg Roach                            </div>
296dd6b2bfcSGreg Roach                        </div>
297dd6b2bfcSGreg Roach                    </div>
298dd6b2bfcSGreg Roach                </div>
299dd6b2bfcSGreg Roach            </div>
300dd6b2bfcSGreg Roach        <?php endif ?>
301dd6b2bfcSGreg Roach    <?php endforeach ?>
302dd6b2bfcSGreg Roach</div>
303dd6b2bfcSGreg Roach
304dd6b2bfcSGreg Roach<?= view('modals/ajax') ?>
305