/** * 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 * @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 = $('
').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')); }); }