Current path: home/webdevt/www/schtroumpf.fr/modules/ets_superspeed/views/js/
?? Go up: /home/webdevt/www/schtroumpf.fr/modules/ets_superspeed/views
/**
* Copyright ETS Software Technology Co., Ltd
*
* NOTICE OF LICENSE
*
* This file is not open source! Each license that you purchased is only available for 1 website only.
* If you want to use this file on more websites (or projects), you need to purchase additional licenses.
* You are not allowed to redistribute, resell, lease, license, sub-license or offer our resources to any third party.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future.
*
* @author ETS Software Technology Co., Ltd
* @copyright ETS Software Technology Co., Ltd
* @license Valid for 1 website (or project) for each purchase of license
*/
$(document).ready(function(){
if($('#quantity_wanted').length && $('.product-add-to-cart').length)
{
setTimeout(function(){
$.ajax({
type: 'POST',
url: '',
async: true,
cache: false,
dataType : "json",
data: 'ajax=1&quickview=0&action=refresh&quantity_wanted='+$('#quantity_wanted').val(),
success: function(jsonData,textStatus,jqXHR)
{
if(jsonData)
{
var addToCartBt = ".page-product:not(.modal-open) .row .product-add-to-cart, .page-product:not(.modal-open) .product-container .product-add-to-cart, .page-product:not(.modal-open) .row .js-product-add-to-cart, .page-product:not(.modal-open) .product-container .js-product-add-to-cart";
if(jsonData.product_add_to_cart && $(addToCartBt).length)
{
var t = $(addToCartBt).find('.add');
if (!(t.length <= 0)) {
var n = $(jsonData.product_add_to_cart).find('.add');
if(n.length > 0)
t.replaceWith(n[0].outerHTML);
else
t.html("");
}
t = $(addToCartBt).find('#product-availability');
if (!(t.length <= 0)) {
var p = $(jsonData.product_add_to_cart).find('#product-availability');
if(p.length > 0)
t.replaceWith(p[0].outerHTML);
else
t.html("");
}
t = $(addToCartBt).find('.product-minimal-quantity');
if (!(t.length <= 0)) {
var m = $(jsonData.product_add_to_cart).find('.product-minimal-quantity');
if(m.length > 0)
t.replaceWith(m[0].outerHTML);
else
t.html("");
}
}
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
}
});
},200);
}
prestashop.on('updateCart', function (){
const currentCart = $('.elementor-element[data-widget_type="shopping-cart.default"]');
const lightbox = currentCart.find('.elementor-cart__wrapper .elementor-lightbox');
if(currentCart.length && lightbox.length && !lightbox.hasClass('elementor-cart--shown')){
currentCart.find('.elementor-cart__toggle').find('a').first().trigger('click');
}
});
if($('.ets_speed_dynamic_hook').length || ssIsCeInstalled)
{
var datas='';
$('.ets_speed_dynamic_hook').each(function(index, domhook){
datas = datas + '&hook_' + index + '=' + $(this).attr('data-hook')+'&module_'+index+'='+$(this).attr('data-moudule')+'¶ms_'+index+'='+JSON.stringify($(this).data('params'));
});
var url = window.location.href;
var indexphp = url.indexOf('?');
var indexthang = url.indexOf('#');
if(indexthang>=0)
url = url.substr(0,indexthang);
$.ajax({
type: 'POST',
headers: { "cache-control": "no-cache" },
url: url,
async: true,
cache: false,
dataType : "json",
data: 'ajax=1&ets_superseed_load_content=1&ajax=1&count_datas='+$('.ets_speed_dynamic_hook').length+datas,
success: function(jsonData,textStatus,jqXHR)
{
if(jsonData)
{
renderDataAjax(jsonData);
if(jsonData.cart_products_count)
{
$('.cart-products-count').text(jsonData.cart_products_count);
prestashop.emit('updatedAjaxCart', {});
}
if(jsonData.creativeelements_header && $('.elementor-'+jsonData.creativeelements_header.uid).length)
{
$('.elementor-'+jsonData.creativeelements_header.uid).replaceWith(jsonData.creativeelements_header.content);
if(typeof ceFrontend != 'undefined'){
ceFrontend.init();
}
}
if($(window).width()<768)
{
$("*[id^='_desktop_']").each(function(t, e){
var n = $("#" + e.id.replace("_desktop_", "_mobile_"));
if($(this).html().trim()!='' && n.length)
n.html($(this).html());
});
}
$(document).trigger("hooksLoaded");
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
}
});
}
});
function ets_superspeed_getCeCartHandler(){
var ShoppingCart = elementorModules.frontend.handlers.Base.extend({
getDefaultSettings: function getDefaultSettings() {
return {
selectors: {
container: '.elementor-cart__container',
toggle: '.elementor-cart__toggle .elementor-button',
closeButton: '.elementor-cart__close-button'
},
classes: {
isShown: 'elementor-cart--shown',
lightbox: 'elementor-lightbox',
isHidden: 'elementor-cart-hidden'
}
};
},
getDefaultElements: function getDefaultElements() {
var selectors = this.getSettings('selectors'),
elements = {};
elements.$container = this.$element.find(selectors.container);
elements.$toggle = this.$element.find(selectors.toggle);
elements.$closeButton = this.$element.find(selectors.closeButton);
return elements;
},
bindEvents: function bindEvents() {
var self = this,
$ = jQuery,
$container = self.elements.$container,
$closeButton = self.elements.$closeButton,
classes = this.getSettings('classes');
// Activate topbar mode on click
self.elements.$toggle.on('click', function (event) {
if (!self.elements.$toggle.hasClass(classes.isHidden)) {
event.preventDefault();
$container.toggleClass(classes.isShown);
}
});
// Deactivate topbar mode on click or on esc.
$container.on('click', function (event) {
if ($container.hasClass(classes.isShown) && $container[0] === event.target) {
$container.removeClass(classes.isShown);
}
});
$closeButton.on('click', function () {
$container.removeClass(classes.isShown);
});
ceFrontend.elements.$document.keyup(function (event) {
var ESC_KEY = 27;
if (ESC_KEY === event.keyCode) {
if ($container.hasClass(classes.isShown)) {
$container.click();
}
}
});
$container.on('click', '.elementor-cart__product-remove a', function (event) {
var dataset = $(this).data();
dataset.linkAction = 'delete-from-cart';
$(this).closest('.elementor-cart__product').addClass('ce-disabled');
event.preventDefault();
$.ajax({
url: this.href,
method: 'POST',
dataType: 'json',
data: {
ajax: 1,
action: 'update',
},
}).then(function (resp) {
prestashop.emit('updateCart', {
reason: dataset,
resp: resp,
});
}).fail(function (resp) {
prestashop.emit('handleError', {
eventType: 'updateProductInCart',
resp: resp,
cartAction: dataset.linkAction,
});
});
});
prestashop.on('updateCart', function(data) {
if (!data || !data.resp || !data.resp.cart) {
return;
}
var cart = data.resp.cart,
gift = $container.find('.elementor-cart__products').data('gift'),
$products = $();
// Update toggle
self.elements.$toggle.find('.elementor-button-text')
.html(cart['subtotals']['products']['value'])
;
self.elements.$toggle.find('.elementor-button-icon')
.attr('data-counter', cart['products_count'])
.data('counter', cart['products_count'])
;
// Update products
cart.products.forEach(function (product) {
var $prod = $(
'<div class="elementor-cart__product">' +
'<div class="elementor-cart__product-image"></div>' +
'<div class="elementor-cart__product-name">' +
'<div class="elementor-cart__product-attrs"></div>' +
'</div>' +
'<div class="elementor-cart__product-price"></div>' +
'<div class="elementor-cart__product-remove ceicon-times"></div>' +
'</div>'
),
$attrs = $prod.find('.elementor-cart__product-attrs'),
cover = product.cover || prestashop.urls.no_picture_image;
if (product.embedded_attributes && product.embedded_attributes.id_image) {
// PS 1.7.8 fix - product.cover contains wrong image
var i, id_cover = product.embedded_attributes.id_image.split('-').pop();
for (i = 0; i < product.images.length; i++) {
if (id_cover == product.images[i].id_image) {
cover = product.images[i];
break;
}
}
}
$('<img>').appendTo($prod.find('.elementor-cart__product-image')).attr({
src: cover.bySize.cart_default && cover.bySize.cart_default.url || cover.small.url,
alt: cover.legend,
});
$('<a>').prependTo($prod.find('.elementor-cart__product-name'))
.attr('href', product['url'])
.html(product['name'])
;
// Add product attributes
for (var label in product['attributes']) {
$('<div class="elementor-cart__product-attr">').html(
'<span class="elementor-cart__product-attr-label">' + label + ':</span> ' +
'<span class="elementor-cart__product-attr-value">' + product['attributes'][label] + '</span>'
).appendTo($attrs);
}
// Add product customizations
product.customizations && product.customizations.forEach(function (customization) {
customization.fields.forEach(function (field) {
$('<div class="elementor-cart__product-attr">').html(
'<span class="elementor-cart__product-attr-label">' + field['label'] + ':</span> ' +
'<span class="elementor-cart__product-attr-value">' +
('image' === field['type'] ? $('<img>').attr('src', field['image']['small']['url'])[0].outerHTML : field['text']) +
'</span>'
).appendTo($attrs);
});
});
$prod.find('.elementor-cart__product-price').html(
'<span class="elementor-cart__product-quantity">' + product['quantity'] + '</span> × ' + (product['is_gift'] ? gift : product['price']) + ' '
).append(product['has_discount'] ? $('<del>').html(product['regular_price']) : []);
$('<a>').appendTo($prod.find('.elementor-cart__product-remove')).attr({
href: product['remove_from_cart_url'],
rel: 'nofollow',
'data-id-product': product['id_product'],
'data-id-product-attribute': product['id_product_attribute'],
'data-id-customization': product['id_customization'],
}).data({
'idProduct': product['id_product'],
'idProductAttribute': product['id_product_attribute'],
'idCustomization': product['id_customization'],
});
$products.push($prod[0]);
});
// Update cart
$container.find('.elementor-cart__products')
.empty()
.append($products)
;
$container.find('.elementor-cart__empty-message')
.toggleClass('elementor-hidden', !!cart['products_count'])
;
$container.find('.elementor-cart__summary').html(
'<div class="elementor-cart__summary-label">' + cart['summary_string'] + '</div>' +
'<div class="elementor-cart__summary-value">' + cart['subtotals']['products']['value'] + '</div>' +
'<span class="elementor-cart__summary-label">' + cart['subtotals']['shipping']['label'] + '</span>' +
'<span class="elementor-cart__summary-value">' + cart['subtotals']['shipping']['value'] + '</span>' +
'<strong class="elementor-cart__summary-label">' + cart['totals']['total']['label'] + '</strong>' +
'<strong class="elementor-cart__summary-value">' + cart['totals']['total']['value'] + '</strong>'
);
$container.find('.elementor-alert-warning')
.toggleClass('elementor-hidden', !cart['minimalPurchaseRequired'])
.html('<span class="elementor-alert-description">' + cart['minimalPurchaseRequired'] + '</span>');
;
$container.find('.elementor-button--checkout')
.toggleClass('ce-disabled', cart['minimalPurchaseRequired'] || !cart['products_count'])
;
// Open shopping cart after updated
if (self.getElementSettings('action_open_cart')) {
self.elements.$container.hasClass(classes.isShown) || self.elements.$toggle.triggerHandler('click');
}
});
}
});
return ShoppingCart;
}