diff --git a/web/templates/admin_pricing.html b/web/templates/admin_pricing.html index 97f8190..57b91a3 100644 --- a/web/templates/admin_pricing.html +++ b/web/templates/admin_pricing.html @@ -220,6 +220,7 @@ let sortField = 'popularity_score'; let sortDir = 'desc'; let pricelistsPage = 1; let pricelistsCanWrite = false; +let isCreatingPricelist = false; async function loadTab(tab) { currentTab = tab; @@ -1055,6 +1056,13 @@ async function deletePricelist(id) { document.getElementById('pricelists-create-form').addEventListener('submit', async function(e) { e.preventDefault(); + if (isCreatingPricelist) return; // protection from double-submit + isCreatingPricelist = true; + + const submitBtn = this.querySelector('button[type="submit"]'); + submitBtn.disabled = true; + submitBtn.textContent = 'Создание...'; + try { const pl = await createPricelist(); closePricelistsCreateModal(); @@ -1062,6 +1070,10 @@ document.getElementById('pricelists-create-form').addEventListener('submit', asy loadPricelists(1); } catch (e) { showToast('Ошибка: ' + e.message, 'error'); + } finally { + isCreatingPricelist = false; + submitBtn.disabled = false; + submitBtn.textContent = 'Создать'; } });