"use strict"; var woobe_calculator_current_cell = null; var woobe_calculator_is_drawned = false; jQuery(function ($) { jQuery('.woobe_calculator_operation').val(woobe_get_from_storage('woobe_calculator_operation')); jQuery('.woobe_calculator_how').val(woobe_get_from_storage('woobe_calculator_how')); //*** jQuery('.woobe_calculator_close').on('click', function () { jQuery('#woobe_calculator').hide(99); woobe_calculator_is_drawned = false; return false; }); //*** jQuery(document).on("tab_switched", {}, function (event) { jQuery('.woobe_calculator_btn').hide(); return true; }); jQuery(document).on("data_redraw_done", {}, function (event) { jQuery('.woobe_calculator_btn').hide(); return true; }); jQuery(document).on("woobe_top_panel_clicked", {}, function (event) { jQuery('.woobe_calculator_btn').hide(); return true; }); //*** jQuery(document).on("woobe_onmouseover_num_textinput", {}, function (event, o, colIndex) { woobe_calc_onmouseover_num_textinput(o, colIndex); return true; }); jQuery(document).on("woobe_onmouseout_num_textinput", {}, function (event, o, colIndex) { woobe_calc_onmouseout_num_textinput(o, colIndex); return true; }); //*** jQuery('.woobe_calculator_set').on('click', function () { var val = parseFloat(jQuery('.woobe_calculator_value').val()); if (isNaN(val)) { jQuery('.woobe_calculator_close').trigger('click'); return; } var operation = jQuery('.woobe_calculator_operation').val(); var how = jQuery('.woobe_calculator_how').val(); //*** var cell = woobe_calculator_current_cell;//to avoid mouse over set of another cell whicle ajaxing var product_id = jQuery(cell).data('product-id'); //*** //fix if (jQuery(cell).data('field') !== 'sale_price' && operation == 'rp-') { operation = '+'; } if (jQuery(cell).data('field') !== 'regular_price' && operation == 'sp+') { operation = '+'; } //*** var cell_value = parseFloat(jQuery(cell).html().replace(/\,/g, "")); var bulk_operation = 'invalue'; //*** switch (operation) { case '+': if (how == 'value') { cell_value += val; } else { //% cell_value = cell_value + cell_value * val / 100; bulk_operation = 'inpercent'; } break; case '-': if (how == 'value') { cell_value -= val; bulk_operation = 'devalue'; } else { //% cell_value = cell_value - cell_value * val / 100; bulk_operation = 'depercent'; } break; case 'rp-': cell_value = parseFloat(jQuery('#product_row_' + product_id).find("[data-field='regular_price']").html().replace(/\,/g, "")); if (how == 'value') { cell_value = cell_value - val; bulk_operation = 'devalue_regular_price'; } else { //% cell_value = cell_value - cell_value * val / 100; bulk_operation = 'depercent_regular_price'; } break; case 'sp+': cell_value = parseFloat(jQuery('#product_row_' + product_id).find("[data-field='sale_price']").html().replace(/\,/g, "")); if (how == 'value') { cell_value = cell_value + val; bulk_operation = 'invalue_sale_price'; } else { //% cell_value = cell_value + cell_value * val / 100; bulk_operation = 'inpercent_sale_price'; } break; } //*** woobe_message(lang.saving, ''); let nonce = jQuery('#woobe_mainform_nonce').val(); jQuery.ajax({ method: "POST", url: ajaxurl, data: { action: 'woobe_update_page_field', product_id: product_id, field: jQuery(cell).data('field'), value: cell_value, num_rounding: jQuery('.woobe_num_rounding').eq(0).val(), mainform_nonce: nonce }, success: function (answer) { jQuery(cell).html(answer); woobe_message(lang.saved, 'notice'); //fix for stock_quantity + manage_stock if (!woobe_bind_editing) { if (jQuery(cell).data('field') == 'stock_quantity') { woobe_redraw_table_row(jQuery('#product_row_' + jQuery(cell).data('product-id'))); } } jQuery(document).trigger('woobe_page_field_updated', [jQuery(cell).data('product-id'), jQuery(cell).data('field'), val, bulk_operation]); //jQuery('.woobe_num_rounding').val(0); //woobe_calculator_current_cell = null; }, error: function () { alert(lang.error); } }); jQuery('.woobe_calculator_close').trigger('click'); return false; }); //*** jQuery(".woobe_calculator_value").keydown(function (e) { if (e.keyCode == 13) { jQuery('.woobe_calculator_set').trigger('click'); } if (e.keyCode == 27) { jQuery('.woobe_calculator_close').trigger('click'); } }); jQuery("#woobe_calculator").keydown(function (e) { if (e.keyCode == 27) { jQuery('.woobe_calculator_close').trigger('click'); } }); //*** jQuery('.woobe_calculator_operation').on('change',function () { woobe_set_to_storage('woobe_calculator_operation', jQuery(this).val()); return true; }); jQuery('.woobe_calculator_how').on('change',function () { woobe_set_to_storage('woobe_calculator_how', jQuery(this).val()); return true; }); //*** jQuery('div.dataTables_scrollBody').scroll(function () { jQuery('.woobe_calculator_btn').hide(); }); }); function woobe_calc_onmouseover_num_textinput(_this, colIndex) { if (woobe_calculator_is_drawned) { return; } if (jQuery(_this).find('.info_restricked').length > 0 || jQuery(_this).data('editable-view') !== "textinput") { jQuery('.woobe_calculator_btn').hide(); return; } //*** woobe_calculator_current_cell = _this; jQuery('.woobe_calculator_btn').show(); var rt = (jQuery(window).width() - (jQuery(_this).offset().left + jQuery(_this).outerWidth())); var tt = jQuery(_this).offset().top/* - jQuery(_this).outerHeight() / 2.3*/; jQuery('.woobe_calculator_btn').css({top: tt, right: rt}); return true; } function woobe_draw_calculator() { jQuery('#woobe_calculator').show(); jQuery('#woobe_calculator').css({top: jQuery('.woobe_calculator_btn').css('top'), right: jQuery('.woobe_calculator_btn').css('right')}); jQuery(".woobe_calculator_value").focus(); //if input activated and visible in the cell if (jQuery(woobe_calculator_current_cell).find('input')) { jQuery(woobe_calculator_current_cell).html(jQuery(woobe_calculator_current_cell).find('input').val()); //*** if (jQuery(woobe_calculator_current_cell).data('field') == 'sale_price') { var product_id = jQuery(woobe_calculator_current_cell).data('product-id'); //reqular_price column is enabled if (jQuery('#product_row_' + product_id).find("[data-field='regular_price']").length > 0) { jQuery('.woobe_calc_rp').show(); } else { jQuery('.woobe_calc_rp').hide(); jQuery('.woobe_calculator_operation').val('+'); } } else { jQuery('.woobe_calc_rp').hide(); if (jQuery('.woobe_calculator_operation').val() == 'rp-') { jQuery('.woobe_calculator_operation').val('+'); } } //*** if (jQuery(woobe_calculator_current_cell).data('field') == 'regular_price') { var product_id = jQuery(woobe_calculator_current_cell).data('product-id'); //reqular_price column is enabled if (jQuery('#product_row_' + product_id).find("[data-field='sale_price']").length > 0) { jQuery('.woobe_calc_sp').show(); } else { jQuery('.woobe_calc_sp').hide(); jQuery('.woobe_calculator_operation').val('+'); } } else { jQuery('.woobe_calc_sp').hide(); if (jQuery('.woobe_calculator_operation').val() == 'sp+') { jQuery('.woobe_calculator_operation').val('+'); } } } woobe_calculator_is_drawned = true; return true; } function woobe_calc_onmouseout_num_textinput() { if (woobe_calculator_is_drawned) { //jQuery('.woobe_calculator_btn').hide(); } return true; }