Files
jubaboxweb/wwwjuba/app-assets/js/scripts/pages/app-ecommerce-shop.js
T
2019-08-26 13:45:20 -04:00

169 lines
5.6 KiB
JavaScript

/*=========================================================================================
File Name: app-ecommerce-shop.js
Description: Ecommerce Shop
----------------------------------------------------------------------------------------
Item Name: Vuesax HTML Admin Template
Version: 1.1
Author: PIXINVENT
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
$(document).ready(function () {
"use strict";
var sidebarShop = $(".sidebar-shop"),
shopOverlay = $(".shop-content-overlay"),
sidebarToggler = $(".shop-sidebar-toggler"),
priceFilter = $(".price-options"),
gridViewBtn = $(".grid-view-btn"),
listViewBtn = $(".list-view-btn"),
ecommerceProducts = $("#ecommerce-products"),
cart = $(".cart"),
wishlist = $(".wishlist");
// show sidebar
sidebarToggler.on("click", function () {
sidebarShop.toggleClass("show");
shopOverlay.toggleClass("show");
});
// remove sidebar
$(".shop-content-overlay, .sidebar-close-icon").on("click", function () {
sidebarShop.removeClass("show");
shopOverlay.removeClass("show");
})
//price slider
var slider = document.getElementById("price-slider");
if (slider) {
noUiSlider.create(slider, {
start: [51, 5000],
connect: true,
tooltips: [true, true],
format: wNumb({
decimals: 0,
}),
range: {
"min": 51,
"max": 5000
}
});
}
// for select in ecommerce header
if (priceFilter.length > 0) {
priceFilter.select2({
minimumResultsForSearch: -1
});
}
/***** CHANGE VIEW *****/
// Grid View
gridViewBtn.on("click", function () {
ecommerceProducts.removeClass("list-view").addClass("grid-view");
listViewBtn.removeClass("active");
gridViewBtn.addClass("active");
});
// List View
listViewBtn.on("click", function () {
ecommerceProducts.removeClass("grid-view").addClass("list-view");
gridViewBtn.removeClass("active");
listViewBtn.addClass("active");
});
// For View in cart
cart.on("click", function () {
var $this = $(this)
$this.find(".add-to-cart").addClass("d-none");
$this.find(".view-in-cart").addClass("d-inline-block");
})
// For Wishlist Icon
wishlist.on("click", function () {
var $this = $(this)
$this.find("i").toggleClass("fa-heart-o fa-heart")
$this.toggleClass("added");
})
// Checkout Wizard
var checkoutWizard = $(".checkout-tab-steps"),
checkoutValidation = checkoutWizard.show();
if (checkoutWizard.length > 0) {
$(checkoutWizard).steps({
headerTag: "h6",
bodyTag: "fieldset",
transitionEffect: "fade",
titleTemplate: '<span class="step">#index#</span> #title#',
enablePagination: false,
onStepChanging: function (event, currentIndex, newIndex) {
// allows to go back to previous step if form is
if (currentIndex > newIndex) {
return true;
}
// Needed in some cases if the user went back (clean up)
if (currentIndex < newIndex) {
// To remove error styles
checkoutValidation.find(".body:eq(" + newIndex + ") label.error").remove();
checkoutValidation.find(".body:eq(" + newIndex + ") .error").removeClass("error");
}
// check for valid details and show notification accordingly
if (currentIndex === 1 && Number($(".form-control.required").val().length) < 1) {
toastr.warning('Error', 'Please Enter Valid Details', { "positionClass": "toast-bottom-right" });
}
checkoutValidation.validate().settings.ignore = ":disabled,:hidden";
return checkoutValidation.valid();
},
});
// to move to next step on place order and save address click
$(".place-order, .delivery-address").on("click", function () {
$(".checkout-tab-steps").steps("next", {});
});
// check if user has entered valid cvv
$(".btn-cvv").on("click", function () {
if ($(".input-cvv").val().length == 3) {
toastr.success('Success', 'Payment received Successfully', { "positionClass": "toast-bottom-right" });
}
else {
toastr.warning('Error', 'Please Enter Valid Details', { "positionClass": "toast-bottom-right" });
}
})
}
// checkout quantity counter
var quantityCounter = $(".quantity-counter"),
CounterMin = 1,
CounterMax = 10;
if (quantityCounter.length > 0) {
quantityCounter.TouchSpin({
min: CounterMin,
max: CounterMax
}).on('touchspin.on.startdownspin', function () {
var $this = $(this);
$('.bootstrap-touchspin-up').removeClass("disabled-max-min");
if ($this.val() == 1) {
$(this).siblings().find('.bootstrap-touchspin-down').addClass("disabled-max-min");
}
}).on('touchspin.on.startupspin', function () {
var $this = $(this);
$('.bootstrap-touchspin-down').removeClass("disabled-max-min");
if ($this.val() == 10) {
$(this).siblings().find('.bootstrap-touchspin-up').addClass("disabled-max-min");
}
});
}
// remove items from wishlist page
$(".remove-wishlist , .move-cart").on("click", function () {
$(this).closest(".ecommerce-card").remove();
})
})
// on window resize hide sidebar
$(window).on("resize", function () {
if ($(window).width() <= 991) {
$(".sidebar-shop").removeClass("show");
$(".shop-content-overlay").removeClass("show");
}
else {
$(".sidebar-shop").addClass("show");
}
});