如何在 Javascript Odoo 10 中扩展 mail.Chatter 小部件
How To Extend mail.Chatter Widget in Javascript Odoo 10
我想在 Odoo 中向 "mail.Chatter" 小部件 (mail/static/src/js/chatter.js) 添加一个新事件 10.so 我想扩展 "mail.Chatter" 小部件。
odoo.define('override_chatter.override_chatter', function (require) {
"use strict";
var Chatter = require('mail.Chatter');
console.log('Chatter', Chatter)
});
但是从控制台,我得到了一些错误。请检查下面。
Chatter function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
如果 wrong.Is 有任何其他方法可以扩展此 "mail.Chatter" 小部件,请纠正我?
在文件 JS chatter.js 中你有 2 个初始化函数。
对于 ChatterComposer
init: function (parent, dataset, options) {
this._super(parent, options);
this.thread_dataset = dataset;
this.suggested_partners = [];
this.options = _.defaults(this.options, {
display_mode: 'textarea',
record_name: false,
is_log: false,
});
if (this.options.is_log) {
this.options.send_text = _t('Log');
}
this.events = _.extend(this.events, {
'click .o_composer_button_full_composer': 'on_open_full_composer',
});
},
对于 Chatter
init: function () {
this._super.apply(this, arguments);
this.model = this.view.dataset.model;
this.res_id = undefined;
this.context = this.options.context || {};
this.dp = new web_utils.DropPrevious();
},
如果我看到你的代码。您尝试使用 ChatterComposer 的初始化参数覆盖 Chatter 的初始化。
这对我有用
odoo.define('override_chatter.override_chatter', function (require) {
"use strict";
var core = require('web.core');
var Chatter = require('mail.Chatter');
var MailThread = core.form_widget_registry.get('mail_thread');
var MailThreadOverride = MailThread.include({
init: function () {
this._super.apply(this, arguments);
},
});
我想在 Odoo 中向 "mail.Chatter" 小部件 (mail/static/src/js/chatter.js) 添加一个新事件 10.so 我想扩展 "mail.Chatter" 小部件。
odoo.define('override_chatter.override_chatter', function (require) {
"use strict";
var Chatter = require('mail.Chatter');
console.log('Chatter', Chatter)
});
但是从控制台,我得到了一些错误。请检查下面。
Chatter function Class(){if(this.constructor!==OdooClass){throw new Error("You can only instanciate objects with the 'new' operator");}
如果 wrong.Is 有任何其他方法可以扩展此 "mail.Chatter" 小部件,请纠正我?
在文件 JS chatter.js 中你有 2 个初始化函数。
对于 ChatterComposer
init: function (parent, dataset, options) {
this._super(parent, options);
this.thread_dataset = dataset;
this.suggested_partners = [];
this.options = _.defaults(this.options, {
display_mode: 'textarea',
record_name: false,
is_log: false,
});
if (this.options.is_log) {
this.options.send_text = _t('Log');
}
this.events = _.extend(this.events, {
'click .o_composer_button_full_composer': 'on_open_full_composer',
});
},
对于 Chatter
init: function () {
this._super.apply(this, arguments);
this.model = this.view.dataset.model;
this.res_id = undefined;
this.context = this.options.context || {};
this.dp = new web_utils.DropPrevious();
},
如果我看到你的代码。您尝试使用 ChatterComposer 的初始化参数覆盖 Chatter 的初始化。
这对我有用
odoo.define('override_chatter.override_chatter', function (require) {
"use strict";
var core = require('web.core');
var Chatter = require('mail.Chatter');
var MailThread = core.form_widget_registry.get('mail_thread');
var MailThreadOverride = MailThread.include({
init: function () {
this._super.apply(this, arguments);
},
});