Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
4500 Widoki

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"


Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
Autor Najlepsza odpowiedź

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








Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
0
sty 25
569
2
lip 24
4420
1
kwi 24
1584
0
sty 24
1155
0
sty 24
1289