File "woobe.js"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/woo-bulk-editor/assets/js/woobe.js
File size: 36.84 KB
MIME-type: text/plain
Charset: utf-8
"use strict";
var woobe_popup_clicked = null;
var woobe_sort_order = [];
var woobe_checked_products = [];//product id which been checked
var woobe_last_checked_product = {id: 0, checked: false};
var woobe_tools_panel_full_width = 0;
(function ($) {
jQuery(function () {
jQuery('.woobe-tabs').woobeTabs();
//***
jQuery(document).on('keyup',function (e) {
if (e.keyCode === 27) {
jQuery('.woobe-modal-close').trigger('click');
}
});
woobe_init_tips(jQuery('.zebra_tips1'));
//***
//for columns coloring
try {
jQuery('.woobe-color-picker').wpColorPicker();
} catch (e) {
console.log(e);
}
setTimeout(function () {
jQuery('.woobe_column_color_pickers').each(function (index, picker) {
jQuery(picker).find('span.wp-color-result-text').eq(0).html(lang.color_picker_col);
jQuery(picker).find('span.wp-color-result-text').eq(1).html(lang.color_picker_txt);
});
}, 1000);
//***
jQuery(".woobe_fields").sortable({
items: "li:not(.unsortable)",
update: function (event, ui) {
woobe_sort_order = [];
jQuery('.woobe_fields').children('li').each(function (index, value) {
var key = jQuery(this).data('key');
woobe_sort_order.push(key);
});
jQuery('input[name="woobe[items_order]"]').val(woobe_sort_order.toString());
},
opacity: 0.8,
cursor: "crosshair",
handle: '.woobe_drag_and_drope',
placeholder: 'woobe-options-highlight'
});
//fix: to avoid jumping
jQuery('body').on('click', '.woobe_drag_and_drope', function () {
return false;
});
//***
jQuery('#tabs_f .woobe_calendar_cell_clear').on('click', function () {
jQuery(this).parent().find('.woobe_calendar').val('').trigger('change');
return false;
});
//options saving
jQuery('#mainform').submit(function () {
woobe_save_form(this, 'woobe_save_options');
return false;
});
//***
jQuery('#show_all_columns').on('click', function () {
jQuery('.woobe_fields li').show();
jQuery(this).parent().remove();
return false;
});
//columns finder
jQuery('#woobe_columns_finder').on('keyup keypress', function (e) {
var keyCode = e.keyCode || e.which;
//preventing form submit if press Enter button
if (keyCode === 13) {
e.preventDefault();
return false;
}
//***
jQuery('#tabs-settings .woobe_fields li').show();
var search = jQuery(this).val().toLowerCase();
jQuery('#tabs-settings .woobe_fields li.woobe_options_li .woobe_column_li_option').each(function (index, input) {
var txt = jQuery(input).val().toLowerCase();
if (txt.indexOf(search) != -1) {
jQuery(input).parents('li').show();
} else {
jQuery(input).parents('li').hide();
}
});
return true;
});
//*****************************************
jQuery('body').on('click', '.woobe_select_image', function ()
{
var input_object = jQuery(this).prev('input[type=text]');
window.send_to_editor = function (html)
{
jQuery('#woobe_buffer').html(html);
var imgurl = jQuery('#woobe_buffer').find('a').eq(0).attr('href');
jQuery('#woobe_buffer').html("");
jQuery(input_object).val(imgurl);
jQuery(input_object).trigger('change');
tb_remove();
};
tb_show('', 'media-upload.php?post_id=0&type=image&TB_iframe=true');
return false;
});
//***
woobe_init_advanced_panel();
if (parseInt(woobe_get_from_storage('woobe_tools_panel_full_width_btn'), 10)) {
jQuery('.woobe_tools_panel_full_width_btn').trigger('click');
}
//woobe_init_bulk_panel();
//options columns switchers only!
woobe_init_switchery(false);
//***
jQuery(document).scroll(function (e) {
var offset = (jQuery('#tabs').offset().top + 15) - jQuery(document).scrollTop();
if (offset < 0) {
if (!jQuery('#woobe_tools_panel').hasClass('woobe-adv-panel-fixed')) {
jQuery('#woobe_tools_panel').addClass('woobe-adv-panel-fixed');
jQuery('#woobe_tools_panel').css('top', jQuery('#wpadminbar').height() + 'px');
jQuery('#woobe_tools_panel').css('width', (jQuery('#tabs-products').width() - 10) + 'px');
}
} else {
jQuery('#woobe_tools_panel').removeClass('woobe-adv-panel-fixed');
}
});
setTimeout(function () {
jQuery('.dataTables_scrollBody').scrollbar({
autoScrollSize: false,
scrollx: jQuery('.external-scroll_x'),
scrolly: jQuery('.external-scroll_y')
});
//***
jQuery(document).on("tab_switched", {}, function (e, tab_id) {
var allow = ['tabs-products'];
/*
* moved to observer
if (jQuery.inArray(tab_id, allow) > -1) {
jQuery('.external-scroll_wrapper').show();
} else {
jQuery('.external-scroll_wrapper').hide();
}
*/
return true;
});
}, 2000);
//***
jQuery('.shop_manager_visibility').on('click', function () {
var key = jQuery(this).data('key');
var val = 0;
if (jQuery(this).is(':checked')) {
val = 1;
}
jQuery("input[name='woobe_options[fields][" + key + "][shop_manager_visibility]']").val(val);
return true;
});
//+++
//https://stackoverflow.com/questions/123999/how-can-i-tell-if-a-dom-element-is-visible-in-the-current-viewport
//https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
(new window.IntersectionObserver(([entry]) => {
if (entry.isIntersecting) {
//enter
jQuery('.external-scroll_wrapper').show();
return;
}
//leave
jQuery('.external-scroll_wrapper').hide();
}, {
root: null,
threshold: 1.0, // set offset 0.1 means trigger if atleast 10% of element in viewport
})).observe(document.querySelector('#woobe_tools_panel'));
});
})(jQuery);
function woobe_init_advanced_panel() {
//full width button
jQuery('.woobe_tools_panel_full_width_btn').on('click', function () {
if (woobe_tools_panel_full_width === 0) {
woobe_tools_panel_full_width = jQuery('#adminmenuwrap').width();
jQuery('#adminmenuback').hide();
jQuery('#adminmenuwrap').hide();
jQuery('#wpcontent').css('margin-left', '0px');
jQuery(this).addClass('button-primary');
woobe_set_to_storage('woobe_tools_panel_full_width_btn', 1);
} else {
jQuery('#adminmenuback').show();
jQuery('#adminmenuwrap').show();
jQuery('#wpcontent').css('margin-left', woobe_tools_panel_full_width + 'px');
jQuery(this).removeClass('button-primary');
woobe_tools_panel_full_width = 0;
woobe_set_to_storage('woobe_tools_panel_full_width_btn', 0);
}
__trigger_resize();
return false;
});
//***
jQuery('.woobe_tools_panel_profile_btn').on('click', function () {
//jQuery('#woobe_tools_panel_profile_popup .woobe-modal-title').html(jQuery(this).data('name') + ' [' +jQuery(this).data('key') + ']');
jQuery('#woobe_tools_panel_profile_popup').show();
jQuery('#woobe_new_profile').focus();
return false;
});
//***
jQuery('.woobe-modal-close8').on('click', function () {
jQuery('#woobe_tools_panel_profile_popup').hide();
});
//***
woobe_init_profiles();
//***
//creating of new product
jQuery('.woobe_tools_panel_newprod_btn').on('click', function () {
var count = 1;
if (count = prompt(lang.enter_new_count, 1)) {
if (count > 0) {
woobe_message(lang.creating, 'warning');
__woobe_product_new(count, 0);
}
}
return false;
});
//***
jQuery('.woobe_tools_panel_duplicate_btn').on('click', function () {
var products_ids = [];
jQuery('.woobe_product_check').each(function (ii, ch) {
if (jQuery(ch).prop('checked')) {
products_ids.push(jQuery(ch).data('product-id'));
}
});
if (products_ids.length) {
var count = 1;
if (count = prompt(lang.enter_duplicate_count, 1)) {
if (count > 0) {
var products = [];
for (var i = 0; i < count; i++) {
for (var y = 0; y < products_ids.length; y++) {
products.push(products_ids[y]);
}
}
products = products.reverse();
woobe_message(lang.duplicating, 'warning', 99999);
__woobe_product_duplication(products, 0, 0);
}
}
}
return false;
});
//hide or show duplicate button
jQuery('body').on('click', '.woobe_product_check', function (e) {
var product_id = parseInt(jQuery(this).data('product-id'), 10);
//if keep SHIFT button and check product checkbox - possible to select/deselect products rows
if (e.shiftKey) {
if (jQuery(this).prop('checked')) {
var to_check = true;
} else {
var to_check = false;
}
var distance_now = jQuery('#product_row_' + jQuery(this).data('product-id')).offset().top;
var distance_last = jQuery('#product_row_' + woobe_last_checked_product.id).offset().top;
var rows = jQuery('#advanced-table tbody tr');
if (distance_now > distance_last) {
//check/uncheck all above to woobe_last_checked_product.id
jQuery(rows).each(function (index, tr) {
var d = jQuery(tr).offset().top;
if (d < distance_now && d > distance_last) {
jQuery(tr).find('.woobe_product_check').prop('checked', to_check);
}
});
} else {
//check/uncheck all below to woobe_last_checked_product.id
jQuery(rows).each(function (index, tr) {
var d = jQuery(tr).offset().top;
if (d > distance_now && d < distance_last) {
jQuery(tr).find('.woobe_product_check').prop('checked', to_check);
}
});
}
}
//***
if (jQuery(this).prop('checked')) {
woobe_select_row(product_id);
woobe_checked_products.push(product_id);
woobe_last_checked_product.checked = true;
} else {
woobe_select_row(product_id, false);
//woobe_checked_products.splice(woobe_checked_products.indexOf(product_id), 1);
woobe_checked_products = jQuery.grep(woobe_checked_products, function (value) {
return value != product_id;
});
woobe_last_checked_product.checked = false;
}
//***
//push all another checked ids
if (e.shiftKey) {
jQuery(rows).each(function (index, tr) {
var p_id = parseInt(jQuery(tr).data('product-id'), 10);
if (jQuery(tr).find('.woobe_product_check').prop('checked')) {
//console.log(p_id);
woobe_checked_products.push(p_id);
woobe_select_row(p_id);
} else {
//console.log('---' + p_id);
//woobe_checked_products.splice(woobe_checked_products.indexOf(p_id), 1);
for (var i = 0; i < woobe_checked_products.length; i++) {
if (p_id === woobe_checked_products[i]) {
woobe_select_row(woobe_checked_products[i], false);
delete woobe_checked_products[i];
}
}
}
});
}
//***
//remove duplicates if exists and filter values
woobe_checked_products = Array.from(new Set(woobe_checked_products));
woobe_checked_products = woobe_checked_products.filter(function (n) {
return n != undefined;
});
//***
woobe_last_checked_product.id = product_id;
__woobe_action_will_be_applied_to();
__manipulate_by_depend_buttons();
woobe_add_info_top_panel();
});
//***
//check all products
jQuery('.all_products_checker').on('click', function () {
if (woobe_show_variations > 0) {
jQuery('tr .woobe_product_check').trigger('click');
if (jQuery('tr .woobe_product_check:checked').length) {
jQuery(this).prop('checked', 'checked');
}
} else {
//product_type_variation
jQuery('tr:not(.product_type_variation) .woobe_product_check').trigger('click');
if (jQuery('tr:not(.product_type_variation) .woobe_product_check:checked').length) {
jQuery(this).prop('checked', 'checked');
}
}
});
//uncheck all products
jQuery('.woobe_tools_panel_uncheck_all').on('click', function () {
jQuery('.woobe_product_check').prop('checked', false);
jQuery('.all_products_checker').prop('checked', false);
woobe_checked_products = [];
__manipulate_by_depend_buttons();
__woobe_action_will_be_applied_to();
jQuery('.woobe_checked_info').remove();
return false;
});
//***
jQuery('.woobe_tools_panel_delete_btn').on('click', function () {
if (confirm(lang.sure)) {
var products_ids = [];
jQuery('.woobe_product_check').each(function (ii, ch) {
if (jQuery(ch).prop('checked')) {
products_ids.push(jQuery(ch).data('product-id'));
}
});
if (products_ids.length) {
woobe_message(lang.deleting, 'warning', 999999);
__woobe_product_removing(products_ids, 0, 0);
}
}
return false;
});
//***
//another way chosen drop-downs width is 0
setTimeout(function () {
jQuery('.woobe_top_panel').hide();
jQuery('.woobe_top_panel').css('margin-top', '-' + jQuery('.woobe_top_panel').height());
//page loader fade
jQuery(".woobe-admin-preloader").fadeOut("slow");
}, 1000);
//Show/Hide button for filter
jQuery('.woobe_top_panel_btn').on('click', function () {
var _this = this;
jQuery('.woobe_top_panel').slideToggle('slow', function () {
if (jQuery(this).is(':visible')) {
jQuery(_this).html(lang.close_panel);
} else {
jQuery(_this).html(lang.show_panel);
}
});
jQuery(document).trigger("woobe_top_panel_clicked");
return false;
});
jQuery('.woobe_top_panel_btn2').on('click', function (e) {
jQuery('.woobe_top_panel_btn').trigger('click');
return false;
});
//***
jQuery('#js_check_woobe_show_variations').on('check_changed', function () {
woobe_show_variations = parseInt(jQuery(this).val(), 10);
woobe_set_to_storage('woobe_show_variations', woobe_show_variations);
if (woobe_show_variations > 0) {
if (jQuery('tr.product_type_variation').length > 0) {
jQuery('tr.product_type_variation').show();
} else {
data_table.draw('page');
}
jQuery('.not-for-variations').hide();
jQuery('#woobe_show_variations_mode').show();
jQuery('#woobe_show_variations_mode_export').show();
//***
jQuery('#woobe_select_all_vars').show();
} else {
jQuery('tr.product_type_variation').hide();
jQuery('.not-for-variations').show();
woobe_init_js_intab('tabs-bulk');
jQuery('#woobe_show_variations_mode').hide();
jQuery('#woobe_show_variations_mode_export').hide();
//***
//uncheck all checked attributes to avoid confusing with any bulk operation!
if (jQuery('tr.product_type_variation.woobe_selected_row').length > 0) {
jQuery('tr.product_type_variation.woobe_selected_row .woobe_product_check').prop('checked', false);
jQuery('tr.product_type_variation.woobe_selected_row').each(function (index, row) {
var product_id = parseInt(jQuery(row).data('product-id'));
//https://stackoverflow.com/questions/3596089/how-to-remove-specific-value-from-array-using-jquery
woobe_checked_products = jQuery.grep(woobe_checked_products, function (value) {
return value != product_id;
});
});
__manipulate_by_depend_buttons();
__woobe_action_will_be_applied_to();
}
//***
jQuery('#woobe_select_all_vars').hide();
woobe_init_js_intab('tabs-products');
}
//***
jQuery('#tabs-bulk .chosen-select').chosen('destroy');
jQuery('#tabs-bulk .chosen-select').chosen();
jQuery('#tabs-export .chosen-select').chosen('destroy');
jQuery('#tabs-export .chosen-select').chosen();
//***
return true;
});
if (woobe_show_variations > 0) {
jQuery("[data-numcheck='woobe_show_variations']").prop('checked', true);
jQuery('#js_check_woobe_show_variations').prop('value', 1);
}
//***
}
//init special function for variation
function woobe_init_special_variation() {
jQuery("select[data-field='tax_class']").find("option[value='parent']").hide();
jQuery(".product_type_variation select[data-field='tax_class']").find("option[value='parent']").show();
if (woobe_show_variations > 0) {
jQuery('select[name="woobe_bulk[tax_class][value]"]').find("option[value='parent']").show();
} else {
jQuery('select[name="woobe_bulk[tax_class][value]"]').find("option[value='parent']").hide();
}
}
//service
function __woobe_product_new(count, created) {
var step = 10;
var to_create = (created + step) < count ? step : count - created;
var woobe_nonce = jQuery('#woobe_tools_panel_nonce').val();
woobe_message(lang.creating + ' (' + (created + to_create) + ')', 'warning');
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_create_new_product',
to_create: to_create,
woobe_nonce: woobe_nonce
},
success: function () {
if ((created + step) < count) {
created += step;
__woobe_product_new(count, created);
} else {
//https://stackoverflow.com/questions/25929347/how-to-redraw-datatable-with-new-data
//data_table.clear().draw();
woobe_checked_products = [];
__manipulate_by_depend_buttons();
data_table.order([1, 'desc']).draw();
//data_table.draw();
//data_table.rows.add(NewlyCreatedData); // Add new data
//data_table.columns.adjust().draw(); // Redraw the DataTable
woobe_message(lang.created, 'notice');
}
},
error: function () {
alert(lang.error);
}
});
}
//service
var woobe_product_duplication_errors = 0;
function __woobe_product_duplication(products, start, duplicated) {
var step = 2;
var products_ids = products.slice(start, start + step);
var woobe_nonce = jQuery('#woobe_tools_panel_nonce').val();
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_duplicate_products',
products_ids: products_ids,
woobe_nonce: woobe_nonce
},
success: function () {
if ((start + step) > products.length) {
woobe_checked_products = [];
__manipulate_by_depend_buttons();
data_table.draw();
woobe_message(lang.duplicated, 'notice', 99999);
} else {
duplicated += step;
if (duplicated > products.length) {
duplicated = products.length;
}
woobe_message(lang.duplicating + ' (' + (products.length - duplicated) + ')', 'warning', 99999);
__woobe_product_duplication(products, start + step, duplicated);
}
},
error: function () {
woobe_message(lang.error, 'error');
woobe_product_duplication_errors++;
if (woobe_product_duplication_errors > 5) {
alert(lang.error);
woobe_product_duplication_errors = 0;
} else {
//lets try again
__woobe_product_duplication(products, start, duplicated);
}
}
});
}
//service
function __woobe_product_removing(products, start, deleted) {
var step = 10;
var products_ids_portion = products.slice(start, start + step);
var woobe_nonce = jQuery('#woobe_tools_panel_nonce').val();
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_delete_products',
products_ids: products_ids_portion,
woobe_nonce: woobe_nonce
},
success: function () {
if ((start + step) > products.length) {
woobe_checked_products = jQuery(woobe_checked_products).not(products).get();
for (var i = 0; i < products.length; i++) {
if (jQuery('#product_row_' + products[i]).hasClass('product_type_variable')) {
(jQuery('#product_row_' + products[i]).nextAll('tr')).each(function (index, tr) {
if (jQuery(tr).hasClass('product_type_variation')) {
jQuery(tr).remove();
} else {
return false;
}
});
}
jQuery('#product_row_' + products[i]).remove();
}
woobe_message(lang.deleted, 'notice');
__manipulate_by_depend_buttons();
__woobe_action_will_be_applied_to();
} else {
deleted += step;
if (deleted > products.length) {
deleted = products.length;
}
woobe_message(lang.deleting + ' (' + (products.length - deleted) + ')', 'warning');
__woobe_product_removing(products, start + step, deleted);
}
},
error: function () {
alert(lang.error);
}
});
}
//service
function woobe_add_info_top_panel() {
jQuery('.woobe_checked_info').remove();
if (typeof woobe_checked_products != 'undefined' && woobe_checked_products.length) {
var text_info = "<span class='woobe_checked_info'>" + lang.checked_products + ": <b>" + woobe_checked_products.length + "</b></span>";
jQuery('#advanced-table_wrapper').prepend(text_info);
}
}
var __manipulate_by_depend_color_rows_lock = false;
function __manipulate_by_depend_buttons(show = true) {
if (show) {
show = jQuery('.woobe_product_check:checked').length;
}
//***
if (show) {
jQuery('.woobe_tools_panel_duplicate_btn').show();
jQuery('.woobe_tools_panel_delete_btn').show();
} else {
jQuery('.woobe_tools_panel_duplicate_btn').hide();
jQuery('.woobe_tools_panel_delete_btn').hide();
}
//***
if (woobe_checked_products.length) {
jQuery('.woobe_tools_panel_uncheck_all').show();
if (!__manipulate_by_depend_color_rows_lock) {
setTimeout(function () {
for (var i = 0; i < woobe_checked_products.length; i++) {
woobe_select_row(woobe_checked_products[i]);
}
__manipulate_by_depend_color_rows_lock = false;
}, 777);
__manipulate_by_depend_color_rows_lock = true;
}
} else {
jQuery('.woobe_tools_panel_uncheck_all').hide();
jQuery('#advanced-table tr').removeClass('woobe_selected_row');
}
}
function woobe_select_row(product_id, select = true) {
if (select) {
jQuery('#product_row_' + product_id).addClass('woobe_selected_row');
} else {
jQuery('#product_row_' + product_id).removeClass('woobe_selected_row');
}
}
function woobe_init_tips(obj) {
new jQuery.Zebra_Tooltips(obj, {
background_color: '#333',
color: '#FFF'
});
}
function woobe_init_switchery(only_data_table = true, product_id = 0) {
var adv_tbl_id_string = '#advanced-table ';
if (!only_data_table) {
adv_tbl_id_string = '';//initialization switches for options too
}
//reinit only 1 row
if (product_id > 0) {
adv_tbl_id_string = adv_tbl_id_string + '#product_row_' + product_id + ' ';
}
//***
//http://abpetkov.github.io/switchery/
if (typeof Switchery !== 'undefined') {
var elems = Array.prototype.slice.call(document.querySelectorAll(adv_tbl_id_string + '.js-switch'));
elems.forEach(function (ch) {
new Switchery(ch);
//while reinit draws duplicates of switchers
jQuery(ch).parent().find('span.switchery:not(:first)').remove();
});
}
//***
if (jQuery(adv_tbl_id_string + '.js-check-change').length > 0) {
jQuery.each(jQuery(adv_tbl_id_string + '.js-check-change'), function (index, item) {
jQuery(item).off('change');
jQuery(item).on('change',function () {
var state = item.checked.toString();
var numcheck = jQuery(item).data('numcheck');
var trigger_target = jQuery(item).data('trigger-target');
var label = jQuery("*[data-label-numcheck='" + numcheck + "']");
var hidden = jQuery("*[data-hidden-numcheck='" + numcheck + "']");
label.html(jQuery(item).data(state));
jQuery(label).removeClass(jQuery(item).data('class-' + (!(item.checked)).toString()));
jQuery(label).addClass(jQuery(item).data('class-' + state));
var val = jQuery(item).data('val-' + state);
var field_name = jQuery(hidden).attr('name');
jQuery(hidden).val(val);
if (trigger_target.length) {
jQuery(this).trigger("check_changed", [trigger_target, field_name, item.checked, val, numcheck]);
jQuery('#' + trigger_target).trigger("check_changed");//for any single switchers
}
});
});
//***
jQuery("#advanced-table .js-check-change").off('check_changed');
jQuery("#advanced-table .js-check-change").on("check_changed", function (event, trigger_target, field_name, is_checked, val, product_id) {
let nonce = jQuery('#woobe_mainform_nonce').val();
woobe_message(lang.saving, '');
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_update_page_field',
product_id: product_id,
field: field_name,
value: val,
mainform_nonce: nonce
},
success: function () {
jQuery(document).trigger('woobe_page_field_updated', [parseInt(product_id, 10), field_name, val]);
woobe_message(lang.saved, 'notice');
},
error: function () {
alert(lang.error);
}
});
});
}
}
/**************************************************************************/
function woobe_set_progress(id, width) {
if (jQuery('#' + id).length > 0) {
jQuery('#' + id).parents('.woobe_progress').show();
document.getElementById(id).style.width = width + '%';
document.getElementById(id).innerHTML = width.toFixed(2) + '%';
}
}
function woobe_hide_progress(id) {
if (jQuery('#' + id).length > 0) {
woobe_set_progress(id, 0);
jQuery('#' + id).parents('.woobe_progress').hide();
}
}
//attach event for any manipulations with content of the tabs by their id
function woobe_init_js_intab(tab_id) {
jQuery(document).trigger("do_" + tab_id);
jQuery(document).trigger("tab_switched", [tab_id]);
return true;
}
function woobe_get_from_storage(key) {
if (typeof (Storage) !== "undefined") {
return localStorage.getItem(key);
}
return 0;
}
function woobe_set_to_storage(key, value) {
if (typeof (Storage) !== "undefined") {
localStorage.setItem(key, value);
return key;
}
return 0;
}
function woobe_save_form(form, action) {
woobe_message(lang.saving, 'warning');
jQuery('[type=submit]').replaceWith('<img src="' + spinner + '" width="60" alt="" />');
let nonce = jQuery('#woobe_mainform_nonce').val();
var data = {
action: action,
formdata: jQuery(form).serialize(),
mainform_nonce: nonce
};
jQuery.post(ajaxurl, data, function () {
window.location.reload();
});
}
//give info about to which products will be applied bulk edition
function __woobe_action_will_be_applied_to() {
//woobe_action_will_be_applied_to
if (woobe_checked_products.length) {
//high priority
jQuery('.woobe_action_will_be_applied_to').html(lang.action_state_31 + ': ' + woobe_checked_products.length + '. ' + lang.action_state_32);
} else {
if (woobe_filtering_is_going) {
//if there is filtering going
jQuery('.woobe_action_will_be_applied_to').html(lang.action_state_2);
} else {
//no filtering and no checked products
jQuery('.woobe_action_will_be_applied_to').html(lang.action_state_1);
}
}
}
function woobe_get_random_string(len = 16) {
var charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var randomString = '';
for (var i = 0; i < len; i++) {
var randomPoz = Math.floor(Math.random() * charSet.length);
randomString += charSet.substring(randomPoz, randomPoz + 1);
}
return randomString;
}
function __woobe_fill_select(select_id, data, selected = [], level = 0, val_as_slug = false) {
var margin_string = '';
if (level > 0) {
for (var i = 0; i < level; i++) {
margin_string += ' ';
}
}
//***
jQuery(data).each(function (i, d) {
var sel = '';
var val = d.term_id;
if (val_as_slug) {
val = d.slug;
}
//***
if (jQuery.inArray(val, selected) > -1) {
sel = 'selected';
}
jQuery('#' + select_id).append('<option ' + sel + ' value="' + val + '">' + margin_string + d.name + '</option>');
if (d.childs) {
__woobe_fill_select(select_id, d.childs, selected, level + 1, val_as_slug);
}
});
}
function woobe_init_profiles() {
jQuery('#woobe_load_profile').on('change',function () {
var profile_key = jQuery(this).val();
if (profile_key != 0) {
jQuery('#woobe_load_profile_actions').show();
} else {
jQuery('#woobe_load_profile_actions').hide();
}
});
//***
jQuery('#woobe_load_profile_btn').on('click', function () {
var profile_key = jQuery('#woobe_load_profile').val();
jQuery('.woobe-modal-close8').trigger('click');
const nonce = jQuery('#woobe_tools_panel_nonce').val();
if (profile_key != 0) {
woobe_message(lang.loading, 'warning');
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_load_profile',
profile_key: profile_key,
tools_panel_nonce: nonce
},
success: function (answer) {
woobe_message(lang.loading, 'warning');
window.location.reload();
}
});
}
});
//***
jQuery('#woobe_new_profile_btn').on('click', function () {
var profile_title = jQuery('#woobe_new_profile').val();
if (profile_title.length) {
woobe_message(lang.creating, 'warning');
jQuery('#woobe_new_profile').val('');
const nonce = jQuery('#woobe_tools_panel_nonce').val();
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_create_profile',
profile_title: profile_title,
tools_panel_nonce: nonce
},
success: function (key) {
if (parseInt(key, 10) !== -2) {
jQuery('#woobe_load_profile').append('<option selected value="' + key + '">' + profile_title + '</option>');
woobe_message(lang.saved, 'notice');
} else {
alert(lang.free_ver_profiles);
woobe_message('', 'clean');
}
}
});
} else {
woobe_message(lang.fill_up_data, 'warning');
}
});
jQuery('#woobe_new_profile').keydown(function (e) {
if (e.keyCode == 13) {
jQuery('#woobe_new_profile_btn').trigger('click');
}
});
//***
jQuery('.woobe_delete_profile').on('click', function () {
var profile_key = jQuery(this).attr('href');
if (profile_key === '#') {
profile_key = jQuery('#woobe_load_profile').val();
}
if (profile_key == 'default') {
woobe_message(lang.no_deletable, 'warning');
return false;
}
//***
if (confirm(lang.sure)) {
woobe_message(lang.saving, 'warning');
var select = document.getElementById('woobe_load_profile');
select.removeChild(select.querySelector('option[value="' + profile_key + '"]'));
jQuery('.current_profile_disclaimer').remove();
const nonce = jQuery('#woobe_tools_panel_nonce').val();
jQuery.ajax({
method: "POST",
url: ajaxurl,
data: {
action: 'woobe_delete_profile',
profile_key: profile_key,
tools_panel_nonce: nonce
},
success: function (key) {
woobe_message(lang.saved, 'notice');
}
});
}
return false;
});
}
function woobe_disable_bind_editing() {
if (woobe_bind_editing) {
jQuery("[data-numcheck='woobe_bind_editing']").trigger('click');
woobe_bind_editing = 0;
}
}
//service
function __trigger_resize() {
setTimeout(function () {
window.dispatchEvent(new Event('resize'));
}, 10);
}