summaryrefslogtreecommitdiff
path: root/resources/views/admin/data-fix-page.phtml
diff options
context:
space:
mode:
Diffstat (limited to 'resources/views/admin/data-fix-page.phtml')
-rw-r--r--resources/views/admin/data-fix-page.phtml177
1 files changed, 82 insertions, 95 deletions
diff --git a/resources/views/admin/data-fix-page.phtml b/resources/views/admin/data-fix-page.phtml
index 7384ff0842..ffc15719af 100644
--- a/resources/views/admin/data-fix-page.phtml
+++ b/resources/views/admin/data-fix-page.phtml
@@ -93,121 +93,108 @@ use Fisharebest\Webtrees\View;
<?php View::push('javascript') ?>
<script>
- (function () {
- let form = document.getElementById("data-fix-options");
- let container = document.getElementById("data-fix-table-container");
- let table = document.getElementById("data-fix-table");
- let progress = document.getElementById("data-fix-progress");
- let progressbar = progress.querySelector('.progress-bar');
- let queue = [];
+ (function () {
+ let form = document.getElementById('data-fix-options');
+ let container = document.getElementById('data-fix-table-container');
+ let table = document.getElementById('data-fix-table');
+ let progress = document.getElementById('data-fix-progress');
+ let progressbar = progress.querySelector('.progress-bar');
+ let queue = [];
- function getParams() {
- let formData = new FormData(form);
- let params = {};
- formData.forEach(function (value, key) {
- params[key] = value;
- });
+ function getParams () {
+ let formData = new FormData(form);
+ let params = {};
+ formData.forEach(function (value, key) {
+ params[key] = value;
+ });
- return params;
- }
+ return params;
+ }
- function addParamsToUrl(u) {
- let url = new URL(u);
- let formData = new FormData(form);
- formData.forEach(function (value, key) {
- url.searchParams.append(key, value);
- });
+ function addParamsToUrl (u) {
+ let url = new URL(u);
+ let formData = new FormData(form);
+ formData.forEach(function (value, key) {
+ url.searchParams.append(key, value);
+ });
- return url.toString();
+ return url.toString();
- }
+ }
- form.addEventListener('submit', function (event) {
- event.preventDefault();
- });
+ form.addEventListener('submit', function (event) {
+ event.preventDefault();
+ });
- container.addEventListener('click', function (event) {
- if ('updateUrl' in event.target.dataset) {
- event.preventDefault();
+ container.addEventListener('click', function (event) {
+ if ('updateUrl' in event.target.dataset) {
+ event.preventDefault();
- fetch(event.target.dataset.updateUrl, {
- body: getParams(),
- headers: new Headers({
- 'X-CSRF-TOKEN': $('meta[name=csrf]').attr('content'),
- 'X-Requested-with': 'XMLHttpRequest',
- }),
- method: 'POST',
- }).then(function (response) {
- $(table).DataTable().ajax.reload(null, false);
- }).catch(function (error) {
- alert(error);
- });
- }
+ webtrees.httpPost(event.target.dataset.updateUrl)
+ .then(function (response) {
+ $(table).DataTable().ajax.reload(null, false);
+ })
+ .catch(function (error) {
+ alert(error);
});
+ }
+ });
- document.getElementById('btn-search').addEventListener('click', function (event) {
- event.preventDefault();
+ document.getElementById('btn-search').addEventListener('click', function (event) {
+ event.preventDefault();
- // If we were in the middle of doing "update all", stop processing.
- queue = [];
+ // If we were in the middle of doing "update all", stop processing.
+ queue = [];
- progress.classList.add('d-none');
+ progress.classList.add('d-none');
- if ($.fn.dataTable.isDataTable(table)) {
- $(table).DataTable().ajax.reload();
- } else {
- $(table).DataTable({
- 'ajax': {
- 'url': <?= json_encode(route(DataFixData::class, ['tree' => $tree->name(), 'data_fix' => $data_fix->name()]), JSON_THROW_ON_ERROR) ?>,
- 'data': function (data) {
- $.extend(data, getParams());
- }
- }
- });
+ if ($.fn.dataTable.isDataTable(table)) {
+ $(table).DataTable().ajax.reload();
+ } else {
+ $(table).DataTable({
+ 'ajax': {
+ 'url': <?= json_encode(route(DataFixData::class, ['tree' => $tree->name(), 'data_fix' => $data_fix->name()]), JSON_THROW_ON_ERROR) ?>,
+ 'data': function (data) {
+ $.extend(data, getParams());
}
-
- container.classList.remove('d-none');
+ }
});
+ }
+
+ container.classList.remove('d-none');
+ });
- document.getElementById('btn-update-all').addEventListener('click', function (event) {
- event.preventDefault();
+ document.getElementById('btn-update-all').addEventListener('click', function (event) {
+ event.preventDefault();
- progressbar.innerHTML = '';
- progressbar.style.width = '0%';
+ progressbar.innerHTML = '';
+ progressbar.style.width = '0%';
- container.classList.add('d-none');
- progress.classList.remove('d-none');
+ container.classList.add('d-none');
+ progress.classList.remove('d-none');
- let url = addParamsToUrl(<?= json_encode(route(DataFixUpdateAll::class, ['tree' => $tree->name(), 'data_fix' => $data_fix->name()]), JSON_THROW_ON_ERROR) ?>);
+ let url = addParamsToUrl(<?= json_encode(route(DataFixUpdateAll::class, ['tree' => $tree->name(), 'data_fix' => $data_fix->name()]), JSON_THROW_ON_ERROR) ?>);
- fetch(url, {
- headers: new Headers({
- 'X-CSRF-TOKEN': $('meta[name=csrf]').attr('content'),
- 'X-Requested-with': 'XMLHttpRequest',
- }),
- method: 'POST',
- }).then(function (response) {
- return response.json();
- }).then(async function (data) {
- queue = data;
- while (queue.length > 0) {
- let datum = queue.shift();
- await fetch(datum.url, {
- headers: new Headers({
- 'X-CSRF-TOKEN': $('meta[name=csrf]').attr('content'),
- 'X-Requested-with': 'XMLHttpRequest',
- }),
- method: 'POST',
- }).then(function () {
- let progressbar = progress.querySelector('.progress-bar');
- progressbar.innerHTML = datum.progress;
- progressbar.style.width = datum.percent;
- });
- }
- }).catch(function (error) {
- progress.innerHTML = error;
- });
+ webtrees.httpPost(url)
+ .then(function (response) {
+ return response.json();
+ })
+ .then(async function (data) {
+ queue = data;
+ while (queue.length > 0) {
+ let datum = queue.shift();
+ await webtrees.httpPost(datum.url)
+ .then(function () {
+ let progressbar = progress.querySelector('.progress-bar');
+ progressbar.innerHTML = datum.progress;
+ progressbar.style.width = datum.percent;
+ });
+ }
+ })
+ .catch(function (error) {
+ progress.innerHTML = error;
});
- })();
+ });
+ })();
</script>
<?php View::endpush() ?>