Я пытаюсь добавить строку кода в созданную функцию JS, но я не могу вставить ее в середине события, пытаясь наследовать функцию.
Например, у меня было эта переменная: var my_new_var = $(this).val().toString();
Это уже определенный код, в котором мне нужно ввести мою новую переменную в словарь params: {}:
odoo.define('portal.signature_form', function (require){
"use strict";
// vars and requires
var SignatureForm = Widget.extend({
template: 'portal.portal_signature',
events: {
'click #o_portal_sign_clear': 'clearSign',
'click .o_portal_sign_submit': 'submitSign',
'init #o_portal_sign_accept': 'initSign',
},
// init sign and clear sign events
submitSign: function (ev) {
ev.preventDefault();
var self = this;
var $confirm_btn = self.$el.find('button[type="submit"]');
var partner_name = self.$("#o_portal_sign_name").val();
var signature = self.$("#o_portal_signature").jSignature('getData', 'image');
var is_empty = signature ? this.empty_sign[1] === signature[1] : true;
this.$('#o_portal_sign_name').parent().toggleClass('o_has_error', !partner_name).find('.form-control, .custom-select').toggleClass('is-invalid', !partner_name);
this.$('#o_portal_sign_draw').toggleClass('bg-danger text-white', is_empty);
if (is_empty || ! partner_name) {
return false;
}
$confirm_btn.prepend('<i class="fa fa-spinner fa-spin"></i> ');
$confirm_btn.attr('disabled', true);
return rpc.query({
route: this.options.callUrl,
params: {
'res_id': this.options.resId,
'access_token': this.options.accessToken,
'partner_name': partner_name,
'signature': signature ? signature[1] : false,
// ****************** HERE I NEED TO ADD MY NEW LINE **************************
'my_new_var': my_new_var,
},
}).then(function (data) {
self.$('.fa-spinner').remove();
if (data.error) {
self.$('.o_portal_sign_error_msg').remove();
$confirm_btn.before(qweb.render('portal.portal_signature_error', {message: data.error}));
$confirm_btn.attr('disabled', false);
}
else if (data.success) {
$confirm_btn.remove();
var $success = qweb.render("portal.portal_signature_success", {widget: data});
self.$('#o_portal_sign_draw').parent().replaceWith($success);
}
if (data.force_refresh) {
if (data.redirect_url) {
window.location = data.redirect_url;
} else {
window.location.reload();
}
}
});
},
...
});
Кто-нибудь знает, как добавить эту новую строку кода?