| Current Path : /home/rtorresani/www/pub/static/frontend/Magento/indaco/it_IT/Magento_Paypal/js/ |
| Current File : //home/rtorresani/www/pub/static/frontend/Magento/indaco/it_IT/Magento_Paypal/js/paypal-checkout.js |
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'jquery',
'Magento_Ui/js/modal/confirm',
'Magento_Customer/js/customer-data',
'jquery-ui-modules/widget',
'mage/mage'
], function ($, confirm, customerData) {
'use strict';
$.widget('mage.paypalCheckout', {
options: {
originalForm:
'form:not(#product_addtocart_form_from_popup):has(input[name="product"][value=%1])',
productId: 'input[type="hidden"][name="product"]',
ppCheckoutSelector: '[data-role=pp-checkout-url]',
ppCheckoutInput: '<input type="hidden" data-role="pp-checkout-url" name="return_url" value=""/>'
},
/**
* Initialize store credit events
* @private
*/
_create: function () {
this.element.on('click', '[data-action="checkout-form-submit"]', $.proxy(function (e) {
var $target = $(e.target),
returnUrl = $target.data('checkout-url'),
productId = $target.closest('form').find(this.options.productId).val(),
originalForm = this.options.originalForm.replace('%1', productId),
self = this,
billingAgreement = customerData.get('paypal-billing-agreement');
e.preventDefault();
if (billingAgreement().askToCreate) {
confirm({
content: billingAgreement().confirmMessage,
actions: {
/**
* Confirmation handler
*
*/
confirm: function () {
returnUrl = billingAgreement().confirmUrl;
self._redirect(returnUrl, originalForm);
},
/**
* Cancel confirmation handler
*
*/
cancel: function (event) {
if (event && !$(event.target).hasClass('action-close')) {
self._redirect(returnUrl);
}
}
}
});
} else {
this._redirect(returnUrl, originalForm);
}
}, this));
},
/**
* Redirect to certain url, with optional form
* @param {String} returnUrl
* @param {HTMLElement} originalForm
*
*/
_redirect: function (returnUrl, originalForm) {
var $form,
ppCheckoutInput;
if (this.options.isCatalogProduct) {
// find the form from which the button was clicked
$form = originalForm ? $(originalForm) : $($(this.options.shortcutContainerClass).closest('form'));
ppCheckoutInput = $form.find(this.options.ppCheckoutSelector)[0];
if (!ppCheckoutInput) {
ppCheckoutInput = $(this.options.ppCheckoutInput);
ppCheckoutInput.appendTo($form);
}
$(ppCheckoutInput).val(returnUrl);
$form.trigger('submit');
} else {
$.mage.redirect(returnUrl);
}
}
});
return $.mage.paypalCheckout;
});