HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/stafa.komma.pro/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();