mirror of
https://github.com/vr-payment/shopware-6.git
synced 2026-06-05 11:36:37 +00:00
Release 7.1.0
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
{
|
||||
"base": "/bundles/vrpaymentpayment/administration/",
|
||||
"entryPoints": {
|
||||
"v-r-payment-payment": {
|
||||
"css": [
|
||||
"/bundles/vrpaymentpayment/administration/assets/v-r-payment-payment-D4AH6HY2.css"
|
||||
],
|
||||
"dynamic": [],
|
||||
"js": [
|
||||
"/bundles/vrpaymentpayment/administration/assets/v-r-payment-payment-C6eiDWfX.js"
|
||||
],
|
||||
"legacy": false,
|
||||
"preload": []
|
||||
}
|
||||
},
|
||||
"legacy": false,
|
||||
"metadatas": {},
|
||||
"version": [
|
||||
"7.1.0",
|
||||
7,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"viteServer": null
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"main.js": {
|
||||
"file": "assets/v-r-payment-payment-C6eiDWfX.js",
|
||||
"name": "v-r-payment-payment",
|
||||
"src": "main.js",
|
||||
"isEntry": true,
|
||||
"css": [
|
||||
"assets/v-r-payment-payment-D4AH6HY2.css"
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
.sw-order-detail .sw-tabs{margin-top:40px}.sw-order-detail .sw-order-detail-base .mt-card-view__content{overflow-x:visible;overflow-y:visible}.vrpayment-order-detail__data{display:grid}.vrpayment-order-detail__heading{padding-top:15px}
|
||||
@@ -1,201 +0,0 @@
|
||||
/* global window */
|
||||
// noinspection ThisExpressionReferencesGlobalObjectJS
|
||||
(function (window) {
|
||||
/**
|
||||
* VRPaymentCheckout
|
||||
* @type {
|
||||
* {
|
||||
* payment_method_handler_name: string,
|
||||
* payment_method_iframe_class: string,
|
||||
* init: init,
|
||||
* validationCallBack: validationCallBack,
|
||||
* payment_method_handler_status: string,
|
||||
* submitPayment: (function(*): boolean),
|
||||
* payment_method_iframe_prefix: string,
|
||||
* payment_form_id: string,
|
||||
* payment_method_handler_prefix: string,
|
||||
* payment_method_tabs: string,
|
||||
* getIframe: (function(): boolean
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
const VRPaymentCheckout = {
|
||||
/**
|
||||
* Variables
|
||||
*/
|
||||
payment_panel_id: 'vrpayment-payment-panel',
|
||||
payment_method_iframe_id: 'vrpayment-payment-iframe',
|
||||
payment_method_handler_name: 'vrpayment_payment_handler',
|
||||
payment_method_handler_status: 'input[name="vrpayment_payment_handler_validation_status"]',
|
||||
payment_form_id: 'confirmOrderForm',
|
||||
button_cancel_id: 'vrpaymentOrderCancel',
|
||||
// button_home_override: 'vrpaymentHomeLink',
|
||||
loader_id: 'vrpaymentLoader',
|
||||
checkout_url: null,
|
||||
checkout_url_id: 'checkoutUrl',
|
||||
cart_recreate_url: null,
|
||||
cart_recreate_url_id: 'cartRecreateUrl',
|
||||
handler: null,
|
||||
|
||||
/**
|
||||
* Initialize plugin
|
||||
*/
|
||||
init: function () {
|
||||
VRPaymentCheckout.activateLoader(true);
|
||||
this.checkout_url = document.getElementById(this.checkout_url_id).value;
|
||||
this.cart_recreate_url = document.getElementById(this.cart_recreate_url_id).value;
|
||||
|
||||
document.getElementById(this.button_cancel_id).addEventListener('click', this.recreateCart, false);
|
||||
// document.getElementById(this.button_home_override).addEventListener('click', this.recreateCart, false);
|
||||
document.getElementById(this.payment_form_id).addEventListener('submit', this.submitPayment, false);
|
||||
|
||||
VRPaymentCheckout.getIframe();
|
||||
},
|
||||
|
||||
activateLoader: function (activate) {
|
||||
const buttons = document.querySelectorAll('button');
|
||||
if (activate) {
|
||||
for (let i = 0; i < buttons.length; i++) {
|
||||
buttons[i].disabled = true;
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < buttons.length; i++) {
|
||||
buttons[i].disabled = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
hideLoader: function () {
|
||||
const loader = document.getElementById(VRPaymentCheckout.loader_id);
|
||||
if (loader !== null && loader.parentNode !== null) {
|
||||
loader.parentNode.removeChild(loader);
|
||||
}
|
||||
VRPaymentCheckout.activateLoader(false);
|
||||
},
|
||||
|
||||
recreateCart: function (e) {
|
||||
window.location.href = VRPaymentCheckout.cart_recreate_url;
|
||||
e.preventDefault();
|
||||
},
|
||||
|
||||
/**
|
||||
* Submit form
|
||||
*
|
||||
* @param event
|
||||
* @return {boolean}
|
||||
*/
|
||||
submitPayment: function (event) {
|
||||
VRPaymentCheckout.activateLoader(true);
|
||||
VRPaymentCheckout.handler.validate();
|
||||
event.preventDefault();
|
||||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get iframe
|
||||
*/
|
||||
getIframe: function () {
|
||||
const paymentPanel = document.getElementById(VRPaymentCheckout.payment_panel_id);
|
||||
const paymentMethodConfigurationId = paymentPanel.dataset.id;
|
||||
const iframeContainer = document.getElementById(VRPaymentCheckout.payment_method_iframe_id);
|
||||
|
||||
if (!VRPaymentCheckout.handler) { // iframe has not been loaded yet
|
||||
// noinspection JSUnresolvedFunction
|
||||
VRPaymentCheckout.handler = window.IframeCheckoutHandler(paymentMethodConfigurationId);
|
||||
// noinspection JSUnresolvedFunction
|
||||
VRPaymentCheckout.handler.setValidationCallback(function(validationResult){
|
||||
VRPaymentCheckout.hideErrors();
|
||||
VRPaymentCheckout.validationCallBack(validationResult);
|
||||
});
|
||||
VRPaymentCheckout.handler.setInitializeCallback(VRPaymentCheckout.hideLoader());
|
||||
VRPaymentCheckout.handler.setHeightChangeCallback(function(height){
|
||||
if(height < 1){ // iframe has no fields
|
||||
VRPaymentCheckout.handler.submit();
|
||||
}
|
||||
});
|
||||
VRPaymentCheckout.handler.create(iframeContainer);
|
||||
setTimeout(VRPaymentCheckout.hideLoader(), 10000);
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* validation callback
|
||||
* @param validationResult
|
||||
*/
|
||||
validationCallBack: function (validationResult) {
|
||||
if (validationResult.success) {
|
||||
document.querySelector(this.payment_method_handler_status).value = true;
|
||||
VRPaymentCheckout.handler.submit();
|
||||
} else {
|
||||
document.body.scrollTop = 0;
|
||||
document.documentElement.scrollTop = 0;
|
||||
|
||||
if (validationResult.errors) {
|
||||
VRPaymentCheckout.showErrors(validationResult.errors);
|
||||
}
|
||||
document.querySelector(this.payment_method_handler_status).value = false;
|
||||
VRPaymentCheckout.activateLoader(false);
|
||||
}
|
||||
},
|
||||
|
||||
showErrors: function(errors) {
|
||||
let alert = document.createElement('div');
|
||||
alert.setAttribute('class', 'alert alert-danger');
|
||||
alert.setAttribute('role', 'alert');
|
||||
alert.setAttribute('id', 'vrpayment-errors');
|
||||
document.getElementsByClassName('flashbags')[0].appendChild(alert);
|
||||
|
||||
let alertContentContainer = document.createElement('div');
|
||||
alertContentContainer.setAttribute('class', 'alert-content-container');
|
||||
alert.appendChild(alertContentContainer);
|
||||
|
||||
let alertContent = document.createElement('div');
|
||||
alertContent.setAttribute('class', 'alert-content');
|
||||
alertContentContainer.appendChild(alertContent);
|
||||
|
||||
if (errors.length > 1) {
|
||||
let alertList = document.createElement('ul');
|
||||
alertList.setAttribute('class', 'alert-list');
|
||||
alertContent.appendChild(alertList);
|
||||
for (let index = 0; index < errors.length; index++) {
|
||||
let alertListItem = document.createElement('li');
|
||||
alertListItem.innerHTML = errors[index];
|
||||
alertList.appendChild(alertListItem);
|
||||
}
|
||||
} else {
|
||||
alertContent.innerHTML = errors[0];
|
||||
}
|
||||
},
|
||||
|
||||
hideErrors: function() {
|
||||
let errorElement = document.getElementById('vrpayment-errors');
|
||||
if (errorElement) {
|
||||
errorElement.parentNode.removeChild(errorElement);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.VRPaymentCheckout = VRPaymentCheckout;
|
||||
|
||||
}(typeof window !== "undefined" ? window : this));
|
||||
|
||||
/**
|
||||
* Vanilla JS over JQuery
|
||||
*/
|
||||
window.addEventListener('load', function (e) {
|
||||
VRPaymentCheckout.init();
|
||||
window.history.pushState({}, document.title, VRPaymentCheckout.cart_recreate_url);
|
||||
window.history.pushState({}, document.title, VRPaymentCheckout.checkout_url);
|
||||
}, false);
|
||||
|
||||
/**
|
||||
* This only works if the user has interacted with the page
|
||||
* @link https://stackoverflow.com/questions/57339098/chrome-popstate-not-firing-on-back-button-if-no-user-interaction
|
||||
*/
|
||||
window.addEventListener('popstate', function (e) {
|
||||
if (window.history.state == null) { // This means it's page load
|
||||
return;
|
||||
}
|
||||
window.location.href = VRPaymentCheckout.cart_recreate_url;
|
||||
}, false);
|
||||
Reference in New Issue
Block a user