Skip to content

Instantly share code, notes, and snippets.

@tonysaffo
Last active October 8, 2018 14:44
Show Gist options
  • Save tonysaffo/86c067d6866ad99c8ede53244382bcdf to your computer and use it in GitHub Desktop.
Save tonysaffo/86c067d6866ad99c8ede53244382bcdf to your computer and use it in GitHub Desktop.
var renderModule = (function() {
return {
addToCart: function(cartArray, id, productArray, cartBadge){
cartArray.push(productArray[id]);
productArray[id].isFavorite = false;
this.refreshCart(cartBadge, cartArray);
},
deleteFromCart: function(cartArray, id, idx, productArray, cartBadge){
console.log(productArray);
cartArray.splice(id,1);
productArray.find(x => x.id === idx).isFavorite = true; ///////////////
this.refreshCart(cartBadge, cartArray);
},
renderCartModule: function(wrapper, cartArray, id){
if(cartArray.sum !=0){
wrapper.append($(`<div class="cart-module cart-module-${id}">
<div class="cart-item-wrapper">
</div>
<div class="price-total">
<span>Сумма к оплате:</span>
<span class="price">${cartArray.sum}</span>
</div>
<div class="pay-button">Оплатить</div>
</div>`));
} else {
wrapper.append($(`<div class="cart-module cart-module-${id}">
<div class="cart-item-wrapper">
</div>
<div class="price-total">
<span>Ваша корзина пуста</span>
</div>
</div>`));
}
var elementsCollection = [];
for(var i = 0; i < cartArray.length; i++) {
elementsCollection.push($(`<div class="item" data-id="${cartArray[i].id}">
<label class="radio nolabel-radio"><input type="checkbox"><span class="checkmark"></span></label>
<div class="wrapper">
<div class="img" style="background-image: url(${cartArray[i].imgUrl});"></div>
<div class="info">
<div class="texts">
<div class="type">${cartArray[i].type}</div>
<div class="description">${cartArray[i].title}</div>
</div>
<div class="price">
<input type="text" placeholder="${cartArray[i].cost}" disabled>
<div class="trash"><img src="img/trash.png" alt=""></div>
</div>
</div>
</div>
</div>`));
}
$(`.cart-module-${id} .cart-item-wrapper`).append(elementsCollection);
}
}
////
// CART
// initialize
renderModule.refreshCart($('.lk .hidden-mobile-nav .cart.typical-nav-icon .cart-badge'), cartArray);
// click cart icon
$('.lk .cart.typical-nav-icon').click(function(){
clearAll();
closeMenu();
renderModule.renderCartModule($('.main-content').eq(0), cartArray, 1);
});
// delete from cart
$(document).delegate(".lk .cart-item-wrapper .item .info .price .trash", "click", function(){
renderModule.deleteFromCart(
cartArray,
$(this).parents('.cart-item-wrapper .item').index(),
$(this).parents('.item').data('id'),
courses,
$('.lk .hidden-mobile-nav .cart.typical-nav-icon .cart-badge')
);
clearAll();
renderModule.renderCartModule($('.main-content').eq(0), cartArray, 1);
});
// add to cart
$(document).delegate(".lk .typical-course-card.can-buy .cart-button", "click", function(){
renderModule.addToCart(cartArray, $(this).parents('.typical-course-card').data('id'), courses, $('.lk .hidden-mobile-nav .cart.typical-nav-icon .cart-badge'));
clearAll();
renderModule.renderFavoriteCourses($('.main-content').eq(0), courses, 3);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment