first commit
This commit is contained in:
138
themes/ayon/modules/ps_shoppingcart/ps_shoppingcart.js
Normal file
138
themes/ayon/modules/ps_shoppingcart/ps_shoppingcart.js
Normal file
@@ -0,0 +1,138 @@
|
||||
/* global $, prestashop */
|
||||
|
||||
/**
|
||||
* This module exposes an extension point in the form of the `showModal` function.
|
||||
*
|
||||
* If you want to override the way the modal window is displayed, simply define:
|
||||
*
|
||||
* prestashop.blockcart = prestashop.blockcart || {};
|
||||
* prestashop.blockcart.showModal = function myOwnShowModal (modalHTML) {
|
||||
* // your own code
|
||||
* // please not that it is your responsibility to handle closing the modal too
|
||||
* };
|
||||
*
|
||||
* Attention: your "override" JS needs to be included **before** this file.
|
||||
* The safest way to do so is to place your "override" inside the theme's main JS file.
|
||||
*
|
||||
*/
|
||||
|
||||
$(document).ready(function () {
|
||||
prestashop.blockcart = prestashop.blockcart || {};
|
||||
|
||||
var showModal = prestashop.blockcart.showModal || function (modal) {
|
||||
var $body = $('body');
|
||||
$body.append(modal);
|
||||
$body.one('click', '#blockcart-modal', function (event) {
|
||||
if (event.target.id === 'blockcart-modal') {
|
||||
$(event.target).remove();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
prestashop.on(
|
||||
'updateCart',
|
||||
function (event) {
|
||||
|
||||
if($('body:not(#cart)').hasClass('add1')) {
|
||||
var cart_click = function (e) {
|
||||
$('body').addClass('side_open side_content')
|
||||
$('.side_menu .side_menu_rel > div').removeClass('show');
|
||||
$('#side_cart_wrap').addClass('show');
|
||||
$('.side_close').removeClass('search_close menu_close mail_close').addClass('cart_close');
|
||||
$('.side_menu').find('.cart-prods').addClass('loading');
|
||||
}
|
||||
cart_click();
|
||||
}
|
||||
|
||||
var refreshURL = $('.blockcart').data('refresh-url');
|
||||
var requestData = {};
|
||||
|
||||
if (event && event.reason) {
|
||||
requestData = {
|
||||
id_product_attribute: event.reason.idProductAttribute,
|
||||
id_product: event.reason.idProduct,
|
||||
action: event.reason.linkAction
|
||||
};
|
||||
}
|
||||
|
||||
$.post(refreshURL, requestData).then(function (resp) {
|
||||
$('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
|
||||
var count_new = $(resp.preview).find('.cart-products-count').text()
|
||||
$('.box-cart.cart-products-count').html(count_new);
|
||||
|
||||
if($('body').hasClass('add1')) {
|
||||
$('.side_menu').find('.cart-prods').addClass('loading');
|
||||
|
||||
setTimeout(function(){
|
||||
$('.side_menu').find('.cart-prods').removeClass('loading');
|
||||
$('.side_menu').find('.cart-prods > li:not(.show)').each(function(i){
|
||||
var row = $(this);
|
||||
setTimeout(function(){
|
||||
row.addClass('show');
|
||||
}, 300 + i * 160);
|
||||
});
|
||||
}, 400);
|
||||
} else {
|
||||
if (resp.modal) {
|
||||
showModal(resp.modal);
|
||||
}
|
||||
}
|
||||
|
||||
$('.side_close, .close_cross, .return').click(function () {
|
||||
$('body').removeClass('side_open side_content');
|
||||
$('.side_menu').find('.cart-prods > li').each(function(i){
|
||||
$(this).removeClass('show');
|
||||
});
|
||||
setTimeout(function(){
|
||||
$('body').removeClass('was_open');
|
||||
}, 440);
|
||||
});
|
||||
var reopen = function() {
|
||||
if($('body').hasClass('side_open')) {
|
||||
|
||||
$('body').removeClass('side_content');
|
||||
$('.side_menu').removeClass('reopen_go').addClass('reopen_hide');
|
||||
setTimeout(function(){
|
||||
$('body').addClass('side_content');
|
||||
}, 320);
|
||||
setTimeout(function(){
|
||||
$('.side_menu').removeClass('reopen_hide').addClass('reopen_go');
|
||||
}, 600);
|
||||
|
||||
} else {
|
||||
$('body').addClass('side_open side_content was_open')
|
||||
}
|
||||
}
|
||||
var cartprodsshow = function () {
|
||||
$('.side_menu').find('.cart-prods > li').each(function(i){
|
||||
var row = $(this);
|
||||
setTimeout(function(){
|
||||
row.addClass('show');
|
||||
}, 300 + i * 220);
|
||||
});
|
||||
}
|
||||
var cart_click = function (e) {
|
||||
e.preventDefault();
|
||||
reopen();
|
||||
$('.side_menu .side_menu_rel > div').removeClass('show');
|
||||
$('#side_cart_wrap').addClass('show');
|
||||
$('.side_close').removeClass('search_close menu_close acc_close').addClass('cart_close');
|
||||
$('.side_close i').toggleClass('rotateit');
|
||||
if($('.side_menu').hasClass('reopen_hide')) {
|
||||
setTimeout(function(){
|
||||
cartprodsshow();
|
||||
}, 320);
|
||||
} else {
|
||||
cartprodsshow();
|
||||
}
|
||||
}
|
||||
$('#header .row.action .blockcart a.cart_nogo').off("click", cart_click).on("click", cart_click);
|
||||
|
||||
}).fail(function (resp) {
|
||||
prestashop.emit('handleError', {eventType: 'updateShoppingCart', resp: resp});
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user