Files

552 lines
20 KiB
JavaScript

/**
* Document ready
*
* For Dokan store
*/
jQuery(document).ready(function($) {
"use strict";
/**
* Remove Crazy Load Effect
*/
if ($('.nasa-crazy-load.crazy-loading').length) {
$('.nasa-crazy-load.crazy-loading').removeClass('crazy-loading');
}
if ($('.nasa-login-register-ajax').length && $('#nasa-login-register-form').length) {
/**
* Compatible with Dokan
*/
if (typeof dokan !== 'undefined' && typeof DokanValidateMsg !== 'undefined') {
popup_registration_dokan($);
}
}
$('body').on('nasa_login_register_ajax_inited', function() {
if ($('.nasa-login-register-ajax').length && $('#nasa-login-register-form').length) {
/**
* Compatible with Dokan
*/
if (typeof dokan !== 'undefined' && typeof DokanValidateMsg !== 'undefined') {
popup_registration_dokan($);
}
}
});
/**
* DOKAN Sidebar
*/
if ($('.dokan-store-sidebar').length && $('.dokan-single-store').length) {
$('body').prepend(
'<a class="toggle-sidebar-dokan hidden-tag" href="javascript:void(0);">' +
'<svg viewBox="0 0 32 32" width="26" height="24" fill="currentColor"><path d="M 4 7 L 4 9 L 28 9 L 28 7 Z M 4 15 L 4 17 L 28 17 L 28 15 Z M 4 23 L 4 25 L 28 25 L 28 23 Z"/></svg>' +
'</a>'
);
$('.dokan-store-sidebar').prepend('<a href="javascript:void(0);" class="hidden-tag nasa-close-sidebar"><svg class="nasa-rotate-180" width="15" height="15" viewBox="0 0 512 512" fill="currentColor"><path d="M135 512c3 0 4 0 6 0 15-4 26-21 40-33 62-61 122-122 187-183 9-9 27-24 29-33 3-14-8-23-17-32-67-66-135-131-202-198-11-9-24-27-33-29-18-4-28 8-31 21 0 0 0 2 0 2 1 1 1 6 3 10 3 8 18 20 27 28 47 47 95 93 141 139 19 18 39 36 55 55-62 64-134 129-199 193-8 9-24 21-26 32-3 18 8 24 20 28z"/></svg></a>');
$('body').on('click', '.toggle-sidebar-dokan', function() {
$('.black-window').fadeIn(200);
if (!$('body').hasClass('m-ovhd')) {
$('body').addClass('m-ovhd');
}
if (!$('.dokan-store-sidebar').hasClass('nasa-active')) {
$('.dokan-store-sidebar').addClass('nasa-active');
}
});
}
if ($('#wpadminbar').length) {
var _mobileView = $('.nasa-check-reponsive.nasa-switch-check').length && $('.nasa-check-reponsive.nasa-switch-check').width() === 1 ? true : false;
var _inMobile = $('body').hasClass('nasa-in-mobile') ? true : false;
if (_mobileView || _inMobile) {
var height_adminbar = $('#wpadminbar').height();
if ($('.dokan-store-sidebar').length && $('.dokan-single-store').length) {
$('.dokan-store-sidebar').css({'top' : height_adminbar});
}
}
}
if ($('.nasa-change-view').length && $('.dokan-store-products-filter-area').length) {
$('.dokan-store-products-filter-area').append($('.nasa-change-view'));
}
/**
* Even change layout
*/
$('body').on('click', '.nasa-change-layout', function() {
var _this = $(this);
if ($(_this).hasClass('active')) {
return false;
} else {
change_layout_dokan_store($, _this);
}
});
/**
* Clone group btn for list layout
*/
dokan_clone_group_btns_product_item($);
$('body').on('nasa_store_changed_layout_list', function() {
dokan_clone_group_btns_product_item($);
});
/**
* Remove Change view in Nasa Store List
*/
if ($('.nasa-store-lists-filters .toggle-view').length) {
setTimeout(function() {
if ($('.nasa-store-lists-filters .toggle-view [data-view="grid-view"]').length) {
$('.nasa-store-lists-filters .toggle-view [data-view="grid-view"]').trigger('click');
}
$('.nasa-store-lists-filters .toggle-view').remove();
}, 100);
}
/* End Document Ready */
});
/**
* Dokan Registration
*/
function popup_registration_dokan($) {
var Popup_Dokan_Vendor_Registration = {
init: function () {
var form = $('form.register');
// bind events
$('.user-role input[type=radio]', form).on('change', this.showSellerForm);
$('.tc_check_box', form).on('click', this.onTOC);
$('#shop-phone', form).keydown(this.ensurePhoneNumber);
$('#company-name', form).on('focusout', this.generateSlugFromCompany);
$('#seller-url', form).keydown(this.constrainSlug);
$('#seller-url', form).keyup(this.renderUrl);
$('#seller-url', form).on('focusout', this.checkSlugAvailability);
this.validationLocalized();
},
validate: function (self) {
$('form.register').validate({
errorPlacement: function (error, element) {
var form_group = $(element).closest('.form-group');
form_group.addClass('has-error').append(error);
},
success: function (label, element) {
$(element).closest('.form-group').removeClass('has-error');
},
submitHandler: function (form) {
form.submit();
}
});
},
showSellerForm: function () {
var value = $(this).val();
if (value === 'seller') {
$('.show_if_seller').find('input, select').removeAttr('disabled');
$('.show_if_seller').slideDown();
if ($('.tc_check_box').length > 0) {
$('button[name=register]').attr('disabled', 'disabled');
}
} else {
$('.show_if_seller').find('input, select').attr('disabled', 'disabled');
$('.show_if_seller').slideUp();
if ($('.tc_check_box').length > 0) {
$('button[name=register]').removeAttr('disabled');
}
}
},
onTOC: function () {
var chk_value = $(this).val();
if ($(this).prop("checked")) {
$('input[name=register]').removeAttr('disabled');
$('button[name=register]').removeAttr('disabled');
$('input[name=dokan_migration]').removeAttr('disabled');
} else {
$('input[name=register]').attr('disabled', 'disabled');
$('button[name=register]').attr('disabled', 'disabled');
$('input[name=dokan_migration]').attr('disabled', 'disabled');
}
},
ensurePhoneNumber: function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 91, 107, 109, 110, 187, 189, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
},
generateSlugFromCompany: function () {
var value = $(this).val();
if (!value) {
value = "";
}
value = decodeURIComponent(value);
$('#seller-url').val(value);
$('#url-alart').text(value);
$('#seller-url').focus();
},
constrainSlug: function (e) {
var text = $(this).val();
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 91, 109, 110, 173, 189, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
if ((e.shiftKey || (e.keyCode < 65 || e.keyCode > 90) && (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
},
checkSlugAvailability: function () {
var self = $(this),
data = {
action: 'shop_url',
url_slug: self.val(),
_nonce: dokan.nonce
};
if (self.val() === '') {
return;
}
var row = self.closest('.form-row');
row.block({
message: null,
overlayCSS: {
background: '#fff url(' + dokan.ajax_loader + ') no-repeat center',
opacity: 0.6
}
});
$.post(dokan.ajaxurl, data, function (resp) {
if (resp.success === true) {
$('#url-alart').removeClass('text-danger').addClass('text-success');
$('#url-alart-mgs').removeClass('text-danger').addClass('text-success').text(dokan.seller.available);
} else {
$('#url-alart').removeClass('text-success').addClass('text-danger');
$('#url-alart-mgs').removeClass('text-success').addClass('text-danger').text(dokan.seller.notAvailable);
}
row.unblock();
});
},
renderUrl: function () {
$('#url-alart').text($(this).val());
},
validationLocalized: function () {
var dokan_messages = DokanValidateMsg;
dokan_messages.maxlength = $.validator.format(dokan_messages.maxlength_msg);
dokan_messages.minlength = $.validator.format(dokan_messages.minlength_msg);
dokan_messages.rangelength = $.validator.format(dokan_messages.rangelength_msg);
dokan_messages.range = $.validator.format(dokan_messages.range_msg);
dokan_messages.max = $.validator.format(dokan_messages.max_msg);
dokan_messages.min = $.validator.format(dokan_messages.min_msg);
$.validator.messages = dokan_messages;
}
};
if ($('input[name="nasa-caching-enable"]').length && $('input[name="nasa-caching-enable"]').val() === '1') {
$('body').on('nasa_after_load_static_content', function() {
if ($('#nasa-login-register-form form.register').length) {
Popup_Dokan_Vendor_Registration.init();
$('.show_if_seller').find('input, select').attr('disabled', 'disabled');
// trigger change if there is an error while registering
var shouldTrigger = $('.woocommerce ul').hasClass('woocommerce-error') && !$('.show_if_seller').is(':hidden');
if (shouldTrigger) {
var form = $('form.register');
$('.user-role input[type=radio]', form).trigger('change');
}
// disable migration button if checkbox isn't checked
if ($('.tc_check_box').length > 0) {
$('input[name=dokan_migration]').attr('disabled', 'disabled');
$('input[name=register]').attr('disabled', 'disabled');
}
}
});
}
else {
if ($('#nasa-login-register-form form.register').length) {
Popup_Dokan_Vendor_Registration.init();
$('.show_if_seller').find('input, select').attr('disabled', 'disabled');
// trigger change if there is an error while registering
var shouldTrigger = $('.woocommerce ul').hasClass('woocommerce-error') && !$('.show_if_seller').is(':hidden');
if (shouldTrigger) {
var form = $('form.register');
$('.user-role input[type=radio]', form).trigger('change');
}
// disable migration button if checkbox isn't checked
if ($('.tc_check_box').length > 0) {
$('input[name=dokan_migration]').attr('disabled', 'disabled');
$('input[name=register]').attr('disabled', 'disabled');
}
}
}
}
/**
* Change layout Grid | List Dokan Store
*
* @param {type} $
* @param {type} _this
* @returns {undefined}
*/
function change_layout_dokan_store($, _this) {
var value_view, item_row, class_items;
var _url = new URL(window.location.href);
var _destroy = false;
if ($(_this).hasClass('productList')) {
value_view = 'list';
_destroy = true;
$('.nasa-content-page-products .products').removeClass('grid').addClass('list');
$('body').trigger('nasa_store_changed_layout_list');
} else {
var columns = $(_this).attr('data-columns');
class_items = 'products grid';
switch (columns) {
case '2' :
item_row = 2;
value_view = 'grid-2';
class_items += ' large-block-grid-2';
break;
case '3' :
item_row = 3;
value_view = 'grid-3';
class_items += ' large-block-grid-3';
break;
case '5' :
item_row = 5;
value_view = 'grid-5';
class_items += ' large-block-grid-5';
break;
case '6' :
item_row = 5;
value_view = 'grid-6';
class_items += ' large-block-grid-6';
break;
case '4' :
default :
item_row = 4;
value_view = 'grid-4';
class_items += ' large-block-grid-4';
break;
}
var count = $('.nasa-content-page-products .products').find('.product-warp-item').length;
if (count > 0) {
var _wrap_all = $('.nasa-content-page-products .products');
var _col_small = $(_wrap_all).attr('data-columns_small');
var _col_medium = $(_wrap_all).attr('data-columns_medium');
switch (_col_small) {
case '2' :
class_items += ' small-block-grid-2';
break;
case '1' :
default :
class_items += ' small-block-grid-1';
break;
}
switch (_col_medium) {
case '3' :
class_items += ' medium-block-grid-3';
break;
case '4' :
class_items += ' medium-block-grid-4';
break;
case '2' :
default :
class_items += ' medium-block-grid-2';
break;
}
$('.nasa-content-page-products .products').attr('class', class_items);
}
$('body').trigger('nasa_store_changed_layout_grid', [columns, class_items]);
}
$(".nasa-change-layout").removeClass("active");
$(_this).addClass("active");
if ($(_this).hasClass('df')) {
_url.searchParams.delete('view-layout');
} else {
_url.searchParams.set('view-layout', value_view);
}
window.history.pushState(_url.href, '', _url.href);
$('body').trigger('nasa_before_change_view');
if (!_destroy) {
$('body').trigger('nasa_before_change_view_timeout', [_destroy]);
} else {
setTimeout(function() {
$('body').trigger('nasa_before_change_view_timeout', [_destroy]);
}, 500);
}
}
/**
* clone group btn loop products
*
* @param {type} $
* @returns {undefined}
*/
function dokan_clone_group_btns_product_item($) {
var _list = $('.products').length && $('.products').hasClass('list') ? true : false;
if (_list && $('.nasa-content-page-products .product-item').length) {
$('.nasa-content-page-products .product-item').each(function() {
var _wrap = $(this);
if (!$(_wrap).hasClass('nasa-list-cloned')) {
$(_wrap).addClass('nasa-list-cloned');
if ($(_wrap).find('.group-btn-in-list').length < 1) {
$(_wrap).append('<div class="group-btn-in-list nasa-group-btns hidden-tag"></div>');
}
var _place = $(_wrap).find('.group-btn-in-list');
var _price = '';
if ($(_wrap).find('.price-wrap').length) {
_price = $(_wrap).find('.price-wrap').html();
} else if ($(_wrap).find('.price').length) {
_price = $(_wrap).find('.price').clone().wrap('<div class="price-wrap"></div>').parent().html();
}
if (_price !== '') {
$(_place).append('<div class="price-wrap">' + _price + '</div>');
}
if ($(_wrap).find('.nasa-list-stock-wrap').length) {
$(_place).append($(_wrap).find('.nasa-list-stock-wrap').html());
$(_wrap).find('.nasa-list-stock-wrap').remove();
}
if ($(_wrap).find('.btn-link').length && $(_place).length) {
var _add = $(_wrap).find('.add-to-cart-grid').clone();
if ($(_add).length) {
$(_place).append(_add);
}
$(_wrap).find('.btn-link').each(function() {
var _btn = $(this).clone();
if (!$(_btn).hasClass('add-to-cart-grid')) {
$(_place).append(_btn);
}
});
if ($(_place).find('.btn-link').length) {
$(_place).find('.btn-link').each(function() {
if (
$(this).find('.nasa-icon-text').length <= 0 &&
// $(this).find('.nasa-icon').length &&
$(this).attr('data-icon-text')
) {
$(this).append(
'<span class="nasa-icon-text">' +
$(this).attr('data-icon-text') +
'</span>'
);
}
});
}
if ($(_place).find('.btn-wishlist.btn-link').length && $(_place).find('.add-to-cart-grid.btn-link').length) {
$(_place).find('.add-to-cart-grid.btn-link').after($(_place).find('.btn-wishlist.btn-link'));
}
}
/**
* Deal Time
*/
if ($(_wrap).find('.nasa-sc-pdeal-countdown .countdown').length) {
var _countdown = $(_wrap).find('.nasa-sc-pdeal-countdown').clone();
$(_countdown).find('.countdown').removeClass('is-countdown');
$(_countdown).find('.countdown').removeClass('countdown-rtl');
$(_countdown).find('.countdown').removeClass('countdown-loaded');
$(_countdown).find('.countdown').html('');
if ($(_wrap).find('.product-info-wrap .nasa-sc-pdeal-countdown').length) {
$(_wrap).find('.product-info-wrap .nasa-sc-pdeal-countdown').replaceWith(_countdown);
} else {
if ($(_wrap).find('.product-des-wrap').length) {
$(_wrap).find('.product-des-wrap').before(_countdown);
} else {
$(_wrap).find('.product-info-wrap').append(_countdown);
}
}
$('body').trigger('nasa_load_countdown');
}
}
});
}
}