2017-10-20 37 views
0

我想添加一個新事件 「mail.Chatter」 窗口小部件(郵件/靜態/ src目錄/ JS/chatter.js)在Odoo 10.so我想延長「mail.Chatter」小部件。如何擴展mail.Chatter的Widget在Javascript Odoo 10

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");} 

請糾正我,如果我錯了。是否有任何其他方法來擴展此「mail.Chatter」小部件?

+0

只嘗試Chatter.extend。因爲Chatter只返回聊天對象 –

+0

@Burmesepy這是console.log('Chatter',Chatter)。我在控制Chatter變量時出現錯誤 – robinjoseph90

回答

1

這對我的作品

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); 

    }, 

}); 
0

在文件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', 
    }); 
}, 

而對於顫振

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(); 
}, 

如果我看到你的代碼。您嘗試覆蓋Chatter初始化ChatterComposer的init參數。

+0

var Chatter = require('mail.Chatter'); 的console.log( '顫振',顫振) 我安慰 「顫振」。在這裏,我得到這個錯誤「(你可以用「新」運營商只是實例化對象「);}」顫振功能類(){{IF拋出新的錯誤(this.constructor == OdooClass!)」 它無關用「初始化」函數。我想。 @ jo541 – robinjoseph90

+0

此消息正常。您嘗試調用未初始化的類。 – jo541

+0

var Chatter = require('mail.Chatter'); console.log('Chatter',Chatter.Chatter)。在控制檯中獲取「未定義」。似乎Chatter無法擴展? – robinjoseph90