File: D:/HostingSpaces/brameda/brameda.nl/resources/js/shop/components/shoppingcartHandler.js
const ShoppingCart = {
// Initialize click event
init: function () {
const addToShoppingcartButtons = document.querySelectorAll('.js-add-product-to-shoppingcart');
const removeFromShoppingcartButtons = document.querySelectorAll('.js-remove-item-from-shoppingcart');
const changeQuantityShoppingcartItemButtons = document.querySelectorAll('.js-change-quantity-of-shoppingcart-item');
for(let i = 0; i < addToShoppingcartButtons.length; i++ ) {
const button = addToShoppingcartButtons[i];
button.addEventListener('click', function () {
const id = this.getAttribute('data-product-id');
const type = this.getAttribute('data-product-type');
ShoppingCart.addProductToShoppingcart(id, type);
})
}
for(let i = 0; i < removeFromShoppingcartButtons.length; i++ ) {
const button = removeFromShoppingcartButtons[i];
button.addEventListener('click', function () {
const id = this.getAttribute('data-product-id');
const type = this.getAttribute('data-product-type');
ShoppingCart.removeItemFromShoppingcart(id, type);
})
}
for(let i = 0; i < changeQuantityShoppingcartItemButtons.length; i++ ) {
const button = changeQuantityShoppingcartItemButtons[i];
button.addEventListener('click', function () {
const id = this.getAttribute('data-shoppingcart-item-id');
const quantity = this.getAttribute('data-quantity');
ShoppingCart.setItemQuantityInShoppingcart(id, quantity);
})
}
},
addProductToShoppingcart: function (id, type) {
console.log(type);
let quantity = 10;
Ajax.post(
'/addProductToShoppingcart',
{productableId: id, itemType: type, quantity: quantity},
function(xhr) {
window.location = xhr.response;
}
);
},
removeItemFromShoppingcart: function (id, type) {
Ajax.post(
'/removeItemFromShoppingcart',
{productableId: id, itemType: type},
function(xhr) {
window.location = xhr.response;
}
);
},
setItemQuantityInShoppingcart: function (id, quantity) {
if (quantity > 0) {
Ajax.post(
'/setItemQuantityInShoppingcart',
{itemId: id, quantity: quantity},
function(xhr) {
window.location = xhr.response;
}
);
} else {
this.removeItemFromShoppingcart(id);
}
},
updateCartButtonCounter: function () {
var count = $(".shoppingcartItemList ul li").length;
$(".shoppingCartButton span.shoppingCartButtonCounter").html(count);
}
};
ShoppingCart.init();