diff options
Diffstat (limited to 'resources/views/admin/data-fix-page.phtml')
| -rw-r--r-- | resources/views/admin/data-fix-page.phtml | 177 |
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() ?> |
