artbox_basket.js 2.56 KB
var ArtboxBasket = (function() {
    function ArtboxBasket() {
        this.init(true, true);
    }

    Object.defineProperty(
        ArtboxBasket.prototype, "items", {
            get: function() {
                return this._items;
            },
            enumerable: true,
            configurable: true
        }
    );
    ArtboxBasket.prototype.init = function(update_modal, update_cart) {
        $.get(
            '/basket', function(data) {
                this._items = data.basket;
                if (update_modal) {
                    this.updateModal(data.modal, false);
                }
                if (update_cart) {
                    this.updateCart(data.cart);
                }
            }.bind(this), 'json'
        )
         .fail(
             function() {
                 console.error('Basket cannot be init');
             }
         );
    };
    ArtboxBasket.prototype.add = function(product_variant_id) {
        $.post(
            '/basket/add?product_variant_id=' + product_variant_id, function(data) {
                this._items = data.basket;
                this.updateModal(data.modal, data.cart, true);
                showForm();
            }.bind(this), 'json'
        )
         .fail(
             function(xhr, status, error) {
                 console.error(error);
             }
         );
    };
    ArtboxBasket.prototype.remove = function(product_variant_id) {
        $.post(
            '/basket/remove?product_variant_id=' + product_variant_id, function(data) {
                this._items = data.basket;
                this.updateCart(data.cart);
                // this.updateModal(data.modal, data.cart, true);
            }.bind(this), 'json'
        )
         .fail(
             function(xhr, status, error) {
                 console.error(error);
             }
         );
    };
    ArtboxBasket.prototype.updateModal = function(modal, cart_html, show) {
        if (show === void 0) {
            show = false;
        }
        var modalBox = $('#modal_form-2');
        modalBox.html(modal);
        if (cart_html) {
            this.updateCart(cart_html);
        }
    };
    ArtboxBasket.prototype.updateCart = function(cart_html) {
        var cart = $('.question-form ');
        cart.html(cart_html);
    };
    Object.defineProperty(
        ArtboxBasket.prototype, "count", {
            get: function() {
                return Object.keys(this._items).length;
            },
            enumerable: true,
            configurable: true
        }
    );
    return ArtboxBasket;
}());
//# sourceMappingURL=artbox_basket.js.map