Update admin pricing recalc flow

This commit is contained in:
Mikhail Chusavitin
2026-02-18 10:32:13 +03:00
parent 50d1e281a5
commit d55f484616

View File

@@ -1185,16 +1185,41 @@ function processMetaPrices(metaPrices, originalLotName) {
async function recalculateAll() {
try {
const resp = await fetch('/api/admin/pricing/recalculate-all', {method: 'POST'});
const resp = await fetch('/api/admin/pricing/recalculate-all?force=1', {method: 'POST'});
const data = await resp.json();
if (data.task_id) {
showToast('Пересчёт цен запущен в фоне', 'info');
await waitForTaskCompletion(data.task_id);
if (currentTab === 'component-settings') {
loadData();
}
}
} catch (e) {
showToast('Ошибка запуска пересчёта', 'error');
}
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function waitForTaskCompletion(taskId) {
if (!taskId) return;
for (;;) {
await sleep(2500);
try {
const resp = await fetch(`/api/tasks/${taskId}`);
if (!resp.ok) return;
const task = await resp.json();
if (task.status === 'completed' || task.status === 'error') {
return;
}
} catch (_) {
return;
}
}
}
// Close modal on click outside
document.getElementById('price-modal').addEventListener('click', function(e) {
if (e.target === this) {