diff --git a/resources/views/portal/ninja2020/gateways/eway/pay.blade.php b/resources/views/portal/ninja2020/gateways/eway/pay.blade.php
index c45af17bb420..1d73902f7168 100644
--- a/resources/views/portal/ninja2020/gateways/eway/pay.blade.php
+++ b/resources/views/portal/ninja2020/gateways/eway/pay.blade.php
@@ -1,6 +1,12 @@
-@extends('portal.ninja2020.layout.payments', ['gateway_title' => ctrans('texts.credit_card'), 'card_title' => ctrans('texts.credit_card')])
+@extends('portal.ninja2020.layout.payments', ['gateway_title' => ctrans('texts.credit_card'), 'card_title' =>
+ctrans('texts.credit_card')])
@section('gateway_head')
+
+
+
+
+
@endsection
@section('gateway_content')
@@ -24,72 +30,398 @@
@include('portal.ninja2020.gateways.includes.payment_details')
@component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.pay_with')])
- @if(count($tokens) > 0)
- @foreach($tokens as $token)
+ @if (count($tokens) > 0)
+ @foreach ($tokens as $token)
@endforeach
@endisset
@endcomponent
-
-
-
+ @component('portal.ninja2020.components.general.card-element-single')
+
+ @endcomponent
+
@include('portal.ninja2020.gateways.includes.save_card')
-
-
-
- @include('portal.ninja2020.gateways.includes.pay_now')
+ @include('portal.ninja2020.gateways.includes.pay_now', ['disabled' => true])
@endsection
@section('gateway_footer')
+
- @include('portal.ninja2020.gateways.eway.includes.credit_card')
-
+
+ document.querySelector("input[name=securefieldcode]").value = event.secureFieldCode;
+ }
+ handleErrors(errors) {
+ let _errors = errors.split(' ');
+ let shouldShowGenericError = false;
+ let message = '';
+
+ _errors.forEach((error) => {
+ message = message.concat(this.errorCodes.get(error) + '
');
+ })
+
+ document.getElementById('errors').innerHTML = message;
+ document.getElementById('errors').hidden = false;
+ }
+
+ completeAuthorization(event) {
+ event.target.parentElement.disabled = true;
+
+ document.getElementById('server-response').submit();
+ }
+
+ completePaymentUsingToken(event) {
+ event.target.parentElement.disabled = true;
+
+ document.getElementById('server-response').submit();
+ }
+
+ completePaymentWithoutToken(event) {
+ event.target.parentElement.disabled = true;
+
+ let tokenBillingCheckbox = document.querySelector(
+ 'input[name="token-billing-checkbox"]:checked'
+ );
+
+ if (tokenBillingCheckbox) {
+ document.querySelector('input[name="store_card"]').value =
+ tokenBillingCheckbox.value;
+ }
+
+ document.getElementById('server-response').submit();
+ }
+
+ initialize() {
+ this.eWAY = eWAY.setupSecureField(this.groupFieldConfig, (event) => this.securePanelCallback(event))
+ }
+
+ handle() {
+ this.initialize();
+
+ document
+ .getElementById('authorize-card')
+ ?.addEventListener('click', (e) => this.completeAuthorization(e))
+
+ Array
+ .from(document.getElementsByClassName('toggle-payment-with-token'))
+ .forEach((element) => element.addEventListener('click', (element) => {
+ document.getElementById('eway-secure-panel').classList.add('hidden');
+ document.getElementById('save-card--container').style.display = 'none';
+ document.querySelector('input[name=token]').value = element.target.dataset.token;
+ document.getElementById('pay-now').disabled = false;
+ }));
+
+ document
+ .getElementById('toggle-payment-with-credit-card')
+ .addEventListener('click', (element) => {
+ document.getElementById('eway-secure-panel').classList.remove('hidden');
+ document.getElementById('save-card--container').style.display = 'grid';
+ document.querySelector('input[name=token]').value = "";
+ document.getElementById('pay-now').disabled = true;
+ });
+
+ document
+ .getElementById('pay-now')
+ ?.addEventListener('click', (e) => {
+ let tokenInput = document.querySelector('input[name=token]');
+
+ if (tokenInput.value) {
+ return this.completePaymentUsingToken(e);
+ }
+
+ return this.completePaymentWithoutToken(e);
+ });
+ }
+ }
+
+ new EwayRapid().handle()
+
@endsection