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