405 lines
16 KiB
JavaScript
405 lines
16 KiB
JavaScript
jQuery(document).ready(function ($) {
|
|
var $superFirstInput = $('#woocommerce_przelewy24_p24_paymethods_super_first');
|
|
|
|
function getBanksList() {
|
|
var banksList = [];
|
|
$('#woocommerce_przelewy24_p24_paymethods_all option').each(function () {
|
|
if (parseInt($(this).val()) > 0) {
|
|
banksList.push({id: $(this).val(), name: $(this).text()});
|
|
}
|
|
});
|
|
|
|
if (banksList.length == 0) {
|
|
banksList.push({id: 25, name: ""});
|
|
banksList.push({id: 31, name: ""});
|
|
banksList.push({id: 112, name: ""});
|
|
banksList.push({id: 20, name: ""});
|
|
banksList.push({id: 65, name: ""});
|
|
}
|
|
return banksList;
|
|
}
|
|
|
|
var getStyleForBank = function(id) {
|
|
var $row = $('#p24-hidden-bank-icon-list tr.js-bank-id-' + id);
|
|
var css = '';
|
|
if ($row.length) {
|
|
var url = $row.find('td.js-icon-type-mobile').text();
|
|
css = 'style="background-image: url(' + url + ')"';
|
|
}
|
|
return css;
|
|
};
|
|
|
|
function getSuperBankBox(id, name) {
|
|
if (name == undefined) name = '';
|
|
var css = getStyleForBank(id);
|
|
return '<a id="p24-admin-super-bank-' + id + '" class="bank-box" data-super-id="' + id + '"><div class="bank-logo" ' + css + '></div><div class="bank-name">' + name + '</div></a>';
|
|
}
|
|
|
|
function getBankBox(id, name) {
|
|
if (name == undefined) name = '';
|
|
var css = getStyleForBank(id);
|
|
return '<a class="bank-box" data-id="' + id + '"><div class="bank-logo" ' + css + '></div><div class="bank-name">' + name + '</div></a>';
|
|
}
|
|
|
|
function toggleSomething(toggle, selector) {
|
|
if (toggle) {
|
|
$(selector).show();
|
|
} else {
|
|
$(selector).hide();
|
|
}
|
|
}
|
|
|
|
function updateSuperPaymethods() {
|
|
var sizeLimit = 5;
|
|
var $availableBoxField = $('.paymethod .super-available')
|
|
var $boxes = $('.paymethod .super-selected a.bank-box');
|
|
var set = [];
|
|
$boxes.each(function (idx, box) {
|
|
var $box = $(box);
|
|
if (idx < sizeLimit) {
|
|
set.push($box.data('superId'));
|
|
} else {
|
|
$availableBoxField.prepend($box);
|
|
}
|
|
});
|
|
|
|
$superFirstInput.val(set.join(','));
|
|
}
|
|
|
|
function updatePaymethods() {
|
|
$('.bank-box').removeClass('ui-helper-unrotate');
|
|
var maxNo = parseInt($('.paymethod .selected').attr('data-max'));
|
|
if (maxNo > 0) {
|
|
if ($('.paymethod .selected a[data-id]').length > maxNo) {
|
|
var i = 0;
|
|
$('.paymethod .selected a[data-id]').each(function () {
|
|
i++;
|
|
if (i > maxNo) {
|
|
$('.paymethod .available')
|
|
.prepend($(this))
|
|
.append($('#clear'));
|
|
}
|
|
});
|
|
}
|
|
}
|
|
$('#woocommerce_przelewy24_p24_paymethods_first').val('');
|
|
$('.paymethod .selected a[data-id]').each(function () {
|
|
$('#woocommerce_przelewy24_p24_paymethods_first').val(
|
|
$('#woocommerce_przelewy24_p24_paymethods_first').val() +
|
|
($('#woocommerce_przelewy24_p24_paymethods_first').val().length ? ',' : '') +
|
|
$(this).attr('data-id')
|
|
);
|
|
});
|
|
$('#woocommerce_przelewy24_p24_paymethods_second').val('');
|
|
$('.paymethod .available a[data-id]').each(function () {
|
|
$('#woocommerce_przelewy24_p24_paymethods_second').val(
|
|
$('#woocommerce_przelewy24_p24_paymethods_second').val() +
|
|
($('#woocommerce_przelewy24_p24_paymethods_second').val().length ? ',' : '') +
|
|
$(this).attr('data-id')
|
|
);
|
|
});
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
|
|
$superFirstInput.hide();
|
|
$('#woocommerce_przelewy24_p24_paymethods_first').hide();
|
|
$('#woocommerce_przelewy24_p24_paymethods_second').closest('tr').hide();
|
|
$('#woocommerce_przelewy24_p24_paymethods_all').closest('tr').hide();
|
|
|
|
if ($('#woocommerce_przelewy24_p24_paymethods_all option[value=266]').length) {
|
|
$('#woocommerce_przelewy24_p24_add_to_alternative_method').closest('tr').show();
|
|
$('#woocommerce_przelewy24_p24_custom_promote_p24').closest('tr').show();
|
|
} else {
|
|
$('#woocommerce_przelewy24_p24_add_to_alternative_method').closest('tr').hide();
|
|
$('#woocommerce_przelewy24_p24_custom_promote_p24').closest('tr').hide();
|
|
}
|
|
|
|
$superFirstInput.closest('td').append(
|
|
'<div class="paymethod" id="p24-admin-config-methods-checkout">' +
|
|
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg3 + '</div>' +
|
|
'<div class="sortable super-selected" style="width: 730px; border: 5px dashed lightgray; height: 80px; padding: 0.5em; overflow: hidden;"></div>' +
|
|
'<div style="clear:both"></div>' +
|
|
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg4 + '</div>' +
|
|
'<div class="sortable super-available"></div>' +
|
|
'</div>' +
|
|
''
|
|
);
|
|
|
|
var $superSelected = $('.paymethod .super-selected');
|
|
var $superAvailable = $('.paymethod .super-available');
|
|
|
|
$('#woocommerce_przelewy24_p24_paymethods_first').closest('td').append(
|
|
'<div class="paymethod" id="p24-admin-config-methods-confirmation">' +
|
|
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg1 + '</div>' +
|
|
'<div class="sortable selected" data-max="5" style="width: 730px; border: 5px dashed lightgray; height: 80px; padding: 0.5em; overflow: hidden;"></div>' +
|
|
'<div style="clear:both"></div>' +
|
|
'<div style="margin: 0.5em 0">' + p24_payment_script_vars.php_msg2 + '</div>' +
|
|
'<div class="sortable available"></div>' +
|
|
'</div>' +
|
|
''
|
|
);
|
|
|
|
$('#woocommerce_przelewy24_p24_show_methods_checkout').change(function () {
|
|
var showed = $(this).is(':checked');
|
|
toggleSomething(showed, $('#p24-admin-config-methods-checkout').closest('tr'));
|
|
}).trigger('change');
|
|
|
|
$('#woocommerce_przelewy24_p24_show_methods_confirmation').change(function () {
|
|
var showed = $(this).is(':checked');
|
|
toggleSomething(showed, $('#p24-admin-config-methods-confirmation').closest('tr'));
|
|
toggleSomething(showed, $('#woocommerce_przelewy24_p24_graphics').closest('tr'));
|
|
toggleSomething(showed, $('#woocommerce_przelewy24_p24_acceptinshop').closest('tr'));
|
|
}).trigger('change');
|
|
|
|
$.each(getBanksList(), function () {
|
|
$superAvailable.append(getSuperBankBox(this.id, this.name));
|
|
$('.sortable.available').append(getBankBox(this.id, this.name));
|
|
});
|
|
$superAvailable.append('<div style="clear:both" id="super-clear"></div>');
|
|
$('.sortable.available').append('<div style="clear:both" id="clear"></div>');
|
|
|
|
$superFirstInput.val().split(',').forEach(function (val) {
|
|
$('#p24-admin-super-bank-' + val).appendTo($superSelected);
|
|
});
|
|
|
|
if ($('#woocommerce_przelewy24_p24_paymethods_first').val().length > 0) {
|
|
$.each($('#woocommerce_przelewy24_p24_paymethods_first').val().split(','), function (i, v) {
|
|
$('.bank-box[data-id=' + v + ']').appendTo('.paymethod .selected');
|
|
});
|
|
}
|
|
if ($('#woocommerce_przelewy24_p24_paymethods_second').val().length > 0) {
|
|
$.each($('#woocommerce_przelewy24_p24_paymethods_second').val().split(',').reverse(), function (i, v) {
|
|
$('.bank-box[data-id=' + v + ']').prependTo('.paymethod .available');
|
|
});
|
|
}
|
|
updateSuperPaymethods();
|
|
updatePaymethods();
|
|
|
|
$('.sortable.super-selected, .sortable.super-available').sortable({
|
|
connectWith: '.sortable.super-selected, .sortable.super-available',
|
|
placeholder: "bank-box bank-placeholder",
|
|
stop: function () {
|
|
updateSuperPaymethods();
|
|
updateIfP24NOW();
|
|
},
|
|
revert: true,
|
|
start: function (e, ui) {
|
|
window.setTimeout(function () {
|
|
$('.bank-box.ui-sortable-helper').on('mouseup', function () {
|
|
$(this).addClass('ui-helper-unrotate');
|
|
});
|
|
}, 100);
|
|
},
|
|
}).disableSelection();
|
|
|
|
$(".sortable.selected,.sortable.available").sortable({
|
|
connectWith: ".sortable.selected,.sortable.available",
|
|
placeholder: "bank-box bank-placeholder",
|
|
stop: function () {
|
|
updatePaymethods();
|
|
},
|
|
revert: true,
|
|
start: function (e, ui) {
|
|
window.setTimeout(function () {
|
|
$('.bank-box.ui-sortable-helper').on('mouseup', function () {
|
|
$(this).addClass('ui-helper-unrotate');
|
|
});
|
|
}, 100);
|
|
},
|
|
}).disableSelection();
|
|
|
|
if ($('#p24_no_api_key_provided').length) {
|
|
$('#woocommerce_przelewy24_p24_oneclick,#woocommerce_przelewy24_p24_payinshop,#woocommerce_przelewy24_p24_acceptinshop,#woocommerce_przelewy24_p24_paymethods,#woocommerce_przelewy24_p24_graphics,#woocommerce_przelewy24_p24_paymethods_first,#woocommerce_przelewy24_p24_paymethods_second').closest('tr').hide();
|
|
}
|
|
});
|
|
});
|
|
|
|
(function( $ ) {
|
|
/* Activate automatic admin change currency selector. */
|
|
$( function () {
|
|
$( '.js_currency_admin_selector' ).on( 'change', function () {
|
|
var val, data, nonce;
|
|
val = $( this ).val();
|
|
nonce = $( '#p24_nonce' ).val();
|
|
if ( ! nonce ) {
|
|
/* Fallback for situations the id cannot be set. */
|
|
nonce = $( '.js-p24-alt-nonce' ).val();
|
|
}
|
|
data = {
|
|
action: 'p24_change_currency',
|
|
p24_action_type_field: 'change_currency',
|
|
p24_nonce: nonce,
|
|
p24_currency: val
|
|
};
|
|
$.post( ajaxurl, data, function () {
|
|
$('form').each(function (idx, form) {
|
|
form.reset();
|
|
});
|
|
|
|
location.reload() ;
|
|
});
|
|
});
|
|
});
|
|
|
|
})( jQuery );
|
|
|
|
(function( $ ) {
|
|
$( function () {
|
|
var $cb = $('#woocommerce_przelewy24_p24_use_special_status');
|
|
var $sPending = $('#woocommerce_przelewy24_p24_custom_pending_status');
|
|
var $o1stPenging = $sPending.find('option').first();
|
|
var $sProcessing = $('#woocommerce_przelewy24_p24_custom_processing_status');
|
|
var $o1stProcessing = $sProcessing.find('option').first();
|
|
|
|
var labelProcessingEnOrg = 'Processing';
|
|
var labelProcessingEnP24 = 'Paid by P24';
|
|
var labelProcessingPlOrg = 'W trakcie realizacji';
|
|
var labelProcessingPlP24 = 'Opłacone przez P24';
|
|
|
|
var addSuffix = function($opt) {
|
|
var existing = $opt.text();
|
|
if (labelProcessingEnOrg === existing) {
|
|
$opt.text(labelProcessingEnP24);
|
|
} else if (labelProcessingPlOrg === existing) {
|
|
$opt.text(labelProcessingPlP24);
|
|
} else {
|
|
$opt.text($opt.text() + ' P24');
|
|
}
|
|
};
|
|
|
|
var dropSuffix = function($opt) {
|
|
var existing = $opt.text();
|
|
console.log(existing);
|
|
if (labelProcessingEnP24 === existing) {
|
|
$opt.text(labelProcessingEnOrg);
|
|
} else if (labelProcessingPlP24 === existing) {
|
|
$opt.text(labelProcessingPlOrg);
|
|
} else {
|
|
var rx = /(.+)\sP24/;
|
|
$opt.text(rx.test(existing) ? rx.exec(existing)[1] : existing);
|
|
}
|
|
};
|
|
|
|
$cb.on('change', function () {
|
|
if ($cb.prop('checked')) {
|
|
$sProcessing.prop('disabled', false);
|
|
addSuffix($o1stProcessing);
|
|
$sPending.prop('disabled', false);
|
|
addSuffix($o1stPenging);
|
|
} else {
|
|
$sProcessing.val('').prop('disabled', true);
|
|
dropSuffix($o1stProcessing);
|
|
$sPending.val('').prop('disabled', true);
|
|
dropSuffix($o1stPenging);
|
|
}
|
|
});
|
|
|
|
$cb.trigger('change');
|
|
});
|
|
})( jQuery );
|
|
|
|
(function( $ ) {
|
|
$( function () {
|
|
var $btn_check_config = $('#p24-btn-additional .js-check-config');
|
|
$btn_check_config.on('click', function () {
|
|
var params = {
|
|
url: $btn_check_config.data('url'),
|
|
type: 'POST',
|
|
data: {
|
|
merchant_id: $('#woocommerce_przelewy24_merchant_id').val(),
|
|
shop_id: $('#woocommerce_przelewy24_shop_id').val(),
|
|
mode: $('#woocommerce_przelewy24_p24_testmod').val(),
|
|
crc_key: $('#woocommerce_przelewy24_CRC_key').val(),
|
|
api_key: $('#woocommerce_przelewy24_p24_api').val()
|
|
}
|
|
};
|
|
$.ajax(params).done(function (msg) {
|
|
msg = msg.toString();
|
|
var $descriptions = $('#p24-check-config-descriptions dialog');
|
|
var found = null;
|
|
$descriptions.each(function (idx, elm) {
|
|
if (found) {
|
|
return;
|
|
}
|
|
var $elm = $(elm);
|
|
var code = $elm.data('errorCode').toString();
|
|
if (code === msg) {
|
|
found = elm;
|
|
}
|
|
})
|
|
if (found) {
|
|
found.showModal();
|
|
}
|
|
});
|
|
});
|
|
});
|
|
})( jQuery );
|
|
|
|
// --- changes below associated with p24 now
|
|
|
|
/**
|
|
* Update sortable based on checkbox
|
|
*/
|
|
function togglePromotedP24NOW() {
|
|
$p24nowBox = jQuery("#p24-admin-super-bank-266");
|
|
$p24nowBox.remove();
|
|
$idValuesHolder = jQuery("#woocommerce_przelewy24_p24_paymethods_super_first");
|
|
if (jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").is(':checked')) {
|
|
jQuery(".super-selected").append($p24nowBox);
|
|
addP24ToPromoted();
|
|
} else if(jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").is(':not(:checked)')){
|
|
jQuery(".super-available").append($p24nowBox);
|
|
removeP24FromPromoted()
|
|
}
|
|
jQuery('.paymethod .super-selected, .paymethod .super-available').sortable( "refreshPositions" );
|
|
}
|
|
|
|
/* promote if added to be */
|
|
jQuery(document).ready(function () {
|
|
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").click(togglePromotedP24NOW);
|
|
});
|
|
|
|
// /* promote if added */
|
|
jQuery(document).ready(function () {
|
|
jQuery("#woocommerce_przelewy24_p24_paymethods_super_first").change(function () {
|
|
console.log('woocommerce_przelewy24_p24_paymethods_super_first changed');
|
|
if(jQuery('.super-selected').find("#p24-admin-super-bank-266").length > 0){
|
|
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").prop('checked', true);
|
|
}else if(jQuery('.super-selected').find("#p24-admin-super-bank-266").length === 0){
|
|
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method").prop('checked', false);
|
|
}
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Check checkbox based on sortable change
|
|
*/
|
|
function updateIfP24NOW() {
|
|
jQuery("#woocommerce_przelewy24_p24_add_to_alternative_method")
|
|
.prop('checked', (jQuery('.super-selected').find("#p24-admin-super-bank-266").length > 0));
|
|
}
|
|
|
|
function addP24ToPromoted(){
|
|
jQuery('#woocommerce_przelewy24_p24_paymethods_super_first').val(function () {
|
|
let values = jQuery('#woocommerce_przelewy24_p24_paymethods_super_first')
|
|
.val()
|
|
.split(',');
|
|
values.push('266');
|
|
return values.join(',');
|
|
});
|
|
}
|
|
|
|
function removeP24FromPromoted(){
|
|
jQuery('#woocommerce_przelewy24_p24_paymethods_super_first').val(function () {
|
|
let values = jQuery('#woocommerce_przelewy24_p24_paymethods_super_first')
|
|
.val()
|
|
.split(',');
|
|
const index = values.indexOf('266');
|
|
if (index > -1) {
|
|
values.splice(index, 1);
|
|
}
|
|
return values.join(',');
|
|
});
|
|
}
|