diff --git a/public/js/clients/payments/stripe-bacs.js b/public/js/clients/payments/stripe-bacs.js index 9b553e6e7721..095e99ff9579 100644 --- a/public/js/clients/payments/stripe-bacs.js +++ b/public/js/clients/payments/stripe-bacs.js @@ -33,6 +33,7 @@ class ProcessBACS { return this; }; + payment_data; handle = () => { @@ -44,15 +45,6 @@ class ProcessBACS { location.href=document.querySelector('meta[name=stripe-redirect-url]').content; });} else{ - - Array.from( - document.getElementsByClassName('toggle-payment-with-token') - ).forEach((element) => - element.addEventListener('click', (element) => { - document.querySelector('input[name=token]').value = - element.target.dataset.token; - }) - ); document.getElementById('pay-now').addEventListener('click', (e) => { let payNowButton = document.getElementById('pay-now'); this.payNowButton = payNowButton; @@ -61,8 +53,24 @@ class ProcessBACS { this.payNowButton.querySelector('span').classList.add('hidden'); document.getElementById('server-response').submit(); }); - } - }; + + this.payment_data = Array.from(document.getElementsByClassName('toggle-payment-with-token')); + if (this.payment_data.length() > 0){ + this.payment_data.forEach((element) => + element.addEventListener('click', (element) => { + document.querySelector('input[name=token]').value = + element.target.dataset.token; + }) + );} + else{ + this.errors.textContent = "Please add a payment method first, before trying to pay the invoice."; + this.payNowButton.disabled = false; + this.payNowButton.querySelector('span').classList.remove('hidden'); + this.payNowButton.querySelector('svg').classList.add('hidden'); + }} + + + } } const publishableKey = document.querySelector( diff --git a/resources/js/clients/payments/stripe-bacs.js b/resources/js/clients/payments/stripe-bacs.js index 9b553e6e7721..ce08e0d03b87 100644 --- a/resources/js/clients/payments/stripe-bacs.js +++ b/resources/js/clients/payments/stripe-bacs.js @@ -33,6 +33,7 @@ class ProcessBACS { return this; }; + payment_data; handle = () => { @@ -44,15 +45,6 @@ class ProcessBACS { location.href=document.querySelector('meta[name=stripe-redirect-url]').content; });} else{ - - Array.from( - document.getElementsByClassName('toggle-payment-with-token') - ).forEach((element) => - element.addEventListener('click', (element) => { - document.querySelector('input[name=token]').value = - element.target.dataset.token; - }) - ); document.getElementById('pay-now').addEventListener('click', (e) => { let payNowButton = document.getElementById('pay-now'); this.payNowButton = payNowButton; @@ -61,8 +53,24 @@ class ProcessBACS { this.payNowButton.querySelector('span').classList.add('hidden'); document.getElementById('server-response').submit(); }); + + this.payment_data = Array.from(document.getElementsByClassName('toggle-payment-with-token')); + if (this.payment_data.length() > 0){ + this.payment_data.forEach((element) => + element.addEventListener('click', (element) => { + document.querySelector('input[name=token]').value = + element.target.dataset.token; + }) + );} + else{ + this.errors.textContent = "Please add a payment method first, before trying to pay the invoice."; + this.payNowButton.disabled = false; + this.payNowButton.querySelector('span').classList.remove('hidden'); + this.payNowButton.querySelector('svg').classList.add('hidden'); + }} + + } - }; } const publishableKey = document.querySelector( diff --git a/resources/views/portal/ninja2020/gateways/stripe/bacs/pay.blade.php b/resources/views/portal/ninja2020/gateways/stripe/bacs/pay.blade.php index 46b28ab3e31b..1a7f09531136 100644 --- a/resources/views/portal/ninja2020/gateways/stripe/bacs/pay.blade.php +++ b/resources/views/portal/ninja2020/gateways/stripe/bacs/pay.blade.php @@ -37,8 +37,6 @@ **** {{ $token->meta?->last4 }} @endforeach - @else - @endisset @endcomponent