From f33a76f96d220195d83758e6491a19e7a1d18b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Sun, 15 Aug 2021 15:46:45 +0200 Subject: [PATCH] Refactor Eway authorize page --- .../gateways/eway/authorize.blade.php | 348 ++++++++++++++++-- 1 file changed, 316 insertions(+), 32 deletions(-) diff --git a/resources/views/portal/ninja2020/gateways/eway/authorize.blade.php b/resources/views/portal/ninja2020/gateways/eway/authorize.blade.php index 19fced509956..848e0adb94cc 100644 --- a/resources/views/portal/ninja2020/gateways/eway/authorize.blade.php +++ b/resources/views/portal/ninja2020/gateways/eway/authorize.blade.php @@ -2,6 +2,7 @@ ctrans('texts.credit_card')]) @section('gateway_head') + @endsection @section('gateway_content') @@ -9,49 +10,332 @@ ctrans('texts.credit_card')]) method="post" id="server-response"> @csrf - + - - @if (!Request::isSecure()) -

{{ ctrans('texts.https_required') }}

- @endif - - - - - @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.method')]) - {{ ctrans('texts.credit_card') }} - @endcomponent - -
- - @component('portal.ninja2020.gateways.includes.pay_now', ['id' => 'authorize-card']) - {{ ctrans('texts.add_payment_method') }} - @endcomponent + + @if (!Request::isSecure()) +

{{ ctrans('texts.https_required') }}

+ @endif + + + + @component('portal.ninja2020.components.general.card-element-single') +
+ @endcomponent + + @component('portal.ninja2020.gateways.includes.pay_now', ['id' => 'authorize-card', 'disabled' => true]) + {{ ctrans('texts.add_payment_method') }} + @endcomponent @endsection @section('gateway_footer') - - + -@include('portal.ninja2020.gateways.eway.includes.credit_card') + + if (document.getElementById('authorize-card')) { + document.getElementById('authorize-card').disabled = false; + } + + 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; + } + + handleAuthorization(event) { + event.target.parentElement.disabled = true; + + 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.handleAuthorization(e)) + } + } + + new EwayRapid().handle() + @endsection