From 187910f69b472b418462d22218513fcff8bfbe04 Mon Sep 17 00:00:00 2001 From: Sergei Poljanski Date: Thu, 2 Jul 2026 17:31:20 +0400 Subject: [PATCH] admin form: disable submit button to prevent duplicate invoices --- public/admin-invoice-form.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/public/admin-invoice-form.js b/public/admin-invoice-form.js index 4219335..5502319 100644 --- a/public/admin-invoice-form.js +++ b/public/admin-invoice-form.js @@ -2,6 +2,16 @@ const tbody = document.querySelector('#items-table tbody'); const addBtn = document.getElementById('add-row'); + // PDF render + two S3 uploads make create slow enough to double-click, + // which would mint two invoices with consecutive numbers. + const form = document.querySelector('form.invoice-form'); + if (form) { + form.addEventListener('submit', function () { + const btn = form.querySelector('button[type="submit"]'); + if (btn) { btn.disabled = true; btn.textContent = 'Creating…'; } + }); + } + function reindex() { Array.from(tbody.querySelectorAll('tr.item-row')).forEach((row, i) => { row.querySelectorAll('input').forEach((input) => {