[REF] payment, website_sale: make payment_transaction js code generic
JS code managing transaction creation through acquirer 'Pay Now' form button is improved in order to be less website-sale dependant. It now takes parameters for access token and URL to call in Json. Class used to bind JS is now o_payment_acquirer_button in order to be more generic. eCommerce module is updated accordingly. Future commits will probably make Online Quote (website_quote) use it.
This commit is contained in:
@@ -13,20 +13,20 @@ $(document).ready(function () {
|
||||
var payment_id = $(ev.currentTarget).val() || $(this).data('acquirer');
|
||||
var token = $(ev.currentTarget).data('token') || '';
|
||||
|
||||
$("div.oe_sale_acquirer_button[data-id='"+payment_id+"']", $payment).attr('data-token', token);
|
||||
$("div.o_payment_acquirer_button[data-id='"+payment_id+"']", $payment).attr('data-token', token);
|
||||
$("div.js_payment a.list-group-item").removeClass("list-group-item-info");
|
||||
$('span.js_radio').switchClass(ico_on, ico_off, 0);
|
||||
if (token) {
|
||||
$("div.oe_sale_acquirer_button div.token_hide").hide();
|
||||
$("div.o_payment_acquirer_button div.token_hide").hide();
|
||||
$(ev.currentTarget).find('span.js_radio').switchClass(ico_off, ico_on, 0);
|
||||
$(ev.currentTarget).parents('li').find('input').prop("checked", true);
|
||||
$(ev.currentTarget).addClass("list-group-item-info");
|
||||
}
|
||||
else{
|
||||
$("div.oe_sale_acquirer_button div.token_hide").show();
|
||||
$("div.o_payment_acquirer_button div.token_hide").show();
|
||||
}
|
||||
$("div.oe_sale_acquirer_button[data-id]", $payment).addClass("hidden");
|
||||
$("div.oe_sale_acquirer_button[data-id='"+payment_id+"']", $payment).removeClass("hidden");
|
||||
$("div.o_payment_acquirer_button[data-id]", $payment).addClass("hidden");
|
||||
$("div.o_payment_acquirer_button[data-id='"+payment_id+"']", $payment).removeClass("hidden");
|
||||
|
||||
})
|
||||
.find("input[name='acquirer']:checked").click();
|
||||
@@ -36,18 +36,22 @@ $(document).ready(function () {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
var $form = $(ev.currentTarget).parents('form');
|
||||
var acquirer = $(ev.currentTarget).parents('div.oe_sale_acquirer_button').first();
|
||||
var acquirer_id = acquirer.data('id');
|
||||
var acquirer_token = acquirer.attr('data-token'); // !=data
|
||||
var params = {'tx_type': acquirer.find('input[name="odoo_save_token"]').is(':checked')?'form_save':'form'};
|
||||
if (! acquirer_id) {
|
||||
var acquirer = $(ev.currentTarget).parents('div.o_payment_acquirer_button').first();
|
||||
var tx_data = acquirer.data();
|
||||
if (! tx_data.id || ! tx_data.callUrl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var params = {"tx_type": tx_data.txType || acquirer.find('input[name="odoo_save_token"]').is(':checked') ? 'form_save': 'form'};
|
||||
var acquirer_token = acquirer.attr('data-token'); // !=data
|
||||
if (acquirer_token) {
|
||||
params.token = acquirer_token;
|
||||
}
|
||||
if (tx_data.access_token) {
|
||||
params.access_token = tx_data.access_token;
|
||||
}
|
||||
$form.off('submit');
|
||||
ajax.jsonRpc('/shop/payment/transaction/' + acquirer_id, 'call', params).then(function (data) {
|
||||
ajax.jsonRpc(tx_data.callUrl, 'call', params).then(function (data) {
|
||||
$(data).appendTo('body').submit();
|
||||
});
|
||||
return false;
|
||||
|
||||
@@ -36,7 +36,7 @@ odoo.define('payment_stripe.stripe', function(require) {
|
||||
$(this).attr('disabled','disabled');
|
||||
|
||||
var $form = $(e.currentTarget).parents('form');
|
||||
var acquirer_id = $(e.currentTarget).closest('div.oe_sale_acquirer_button,div.oe_quote_acquirer_button,div.o_website_payment_new_payment');
|
||||
var acquirer_id = $(e.currentTarget).closest('div.o_payment_acquirer_button,div.oe_quote_acquirer_button,div.o_website_payment_new_payment');
|
||||
acquirer_id = acquirer_id.data('id') || acquirer_id.data('acquirer_id');
|
||||
if (! acquirer_id) {
|
||||
return false;
|
||||
|
||||
@@ -86,7 +86,7 @@ tour.register('event_buy_tickets', {
|
||||
{
|
||||
content: "Pay",
|
||||
extra_trigger: '#payment_method label:contains(Wire Transfer) input:checked',
|
||||
trigger: '.oe_sale_acquirer_button .btn[type="submit"]:visible',
|
||||
trigger: '.o_payment_acquirer_button .btn[type="submit"]:visible',
|
||||
},
|
||||
{
|
||||
content: "Last step",
|
||||
|
||||
@@ -5,7 +5,7 @@ $(document).ready(function () {
|
||||
// If option is enable
|
||||
if ($("#checkbox_cgv").length) {
|
||||
$("#checkbox_cgv").click(function() {
|
||||
$("div.oe_sale_acquirer_button").find('input, button').prop("disabled", !this.checked);
|
||||
$("div.o_payment_acquirer_button").find('input, button').prop("disabled", !this.checked);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -71,7 +71,7 @@ tour.register('shop_buy_product', {
|
||||
{
|
||||
content: "Pay Now",
|
||||
extra_trigger: '#payment_method label:contains("Wire Transfer") input:checked',
|
||||
trigger: '.oe_sale_acquirer_button .btn[type="submit"]:visible',
|
||||
trigger: '.o_payment_acquirer_button .btn[type="submit"]:visible',
|
||||
},
|
||||
{
|
||||
content: "finish",
|
||||
|
||||
@@ -1424,7 +1424,9 @@
|
||||
</div>
|
||||
<div class="col-lg-5 col-sm-4 text-right">
|
||||
<t t-foreach="acquirers or []" t-as="acquirer" id="acquirers_list">
|
||||
<div t-att-data-id="acquirer.id" class="oe_sale_acquirer_button hidden pull-right">
|
||||
<div class="o_payment_acquirer_button hidden pull-right"
|
||||
t-att-data-id="acquirer.id"
|
||||
t-att-data-call-url="'/shop/payment/transaction/%s' % (acquirer.id)">
|
||||
<div t-raw="acquirer.button" />
|
||||
<div class="token_hide">
|
||||
<div t-if="acquirer.save_token == 'ask'">
|
||||
|
||||
Reference in New Issue
Block a user