From 64c752bea3663d9a9603ffa09c512b0da125d925 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Mon, 1 Aug 2022 14:45:22 +0200 Subject: [PATCH] disable create-invoice links after click to prevent double invoices (#3452) --- templates/invoice/index.html.twig | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/templates/invoice/index.html.twig b/templates/invoice/index.html.twig index 0990a90c..0b9d6cf8 100644 --- a/templates/invoice/index.html.twig +++ b/templates/invoice/index.html.twig @@ -244,9 +244,12 @@ const overwrites = {'customers[]': link.dataset['customer'], 'template': link.dataset['template']}; const uri = formPlugin.convertFormDataToQueryString(document.getElementById('{{ formId }}'), overwrites); - link.href = link.dataset['href'] + '?' + uri; + link.classList.toggle('disabled'); + link.href = 'javascript: void(0)'; - return true; + document.location = link.dataset['href'] + '?' + uri; + + return false; } function saveAllInvoices(link) @@ -254,9 +257,12 @@ const formPlugin = kimai.getPlugin('form'); const uri = formPlugin.convertFormDataToQueryString(document.getElementById('{{ formId }}')); - link.href = '{{ path('invoice') }}?token={{ csrf_token('invoice.create') }}&createInvoice=true&' + uri; + link.classList.toggle('disabled'); + link.href = 'javascript: void(0)'; - return true; + document.location = '{{ path('invoice') }}?token={{ csrf_token('invoice.create') }}&createInvoice=true&' + uri; + + return false; } document.addEventListener('kimai.initialized', function() {