Files
wyczarujprezent.pl/themes/EZE-249/_dev/js/product-modals.js
2024-10-28 22:14:22 +01:00

81 lines
3.6 KiB
JavaScript

/**
* 2007-2019 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License 3.0 (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:
* https://opensource.org/licenses/AFL-3.0
* 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 PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
// Init ProductCommons with six parameters:
// 1) Create Cover Image, 2) Create Input File,
// 3) Create Product Spin, 4) Create Image Slider,
// 5) Create Gallery(example: '5 4 3'), 6) Create Vertical Gallery(example: '5-4-3')
import ProductCommons from './components/product-commons';
$(document).ready(function () {
prestashop.on('clickQuickView', function (elm) {
let data = {
'action': 'quickview',
'id_product': elm.dataset.idProduct,
'id_product_attribute': elm.dataset.idProductAttribute,
};
$.post(prestashop.urls.pages.product, data, null, 'json').then(function (resp) {
$('body').append(resp.quickview_html);
$(`#quickview-modal-${resp.product.id}-${resp.product.id_product_attribute}`)
.modal('show')
.on('shown.bs.modal', function () {
let productQuickView = new ProductCommons($('#quickview-product-card'));
productQuickView.init(true, false, true, true, true, false, false);
zoomUpdater();
prestashop.on('updatedProduct', function (event) {
const $newImagesContainer = $('<div>').append(event.product_images_modal);
$('#quickview-product-card .quickview-images-container').replaceWith($newImagesContainer.find('.quickview-images-container'));
$('#product-modal').replaceWith($newImagesContainer.find('#product-modal'));
if (event && event.product_minimal_quantity) {
const minimalProductQuantity = parseInt(event.product_minimal_quantity, 10);
const quantityInputSelector = '#quickview-product-card #quantity_wanted';
let quantityInput = $(quantityInputSelector);
quantityInput.trigger('touchspin.updatesettings', {min: minimalProductQuantity});
}
productQuickView.init(true, false, true, true, true, false, false);
zoomUpdater();
});
}).on('hidden.bs.modal', function () {
$('[id*="quickview-modal-"], #product-modal').remove();
});
}).fail((resp) => {
prestashop.emit('handleError', {eventType: 'clickQuickView', resp: resp});
});
});
});
function zoomUpdater () {
$('#quickview-product-card .quickview-images-container li').on('mouseenter', function (e) {
$('#quickview-product-card').find('.product-cover').removeClass('product-cover').find('img').removeClass('selected');
$(e.currentTarget).addClass('product-cover').find('img').addClass('selected');
let imgLarge = $(e.currentTarget).find('img');
imgLarge.attr('src', imgLarge.attr('data-image-large-src'));
window.dispatchEvent(new Event('resize'));
});
}