/** * 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( ''); $('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('
'); } 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('').parent().html(); } if (_price !== '') { $(_place).append(' ' ); $('.dokan-store-sidebar').prepend('