xref: /webtrees/resources/views/admin/fix-level-0-media.phtml (revision 5bfc689774bb9a6401271c4ed15a6d50652c991b)
1<?php
2
3use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel;
4use Fisharebest\Webtrees\Http\RequestHandlers\FixLevel0MediaAction;
5use Fisharebest\Webtrees\Http\RequestHandlers\FixLevel0MediaData;
6use Fisharebest\Webtrees\I18N;
7
8/**
9 * @var string $title
10 */
11
12?>
13<?php use Fisharebest\Webtrees\View; ?>
14
15<?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), $title]]) ?>
16
17<h1><?= $title ?></h1>
18
19<p>
20    <?= I18N::translate('If a media object is linked to an individual, when it should be linked to a fact or event, then you can move it to the correct location.') ?>
21</p>
22
23<table
24    class="table table-bordered table-sm table-hover wt-fix-table datatables d-none"
25    <?= view('lists/datatables-attributes') ?>
26    data-ajax="<?= e(json_encode(['url' => route(FixLevel0MediaData::class)], JSON_THROW_ON_ERROR)) ?>"
27    data-server-side="true"
28>
29    <caption class="visually-hidden">
30        <?= I18N::translate('Media objects') ?>
31    </caption>
32    <thead class="thead-dark">
33        <tr>
34            <th data-sortable="false"><?= I18N::translate('Family tree') ?></th>
35            <th data-sortable="false"><?= I18N::translate('Media object') ?></th>
36            <th data-sortable="false"><?= I18N::translate('Title') ?></th>
37            <th data-sortable="false"><?= I18N::translate('Individual') ?></th>
38            <th data-sortable="false"><?= I18N::translate('Facts and events') ?></th>
39        </tr>
40    </thead>
41</table>
42
43<?php View::push('javascript') ?>
44<script>
45  'use strict';
46
47  // If we click on a button, post the request and reload the table
48  document.querySelector(".wt-fix-table").onclick = function (event) {
49    let element = event.target;
50    if (element.classList.contains("wt-fix-button")) {
51      event.stopPropagation();
52      if (confirm(element.dataset.confirm)) {
53        $.ajax({
54          data: {
55            "fact_id":   element.dataset.factId,
56            "indi_xref": element.dataset.individualXref,
57            "obje_xref": element.dataset.mediaXref,
58            "tree_id":   element.dataset.treeId
59          },
60          method: "POST",
61          url: <?= json_encode(route(FixLevel0MediaAction::class), JSON_THROW_ON_ERROR) ?>
62        }).done(function () {
63          $(".wt-fix-table").DataTable().ajax.reload(null, false);
64        });
65      }
66    }
67  };
68</script>
69<?php View::endpush() ?>
70