2017-10-20 3 views
0

Ich möchte ein neues Ereignis zu "mail.Chatter" Widget (mail/static/src/js/chatter.js) in Odoo 10.so möchte ich erweitern das Widget "mail.Chatter".Wie man mail.Chatter Widget in Javascript ausdehnt Odoo 10

odoo.define('override_chatter.override_chatter', function (require) { 
"use strict"; 

var Chatter = require('mail.Chatter'); 

console.log('Chatter', Chatter) 



}); 

Aber von der Konsole habe ich einen Fehler bekommen. Bitte überprüfen Sie unten.

Bitte korrigieren Sie mich, wenn Sie falsch liegen. Gibt es eine andere Methode, um dieses "mail.Chatter" Widget zu erweitern?

+0

Chatter.extend nur versuchen. da Chatter nur Chatter-Objekt –

+0

@Burmesepythis console.log ('Chatter', Chatter) zurückgibt. Ich erhalte einen Fehler, während Konsole die Chatter-Variable – robinjoseph90

Antwort

1

funktioniert für mich

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

In der Datei JS chatter.js haben Sie 2 Init-Funktion.

Für 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', 
    }); 
}, 

Und für 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(); 
}, 

Und wenn ich den Code zu sehen. Sie versuchen, die Init von Chatter mit den Init-Parametern von ChatterComposer zu überschreiben. Diese

+0

var Chatter = require ('mail.Chatter'); console.log ('Chatter', Chatter) ich trösten die "Chatter". Hier bekomme ich diesen Fehler "Chatter-Funktion Class() {if (this.constructor! == OdooClass) {Neuen Fehler werfen (" Sie können nur Objekte mit dem 'new' Operator "instanciate");} " es ist nichts zu tun mit "init" -Funktion.ich denke. @ jo541 – robinjoseph90

+0

Diese Nachricht ist normalerweise. Sie versuchen, die nicht initialisierte Klasse aufzurufen. – jo541

+0

var Chatter = require ('mail.Chatter'); console.log ('Chatter', Chatter.Chatter). In der Konsole "undefiniert" werden. scheint wie Chatter kann nicht verlängert werden? – robinjoseph90