xref: /webtrees/resources/views/admin/control-panel.phtml (revision 895230eed7521b5cd885b90d4f5310405ff0b69a)
1dd6b2bfcSGreg Roach<?php use Fisharebest\Webtrees\I18N; ?>
28d0ebef0SGreg Roach<?php use Fisharebest\Webtrees\Webtrees; ?>
3dd6b2bfcSGreg Roach
4dd6b2bfcSGreg Roach<h1><?= $title ?></h1>
5dd6b2bfcSGreg Roach
6dd6b2bfcSGreg Roach<!-- WEBSITE / WEBTREES -->
7dd6b2bfcSGreg Roach<div class="card mb-4">
8dd6b2bfcSGreg Roach    <div class="card-header">
9dd6b2bfcSGreg Roach        <h2 class="mb-0">
10dd6b2bfcSGreg Roach            <?= I18N::translate('Website') ?>
11dd6b2bfcSGreg Roach            <span class="badge badge-secondary">
128d0ebef0SGreg Roach                <?= e(Webtrees::VERSION) ?>
13dd6b2bfcSGreg Roach            </span>
14dd6b2bfcSGreg Roach        </h2>
15dd6b2bfcSGreg Roach    </div>
16dd6b2bfcSGreg Roach    <div class="card-body">
17dd6b2bfcSGreg Roach        <?php foreach ($server_warnings as $server_warning) : ?>
18dd6b2bfcSGreg Roach            <p class="alert alert-warning"><?= $server_warning ?></p>
19dd6b2bfcSGreg Roach        <?php endforeach ?>
20dd6b2bfcSGreg Roach
21dd6b2bfcSGreg Roach        <p class="card-text">
22dd6b2bfcSGreg Roach            <?= /* I18N: %s is a URL/link to the project website */
23dd6b2bfcSGreg Roach            I18N::translate('Support and documentation can be found at %s.', '<a href="https://webtrees.net/">webtrees.net</a>') ?>
24dd6b2bfcSGreg Roach        </p>
25dd6b2bfcSGreg Roach        <p class="card-text ">
26dd6b2bfcSGreg Roach            <?php if ($latest_version === '') : ?>
27dd6b2bfcSGreg Roach                <?= I18N::translate('No upgrade information is available.') ?>
288d0ebef0SGreg Roach            <?php elseif (version_compare(Webtrees::VERSION, $latest_version) < 0) : ?>
29dd6b2bfcSGreg Roach                <?= I18N::translate('A new version of webtrees is available.') ?>
30dd6b2bfcSGreg Roach                <a href="<?= e(route('upgrade')) ?>" class="error">
31dd6b2bfcSGreg Roach                    <?= /* I18N: %s is a version number */
32dd6b2bfcSGreg Roach                    I18N::translate('Upgrade to webtrees %s.', e($latest_version)) ?>
33dd6b2bfcSGreg Roach                </a>
34dd6b2bfcSGreg Roach            <?php else : ?>
35dd6b2bfcSGreg Roach                <?= I18N::translate('This is the latest version of webtrees. No upgrade is available.') ?>
36dd6b2bfcSGreg Roach            <?php endif ?>
37dd6b2bfcSGreg Roach        </p>
38dd6b2bfcSGreg Roach
39dd6b2bfcSGreg Roach        <div class="row">
40dd6b2bfcSGreg Roach            <div class="col-sm-6">
41dd6b2bfcSGreg Roach                <ul class="fa-ul">
42dd6b2bfcSGreg Roach                    <li>
43dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
44dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-preferences')) ?>">
45dd6b2bfcSGreg Roach                            <?= I18N::translate('Website preferences') ?>
46dd6b2bfcSGreg Roach                        </a>
47dd6b2bfcSGreg Roach                    </li>
48dd6b2bfcSGreg Roach                    <li>
49dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
50dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-mail')) ?>">
51dd6b2bfcSGreg Roach                            <?= I18N::translate('Sending email') ?>
52dd6b2bfcSGreg Roach                        </a>
53dd6b2bfcSGreg Roach                    </li>
54dd6b2bfcSGreg Roach                    <li>
55dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
56dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-registration')) ?>">
57dd6b2bfcSGreg Roach                            <?= I18N::translate('Sign-in and registration') ?>
58dd6b2bfcSGreg Roach                        </a>
59dd6b2bfcSGreg Roach                    </li>
60dd6b2bfcSGreg Roach                    <li>
61dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
62dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-languages')) ?>">
63dd6b2bfcSGreg Roach                            <?= I18N::translate('Languages') ?>
64dd6b2bfcSGreg Roach                        </a>
65dd6b2bfcSGreg Roach                    </li>
66dd6b2bfcSGreg Roach                    <li>
67dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
68dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-analytics')) ?>">
69dd6b2bfcSGreg Roach                            <?= I18N::translate('Tracking and analytics') ?>
70dd6b2bfcSGreg Roach                        </a>
71dd6b2bfcSGreg Roach                    </li>
72dd6b2bfcSGreg Roach                </ul>
73dd6b2bfcSGreg Roach            </div>
74dd6b2bfcSGreg Roach            <div class="col-sm-6">
75dd6b2bfcSGreg Roach                <ul class="fa-ul">
76dd6b2bfcSGreg Roach                    <li>
77dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
78dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-logs')) ?>">
79dd6b2bfcSGreg Roach                            <?= I18N::translate('Website logs') ?>
80dd6b2bfcSGreg Roach                        </a>
81dd6b2bfcSGreg Roach                    </li>
82dd6b2bfcSGreg Roach                    <li>
83dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
84dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-clean-data')) ?>">
85dd6b2bfcSGreg Roach                            <?= I18N::translate('Clean up data folder') ?>
86dd6b2bfcSGreg Roach                        </a>
87dd6b2bfcSGreg Roach                    </li>
88dd6b2bfcSGreg Roach                    <li>
89dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
90dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-site-information')) ?>">
91dd6b2bfcSGreg Roach                            <?= I18N::translate('Server information') ?>
92dd6b2bfcSGreg Roach                        </a>
93dd6b2bfcSGreg Roach                    </li>
94dd6b2bfcSGreg Roach                </ul>
95dd6b2bfcSGreg Roach            </div>
96dd6b2bfcSGreg Roach        </div>
97dd6b2bfcSGreg Roach    </div>
98dd6b2bfcSGreg Roach</div>
99dd6b2bfcSGreg Roach
100dd6b2bfcSGreg Roach<!-- FAMILY TREES -->
101dd6b2bfcSGreg Roach<div class="card mb-4 <?= array_sum($changes) ? 'card-outline-danger' : '' ?>">
102dd6b2bfcSGreg Roach    <div class="card-header">
103dd6b2bfcSGreg Roach        <h2 class="mb-0">
104dd6b2bfcSGreg Roach            <?= I18N::translate('Family trees') ?>
105dd6b2bfcSGreg Roach            <span class="badge badge-secondary">
106dd6b2bfcSGreg Roach                    <?= I18N::number(count($all_trees)) ?>
107dd6b2bfcSGreg Roach                </span>
108dd6b2bfcSGreg Roach        </h2>
109dd6b2bfcSGreg Roach    </div>
110dd6b2bfcSGreg Roach    <div class="card-body">
111dd6b2bfcSGreg Roach        <table class="table table-sm">
112dd6b2bfcSGreg Roach            <caption class="sr-only">
113dd6b2bfcSGreg Roach                <?= I18N::translate('Family trees') ?>
114dd6b2bfcSGreg Roach            </caption>
115dd6b2bfcSGreg Roach            <thead>
116dd6b2bfcSGreg Roach                <tr>
117dd6b2bfcSGreg Roach                    <th><?= I18N::translate('Family tree') ?></th>
118dd6b2bfcSGreg Roach                    <th><span class="sr-only"><?= I18N::translate('Manage family trees') ?></span></th>
119dd6b2bfcSGreg Roach                    <th class="text-right"><?= I18N::translate('Pending changes') ?></th>
120dd6b2bfcSGreg Roach                    <th class="d-none d-sm-table-cell text-right"><?= I18N::translate('Individuals') ?></th>
121dd6b2bfcSGreg Roach                    <th class="d-none d-lg-table-cell text-right"><?= I18N::translate('Families') ?></th>
122dd6b2bfcSGreg Roach                    <th class="d-none d-sm-table-cell text-right"><?= I18N::translate('Sources') ?></th>
123dd6b2bfcSGreg Roach                    <th class="d-none d-lg-table-cell text-right"><?= I18N::translate('Repositories') ?></th>
124dd6b2bfcSGreg Roach                    <th class="d-none d-sm-table-cell text-right"><?= I18N::translate('Media') ?></th>
125dd6b2bfcSGreg Roach                    <th class="d-none d-lg-table-cell text-right"><?= I18N::translate('Notes') ?></th>
126dd6b2bfcSGreg Roach                </tr>
127dd6b2bfcSGreg Roach            </thead>
128dd6b2bfcSGreg Roach            <tbody>
129dd6b2bfcSGreg Roach                <?= view('admin/control-panel-tree-list', [
130dd6b2bfcSGreg Roach                    'all_trees'    => $all_trees,
131dd6b2bfcSGreg Roach                    'changes'      => $changes,
132dd6b2bfcSGreg Roach                    'individuals'  => $individuals,
133dd6b2bfcSGreg Roach                    'families'     => $families,
134dd6b2bfcSGreg Roach                    'sources'      => $sources,
135dd6b2bfcSGreg Roach                    'repositories' => $repositories,
136dd6b2bfcSGreg Roach                    'media'        => $media,
137dd6b2bfcSGreg Roach                    'notes'        => $notes,
138dd6b2bfcSGreg Roach                ]); ?>
139dd6b2bfcSGreg Roach            </tbody>
140dd6b2bfcSGreg Roach            <tfoot>
141dd6b2bfcSGreg Roach                <tr>
142dd6b2bfcSGreg Roach                    <th scope="row">
143dd6b2bfcSGreg Roach                        <?= I18N::translate('Total') ?>
144dd6b2bfcSGreg Roach                    </th>
145dd6b2bfcSGreg Roach                    <td></td>
146dd6b2bfcSGreg Roach                    <td class="text-right">
147dd6b2bfcSGreg Roach                        <?= I18N::number(array_sum($changes)) ?>
148dd6b2bfcSGreg Roach                    </td>
149dd6b2bfcSGreg Roach                    <td class="d-none d-sm-table-cell text-right">
1502078eafaSGreg Roach                        <?= I18N::number($individuals->sum()) ?>
151dd6b2bfcSGreg Roach                    </td>
152dd6b2bfcSGreg Roach                    <td class="d-none d-lg-table-cell text-right">
1532078eafaSGreg Roach                        <?= I18N::number($families->sum()) ?>
154dd6b2bfcSGreg Roach                    </td>
155dd6b2bfcSGreg Roach                    <td class="d-none d-sm-table-cell text-right">
1562078eafaSGreg Roach                        <?= I18N::number($sources->sum()) ?>
157dd6b2bfcSGreg Roach                    </td>
158dd6b2bfcSGreg Roach                    <td class="d-none d-lg-table-cell text-right">
1592078eafaSGreg Roach                        <?= I18N::number($repositories->sum()) ?>
160dd6b2bfcSGreg Roach                    </td>
161dd6b2bfcSGreg Roach                    <td class="d-none d-sm-table-cell text-right">
1622078eafaSGreg Roach                        <?= I18N::number($media->sum()) ?>
163dd6b2bfcSGreg Roach                    </td>
164dd6b2bfcSGreg Roach                    <td class="d-none d-lg-table-cell text-right">
1652078eafaSGreg Roach                        <?= I18N::number($notes->sum()) ?>
166dd6b2bfcSGreg Roach                    </td>
167dd6b2bfcSGreg Roach                </tr>
168dd6b2bfcSGreg Roach            </tfoot>
169dd6b2bfcSGreg Roach        </table>
170dd6b2bfcSGreg Roach
171dd6b2bfcSGreg Roach        <ul class="fa-ul">
172dd6b2bfcSGreg Roach            <li>
173dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
174aa6f03bbSGreg Roach                <a href="<?= e(route('admin-trees', ['ged' => $tree->name()])) ?>">
175dd6b2bfcSGreg Roach                    <?= I18N::translate('Manage family trees') ?>
176dd6b2bfcSGreg Roach                </a>
177dd6b2bfcSGreg Roach            </li>
178dd6b2bfcSGreg Roach            <li>
179dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
180dd6b2bfcSGreg Roach                <a href="<?= e(route('tree-page-default-edit')) ?>">
181dd6b2bfcSGreg Roach                    <?= I18N::translate('Set the default blocks for new family trees') ?>
182dd6b2bfcSGreg Roach                </a>
183dd6b2bfcSGreg Roach            </li>
184dd6b2bfcSGreg Roach            <?php if (count($all_trees) > 1) : ?>
185dd6b2bfcSGreg Roach                <li>
186dd6b2bfcSGreg Roach                    <span class="fa-li"><?= view('icons/preferences') ?></span>
187dd6b2bfcSGreg Roach                    <a href="<?= e(route('admin-trees-merge')) ?>">
188dd6b2bfcSGreg Roach                        <?= I18N::translate('Merge family trees') ?>
189dd6b2bfcSGreg Roach                    </a>
190dd6b2bfcSGreg Roach                </li>
191dd6b2bfcSGreg Roach            <?php endif ?>
192dd6b2bfcSGreg Roach        </ul>
193dd6b2bfcSGreg Roach    </div>
194dd6b2bfcSGreg Roach</div>
195dd6b2bfcSGreg Roach
196dd6b2bfcSGreg Roach<!-- USERS -->
197dd6b2bfcSGreg Roach<div class="card mb-4 <?= $unapproved || $unverified ? 'card-outline-danger' : '' ?>">
198dd6b2bfcSGreg Roach    <div class="card-header">
199dd6b2bfcSGreg Roach        <h2 class="mb-0">
200dd6b2bfcSGreg Roach            <?= I18N::translate('Users') ?>
201dd6b2bfcSGreg Roach            <span class="badge badge-secondary">
202dd6b2bfcSGreg Roach                    <?= I18N::number(count($all_users)) ?>
203dd6b2bfcSGreg Roach                </span>
204dd6b2bfcSGreg Roach        </h2>
205dd6b2bfcSGreg Roach    </div>
206dd6b2bfcSGreg Roach    <div class="card-body">
207dd6b2bfcSGreg Roach        <dl class="row">
208dd6b2bfcSGreg Roach            <?php foreach ([I18N::translate('Administrators') => $administrators, I18N::translate('Managers') => $managers, I18N::translate('Moderators') => $moderators, I18N::translate('Not verified by the user') => $unverified, I18N::translate('Not approved by an administrator') => $unapproved] as $label => $list) : ?>
209dd6b2bfcSGreg Roach                <?php if (!empty($list)) : ?>
210dd6b2bfcSGreg Roach                    <dt class="col-sm-3">
211dd6b2bfcSGreg Roach                        <?= $label ?>
212dd6b2bfcSGreg Roach                    </dt>
213dd6b2bfcSGreg Roach                    <dd class="col-sm-9">
214dd6b2bfcSGreg Roach                        <?php foreach ($list as $n => $user) : ?>
215dd6b2bfcSGreg Roach                            <?= $n ? I18N::$list_separator : '' ?>
216*895230eeSGreg Roach                            <a href="<?= e(route('admin-users-edit', ['user_id' => $user->id()])) ?>" dir="auto">
217dd6b2bfcSGreg Roach                                <?= e($user->getRealName()) ?>
218dd6b2bfcSGreg Roach                            </a>
219dd6b2bfcSGreg Roach                        <?php endforeach ?>
220dd6b2bfcSGreg Roach                    </dd>
221dd6b2bfcSGreg Roach                <?php endif ?>
222dd6b2bfcSGreg Roach            <?php endforeach ?>
223dd6b2bfcSGreg Roach        </dl>
224dd6b2bfcSGreg Roach
225dd6b2bfcSGreg Roach        <div class="row">
226dd6b2bfcSGreg Roach            <div class="col-sm-6">
227dd6b2bfcSGreg Roach                <ul class="fa-ul">
228dd6b2bfcSGreg Roach                    <li>
229dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
230aa6f03bbSGreg Roach                        <a href="<?= e(route('admin-users', ['ged' => $tree->name()])) ?>">
231dd6b2bfcSGreg Roach                            <?= I18N::translate('User administration') ?>
232dd6b2bfcSGreg Roach                        </a>
233dd6b2bfcSGreg Roach                    </li>
234dd6b2bfcSGreg Roach                    <li>
235dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
236aa6f03bbSGreg Roach                        <a href="<?= e(route('admin-users-create', ['ged' => $tree->name()])) ?>">
237dd6b2bfcSGreg Roach                            <?= I18N::translate('Add a user') ?>
238dd6b2bfcSGreg Roach                        </a>
239dd6b2bfcSGreg Roach                    </li>
240dd6b2bfcSGreg Roach                    <li>
241dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
242dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-users-cleanup')) ?>">
243dd6b2bfcSGreg Roach                            <?= I18N::translate('Delete inactive users') ?>
244dd6b2bfcSGreg Roach                        </a>
245dd6b2bfcSGreg Roach                    </li>
246dd6b2bfcSGreg Roach                    <li>
247dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/preferences') ?></span>
248dd6b2bfcSGreg Roach                        <a href="<?= e(route('user-page-default-edit')) ?>">
249dd6b2bfcSGreg Roach                            <?= I18N::translate('Set the default blocks for new users') ?>
250dd6b2bfcSGreg Roach                        </a>
251dd6b2bfcSGreg Roach                    </li>
252dd6b2bfcSGreg Roach                </ul>
253dd6b2bfcSGreg Roach            </div>
254dd6b2bfcSGreg Roach            <div class="col-sm-6">
255dd6b2bfcSGreg Roach                <ul class="fa-ul">
256dd6b2bfcSGreg Roach                    <li>
257dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/email') ?></span>
258dd6b2bfcSGreg Roach                        <a href="<?= e(route('broadcast', ['to' => 'all'])) ?>">
259dd6b2bfcSGreg Roach                            <?= I18N::translate('Send a message to all users') ?>
260dd6b2bfcSGreg Roach                        </a>
261dd6b2bfcSGreg Roach                    </li>
262dd6b2bfcSGreg Roach                    <li>
263dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/email') ?></span>
264dd6b2bfcSGreg Roach                        <a href="<?= e(route('broadcast', ['to' => 'never_logged'])) ?>">
265dd6b2bfcSGreg Roach                            <?= I18N::translate('Send a message to users who have never signed in') ?>
266dd6b2bfcSGreg Roach                        </a>
267dd6b2bfcSGreg Roach                    </li>
268dd6b2bfcSGreg Roach                    <li>
269dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/email') ?></span>
270dd6b2bfcSGreg Roach                        <a href="<?= e(route('broadcast', ['to' => 'last_6mo'])) ?>">
271dd6b2bfcSGreg Roach                            <?= I18N::translate('Send a message to users who have not signed in for 6 months') ?>
272dd6b2bfcSGreg Roach                        </a>
273dd6b2bfcSGreg Roach                    </li>
274dd6b2bfcSGreg Roach                </ul>
275dd6b2bfcSGreg Roach            </div>
276dd6b2bfcSGreg Roach        </div>
277dd6b2bfcSGreg Roach    </div>
278dd6b2bfcSGreg Roach</div>
279dd6b2bfcSGreg Roach
280dd6b2bfcSGreg Roach<!-- MODULES -->
281dd6b2bfcSGreg Roach<div class="card mb-4">
282dd6b2bfcSGreg Roach    <div class="card-header">
283dd6b2bfcSGreg Roach        <h2 class="mb-0">
284dd6b2bfcSGreg Roach            <?= I18N::translate('Modules') ?>
285dd6b2bfcSGreg Roach            <span class="badge badge-secondary">
286dd6b2bfcSGreg Roach                <?= I18N::number(count($all_modules)) ?>
287dd6b2bfcSGreg Roach            </span>
288dd6b2bfcSGreg Roach        </h2>
289dd6b2bfcSGreg Roach    </div>
290dd6b2bfcSGreg Roach    <div class="card-body">
291dd6b2bfcSGreg Roach        <div class="row">
292dd6b2bfcSGreg Roach            <div class="col-sm-6">
293dd6b2bfcSGreg Roach                <ul class="fa-ul">
294dd6b2bfcSGreg Roach                    <li>
295dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/menu') ?></span>
296dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-menus')) ?>">
297dd6b2bfcSGreg Roach                            <?= I18N::translate('Menus') ?>
298dd6b2bfcSGreg Roach                        </a>
299dd6b2bfcSGreg Roach                    </li>
300dd6b2bfcSGreg Roach                    <li>
301dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/tab') ?></span>
302dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-tabs')) ?>">
303dd6b2bfcSGreg Roach                            <?= I18N::translate('Tabs') ?>
304dd6b2bfcSGreg Roach                        </a>
305dd6b2bfcSGreg Roach                    </li>
306dd6b2bfcSGreg Roach                    <li>
307dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/block') ?></span>
308dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-blocks')) ?>">
309dd6b2bfcSGreg Roach                            <?= I18N::translate('Blocks') ?>
310dd6b2bfcSGreg Roach                        </a>
311dd6b2bfcSGreg Roach                    </li>
312dd6b2bfcSGreg Roach                    <li>
313dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/sidebar') ?></span>
314dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-sidebars')) ?>">
315dd6b2bfcSGreg Roach                            <?= I18N::translate('Sidebars') ?>
316dd6b2bfcSGreg Roach                        </a>
317dd6b2bfcSGreg Roach                    </li>
318dd6b2bfcSGreg Roach                    <li>
319dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/chart') ?></span>
320dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-charts')) ?>">
321dd6b2bfcSGreg Roach                            <?= I18N::translate('Charts') ?>
322dd6b2bfcSGreg Roach                        </a>
323dd6b2bfcSGreg Roach                    </li>
324dd6b2bfcSGreg Roach                    <li>
325dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/report') ?></span>
326dd6b2bfcSGreg Roach                        <a href="<?= e(route('admin-reports')) ?>">
327dd6b2bfcSGreg Roach                            <?= I18N::translate('Reports') ?>
328dd6b2bfcSGreg Roach                        </a>
329dd6b2bfcSGreg Roach                    </li>
330dd6b2bfcSGreg Roach                </ul>
331dd6b2bfcSGreg Roach            </div>
332dd6b2bfcSGreg Roach            <div class="col-sm-6">
333dd6b2bfcSGreg Roach                <ul class="fa-ul">
334dd6b2bfcSGreg Roach                    <?php foreach ($config_modules as $module) : ?>
335dd6b2bfcSGreg Roach                        <li>
336dd6b2bfcSGreg Roach                            <span class="fa-li"><?= view('icons/preferences') ?></span>
337dd6b2bfcSGreg Roach                            <a href="<?= e($module->getConfigLink()) ?>">
33849a243cbSGreg Roach                                <?= $module->title() ?>
339dd6b2bfcSGreg Roach                            </a>
340dd6b2bfcSGreg Roach                        </li>
341dd6b2bfcSGreg Roach                    <?php endforeach ?>
342dd6b2bfcSGreg Roach                </ul>
343dd6b2bfcSGreg Roach            </div>
344dd6b2bfcSGreg Roach        </div>
345dd6b2bfcSGreg Roach
346dd6b2bfcSGreg Roach        <ul class="fa-ul">
347dd6b2bfcSGreg Roach            <li>
348dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
349dd6b2bfcSGreg Roach                <a href="<?= e(route('admin-modules')) ?>">
350dd6b2bfcSGreg Roach                    <?= I18N::translate('Module administration') ?>
351dd6b2bfcSGreg Roach                </a>
352dd6b2bfcSGreg Roach            </li>
353dd6b2bfcSGreg Roach        </ul>
354dd6b2bfcSGreg Roach    </div>
355dd6b2bfcSGreg Roach</div>
356dd6b2bfcSGreg Roach
357dd6b2bfcSGreg Roach<!-- MEDIA -->
358dd6b2bfcSGreg Roach<div class="card mb-4">
359dd6b2bfcSGreg Roach    <div class="card-header">
360dd6b2bfcSGreg Roach        <h2 class="mb-0">
361dd6b2bfcSGreg Roach            <?= I18N::translate('Media') ?>
362dd6b2bfcSGreg Roach        </h2>
363dd6b2bfcSGreg Roach    </div>
364dd6b2bfcSGreg Roach    <div class="card-body">
365dd6b2bfcSGreg Roach        <ul class="fa-ul">
366dd6b2bfcSGreg Roach            <li>
367dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
368dd6b2bfcSGreg Roach                <a href="<?= e(route('admin-media')) ?>">
369dd6b2bfcSGreg Roach                    <?= I18N::translate('Manage media') ?>
370dd6b2bfcSGreg Roach                </a>
371dd6b2bfcSGreg Roach            </li>
372dd6b2bfcSGreg Roach            <li>
373dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
374dd6b2bfcSGreg Roach                <a href="<?= e(route('admin-media-upload')) ?>">
375dd6b2bfcSGreg Roach                    <?= I18N::translate('Upload media files') ?>
376dd6b2bfcSGreg Roach                </a>
377dd6b2bfcSGreg Roach            </li>
378dd6b2bfcSGreg Roach            <li>
379dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
380dd6b2bfcSGreg Roach                <a href="<?= e(route('admin-fix-level-0-media')) ?>">
381dd6b2bfcSGreg Roach                    <?= I18N::translate('Link media objects to facts and events') ?>
382dd6b2bfcSGreg Roach                </a>
383dd6b2bfcSGreg Roach            </li>
384dd6b2bfcSGreg Roach            <li>
385dd6b2bfcSGreg Roach                <span class="fa-li"><?= view('icons/preferences') ?></span>
386dd6b2bfcSGreg Roach                <a href="<?= e(route('admin-webtrees1-thumbs')) ?>">
387dd6b2bfcSGreg Roach                    <?= I18N::translate('Import custom thumbnails from webtrees version 1') ?>
388dd6b2bfcSGreg Roach                </a>
389dd6b2bfcSGreg Roach            </li>
390dd6b2bfcSGreg Roach        </ul>
391dd6b2bfcSGreg Roach    </div>
392dd6b2bfcSGreg Roach</div>
393dd6b2bfcSGreg Roach
394dd6b2bfcSGreg Roach<!-- MAPS -->
395dd6b2bfcSGreg Roach<div class="card mb-4">
396dd6b2bfcSGreg Roach    <div class="card-header">
397dd6b2bfcSGreg Roach        <h2 class="mb-0">
398dd6b2bfcSGreg Roach            <?= I18N::translate('Map') ?>
399dd6b2bfcSGreg Roach        </h2>
400dd6b2bfcSGreg Roach    </div>
401dd6b2bfcSGreg Roach    <div class="card-body">
402dd6b2bfcSGreg Roach        <div class="row">
403dd6b2bfcSGreg Roach            <div class="col-sm-6">
404dd6b2bfcSGreg Roach                <ul class="fa-ul">
405dd6b2bfcSGreg Roach                    <li>
406dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/location') ?></span>
407dd6b2bfcSGreg Roach                        <a href="<?= e(route('map-data')) ?>">
408dd6b2bfcSGreg Roach                            <?= I18N::translate('Geographic data') ?>
409dd6b2bfcSGreg Roach                        </a>
410dd6b2bfcSGreg Roach                    </li>
411dd6b2bfcSGreg Roach                </ul>
412dd6b2bfcSGreg Roach            </div>
413dd6b2bfcSGreg Roach            <div class="col-sm-6">
414dd6b2bfcSGreg Roach                <ul class="fa-ul">
415dd6b2bfcSGreg Roach                    <li>
416dd6b2bfcSGreg Roach                        <span class="fa-li"><?= view('icons/map') ?></span>
417dd6b2bfcSGreg Roach                        <a href="<?= e(route('map-provider')) ?>">
418dd6b2bfcSGreg Roach                            <?= I18N::translate('Map provider') ?>
419dd6b2bfcSGreg Roach                        </a>
420dd6b2bfcSGreg Roach                    </li>
421dd6b2bfcSGreg Roach                </ul>
422dd6b2bfcSGreg Roach            </div>
423dd6b2bfcSGreg Roach        </div>
424dd6b2bfcSGreg Roach    </div>
425dd6b2bfcSGreg Roach</div>
426dd6b2bfcSGreg Roach
427dd6b2bfcSGreg Roach<!-- OLD FILES -->
428dd6b2bfcSGreg Roach<?php if (!empty($files_to_delete)) : ?>
429dd6b2bfcSGreg Roach    <div class="card mb-4 card-outline-danger">
430dd6b2bfcSGreg Roach        <div class="card-header">
431dd6b2bfcSGreg Roach            <h2 class="mb-0">
432dd6b2bfcSGreg Roach                <?= I18N::translate('Old files found') ?>
433dd6b2bfcSGreg Roach            </h2>
434dd6b2bfcSGreg Roach        </div>
435dd6b2bfcSGreg Roach        <div class="card-body">
436dd6b2bfcSGreg Roach            <p>
437dd6b2bfcSGreg Roach                <?= I18N::translate('Files have been found from a previous version of webtrees. Old files can sometimes be a security risk. You should delete them.') ?>
438dd6b2bfcSGreg Roach            </p>
439dd6b2bfcSGreg Roach            <ul class="list-unstyled">
440dd6b2bfcSGreg Roach                <?php foreach ($files_to_delete as $file_to_delete) : ?>
441dd6b2bfcSGreg Roach                    <li dir="ltr"><code><?= e($file_to_delete) ?></code></li>
442dd6b2bfcSGreg Roach                <?php endforeach ?>
443dd6b2bfcSGreg Roach            </ul>
444dd6b2bfcSGreg Roach        </div>
445dd6b2bfcSGreg Roach    </div>
446dd6b2bfcSGreg Roach<?php endif ?>
447