Files
2025-06-24 14:14:35 +02:00

164 lines
4.4 KiB
JavaScript

/*
* 2007-2020 PayPal
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author 2007-2020 PayPal
* @author 202 ecommerce <tech@202-ecommerce.com>
* @copyright PayPal
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
// Import functions for scrolling effect to necessary block on click
import {hoverConfig, hoverTabConfig} from './functions.js';
import {Onboarding} from "./Onboarding";
export const SetupAdmin = {
init() {
// Disconnect from braintree account
$('#logoutAccount').on('click', (event) => {
SetupAdmin.logoutAccount();
});
// Connect to braintree account
$('#confirmCredentials').click((event) => {
$(event.currentTarget).closest('form').submit();
});
// Check credentials (TLS version, country, enabling SSL)
$(document).on('click', '#btn-check-requirements', () => {
SetupAdmin.checkRequirements();
});
// Scroll to necessary block
$('[data-pp-link-settings]').on('click', (e) => {
e.preventDefault();
const el = $(e.target.attributes.href.value);
if (el.length) {
hoverConfig(el);
} else {
hoverTabConfig();
}
});
// Remove effect after leaving cursor from the block
$('.defaultForm').on('mouseleave', (e) => {
$(e.currentTarget).removeClass('pp-settings-link-on');
});
// Handle click on "Install Prestashop Checkout" button
$('.ps-checkout-info').on('click', (e) => {
let action = e.target.getAttribute('data-action');
SetupAdmin.psCheckoutHandleAction(action);
});
$(document).on('contextmenu', '[data-paypal-button]', (e) => {
e.preventDefault();
});
window.onboardCallback = Onboarding.handleResponse;
$('[data-update-rounding-settings]').on('click', (e) => {
SetupAdmin.updateRoundingSettings(e);
});
$('[data-show-rounding-alert]').on('click', (e) => {
let $alert = $('[data-rounding-alert]');
$alert.removeClass('hidden');
let offset = $alert.offset().top - $('.page-head').height() - 45;
$('html, body').animate({scrollTop: offset}, 500);
});
},
logoutAccount() {
$.ajax({
url: controllerUrl,
type: 'POST',
data: {
ajax: true,
action: 'logOutAccount',
},
success(response) {
if (response.status) {
document.location = response.redirectUrl;
}
},
});
},
checkRequirements() {
$.ajax({
url: controllerUrl,
type: 'POST',
data: {
ajax: true,
action: 'CheckCredentials',
},
success(response) {
$('#btn-check-requirements').closest('.status-block-container').html(response);
},
});
},
psCheckoutHandleAction(action) {
if (action != null) {
$.ajax({
url: controllerUrl,
type: 'POST',
data: {
ajax: true,
action: 'HandlePsCheckoutAction',
actionHandled: action,
},
success(response) {
if (response.redirect) {
window.open(response.url, '_blank');
}
},
});
}
},
updateRoundingSettings(el) {
$.ajax({
url: controllerUrl,
type: 'POST',
data: {
ajax: true,
action: 'UpdateRoundingSettings',
},
success(response) {
let $alert = $(el.currentTarget).closest('[data-rounding-alert]');
if ($alert.length > 0) {
$alert.removeClass('alert-warning').addClass('alert-success');
$alert.html(response);
setTimeout(() => $alert.remove(), 5000);
}
},
});
},
};
window.addEventListener('load', () => SetupAdmin.init());
// Wait until window is loaded
$(window).on('load', () => $('[data-paypal-button]').removeClass('spinner-button'));