shell bypass 403
/*=========================================================================================
File Name: app-ecommerce.js
Description: Ecommerce pages js
----------------------------------------------------------------------------------------
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
Author: PIXINVENT
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
$(function () {
'use strict';
var quantityCounter = $('.quantity-counter'),
CounterMin = 1,
CounterMax = 10,
bsStepper = document.querySelectorAll('.bs-stepper'),
checkoutWizard = document.querySelector('.checkout-tab-steps'),
removeItem = $('.remove-wishlist'),
moveToCart = $('.move-cart'),
isRtl = $('html').attr('data-textdirection') === 'rtl';
// remove items from wishlist page
removeItem.on('click', function () {
$(this).closest('.ecommerce-card').remove();
toastr['error']('', 'Removed Item 🗑️', {
closeButton: true,
tapToDismiss: false,
rtl: isRtl
});
});
// move items to cart
moveToCart.on('click', function () {
$(this).closest('.ecommerce-card').remove();
toastr['success']('', 'Added to wishlist ❤️', {
closeButton: true,
tapToDismiss: false,
rtl: isRtl
});
});
// Checkout Wizard
// Adds crossed class
if (typeof bsStepper !== undefined && bsStepper !== null) {
for (var el = 0; el < bsStepper.length; ++el) {
bsStepper[el].addEventListener('show.bs-stepper', function (event) {
var index = event.detail.indexStep;
var numberOfSteps = $(event.target).find('.step').length - 1;
var line = $(event.target).find('.step');
// The first for loop is for increasing the steps,
// the second is for turning them off when going back
// and the third with the if statement because the last line
// can't seem to turn off when I press the first item. ¯\_(ツ)_/¯
for (var i = 0; i < index; i++) {
line[i].classList.add('crossed');
for (var j = index; j < numberOfSteps; j++) {
line[j].classList.remove('crossed');
}
}
if (event.detail.to == 0) {
for (var k = index; k < numberOfSteps; k++) {
line[k].classList.remove('crossed');
}
line[0].classList.remove('crossed');
}
});
}
}
// Init Wizard
if (typeof checkoutWizard !== undefined && checkoutWizard !== null) {
var wizard = new Stepper(checkoutWizard, {
linear: false
});
$(checkoutWizard)
.find('.btn-next')
.each(function () {
$(this).on('click', function (e) {
wizard.next();
});
});
$(checkoutWizard)
.find('.btn-prev')
.on('click', function () {
wizard.previous();
});
}
// checkout quantity counter
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');
}
});
}
});