Files
wyczarujprezent.pl/modules/paypal/_dev/js/adminInstallment.js
2024-10-28 22:14:22 +01:00

159 lines
5.3 KiB
JavaScript

/*
* 2007-2022 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-2022 PayPal
* @author 202 ecommerce <tech@202-ecommerce.com>
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* @copyright PayPal
*/
// Import functions for scrolling effect to necessary block on click
import {hoverConfig, hoverTabConfig} from './functions.js';
import {Tools} from './tools.js';
var InstallmentSetting = {
init() {
this.checkConfigurations();
document.querySelectorAll('form#pp_config_installment input').forEach((elem) => {
elem.addEventListener('change', this.checkConfigurations);
});
document.querySelector('[name="PAYPAL_ENABLE_INSTALLMENT"]').addEventListener('change', this.updatedEnableConf);
document.querySelector('[name="PAYPAL_INSTALLMENT_COLOR"]').addEventListener('change', this.updateBannerColor)
},
initBanner() {
if (typeof Banner != 'undefined' && InstallmentSetting.banner instanceof Banner) {
return;
}
InstallmentSetting.loadBanner()
.then(() => {
const color = InstallmentSetting.getColorBanner();
InstallmentSetting.banner = new Banner({
container: '[paypal-banner-message]',
layout: 'flex',
placement: 'home',
color: color
});
InstallmentSetting.banner.initBanner();
});
},
loadBanner() {
return new Promise((resolve, reject) => {
if (typeof Banner != 'undefined') {
resolve();
}
const url = new URL(location.href);
url.searchParams.append('ajax', 1);
url.searchParams.append('action', 'GetBanner');
fetch(url.toString())
.then((response) => {
return response.json();
})
.then((response) => {
if (response.success) {
document.querySelector('[installment-preview-container]').innerHTML = response.content;
document.querySelectorAll('[installment-preview-container] script').forEach((script) => {
eval(script.innerHTML);
});
resolve();
}
})
});
},
updatedEnableConf() {
const installmentEnabled = document.querySelector('input[name="PAYPAL_ENABLE_INSTALLMENT"]');
const displayingSettings = document.querySelector('[installment-page-displaying-setting-container]');
if (installmentEnabled.checked) {
displayingSettings.querySelectorAll('input').forEach((el)=>{
el.checked = true;
});
}
},
checkConfigurations() {
const installmentEnabled = document.querySelector('input[name="PAYPAL_ENABLE_INSTALLMENT"]');
const displayingSettings = document.querySelector('[installment-page-displaying-setting-container]');
const advancedOptions = document.querySelector('input[name="PAYPAL_ADVANCED_OPTIONS_INSTALLMENT"]');
const widgetCode = document.querySelector('input[name="installmentWidgetCode"]');
const colorConf = document.querySelector('[name="PAYPAL_INSTALLMENT_COLOR"]');
const bnplEnabled = document.querySelector('input[name="PAYPAL_ENABLE_BNPL"]');
const bnplDisplayingSetting = document.querySelector('[bnpl-page-displaying-setting-container]');
if (installmentEnabled.checked) {
displayingSettings.style.display = 'block';
Tools.showConfiguration(advancedOptions.getAttribute('name'));
InstallmentSetting.initBanner();
} else {
displayingSettings.style.display = 'none';
Tools.hideConfiguration(advancedOptions.getAttribute('name'));
}
if (advancedOptions.checked === false || installmentEnabled.checked === false) {
Tools.hideConfiguration(widgetCode.getAttribute('name'));
Tools.hideConfiguration(colorConf.getAttribute('name'));
} else {
Tools.showConfiguration(widgetCode.getAttribute('name'));
Tools.showConfiguration(colorConf.getAttribute('name'));
}
if (bnplEnabled instanceof Element) {
if (bnplEnabled.checked) {
bnplDisplayingSetting.closest('.form-group').style.display = 'block';
} else {
bnplDisplayingSetting.closest('.form-group').style.display = 'none';
}
}
},
updateBannerColor() {
InstallmentSetting.banner.color = InstallmentSetting.getColorBanner();
InstallmentSetting.banner.initBanner();
},
getColorBanner() {
const color = document.querySelector('[name="PAYPAL_INSTALLMENT_COLOR"]').value;
if (typeof color == 'undefined') {
return 'bleu';
}
return color;
}
};
$(document).ready(() => {
InstallmentSetting.init();
// Handle click on "Install Prestashop Checkout" button
$('.install-ps-checkout').click(() => {
SetupAdmin.psCheckoutHandleAction('install');
})
});