Skip to Content
Menu
This question has been flagged
3 Replies
4717 Views

Hello,

In Odoo 15, we were overriding a JavaScript function of the web_editor module.



odoo.define('isha_crm.ShowCodeView', function (require) {
"use strict";
var FieldHtml = require('web_editor.field. html'); //it is web_editor.field[dot]html
var fieldRegistry=require('web.field_registry');
alert('Js module registered');
FieldHtml.include({
_onLoadWysiwyg: function () {
alert("This alert was coming in Odoo 15. But not coming now in Odoo 16.");
///My code...
}
});
fieldRegistry.add('html', FieldHtml);
});

The above code was working fine in Odoo 15. But not in Odoo 16.

I am not getting this alert :

alert("This alert was coming in Odoo 15. But not coming now in Odoo 16.");





I tried using the Odoo 16 JavaScript as below :



/** @odoo-module */
import {NewFieldHTML} from '@web_editor/js/backend/field_html';
import {fieldRegistry} from '@web/legacy/js/fields/registry';

export class TemplateFieldHTML extends NewFieldHTML {

setup() {
super.setup();
alert("inside super")
}
_onLoadWysiwyg() {
alert("inside overridden function")
 
}

}
fieldRegistry.add('template_field_html', TemplateFieldHTML); 

The above code says :

Missing dependencies: "@web/legacy/js/fields/registry"


Avatar
Discard
Best Answer

Hello Varun,
can you user like this:
import fieldRegistry from 'web.field_registry';
import { FieldHtml } from 'web_editor.field.html'
const TemplateFieldHTML = FieldHtml.extend({
 _onLoadWysiwyg() {
}

});
fieldRegistry.add('template_field_html', TemplateFieldHTML);

Note: please use widget='template_field_html' in your field

Avatar
Discard
Best Answer

you can try this way
import fieldRegistry from 'web.field_registry';
import { FieldHtml } from 'web_editor.field.html'
const TemplateFieldHTML = FieldHtml.extend({
 _onLoadWysiwyg() {
}

});
fieldRegistry.add('template_field_html', TemplateFieldHTML);

note: please use widget='template_field_html' in your field

Avatar
Discard
Author Best Answer

Hello Dilip Patel,

Thank you. I used the code shared by you, as below :

/** @odoo-module */
import { fieldRegistry } from 'web.field_registry';
import { FieldHtml } from 'web_editor.field.html';
alert("registering method");
const TemplateFieldHTML = FieldHtml.extend({
​_onLoadWysiwyg() {
​alert("inside method");
​var $button = this._renderTranslateButton();
​}
});
fieldRegistry.add('template_field_html', TemplateFieldHTML);


Unfortunately, It's not displaying alert("inside method"); 








Avatar
Discard
Related Posts Replies Views Activity
0
Jan 25
756
2
Jul 24
4743
1
Apr 24
1811
0
Jan 24
1422
0
Jan 24
1478