I have modified a js function of odoo website. The code looks like below -
odoo.define('website_custom_menu.menu_custom', function (require) {
'use strict';
require('website.contentMenu');
var EditMenuDialog = require('website.contentMenu').EditMenuDialog;
EditMenuDialog.include({
start: function () {
this._super();
var r = this._super.apply(this, arguments);
this.$('.oe_menu_editor').nestedSortable({
listType: 'ul',
handle: 'div',
items: 'li',
maxLevels: 4,
toleranceElement: '> div',
forcePlaceholderSize: true,
opacity: 0.6,
placeholder: 'oe_menu_placeholder',
tolerance: 'pointer',
attribute: 'data-menu-id',
expression: '()(.+)'
});
return r;
}
});
});
This modifies the website menu editor. Where it can be edited to put four levels of submenus. But this throws an error on the consloe.
It says "Failed Module" while loading it. And after some debugging on the console I found following error:
TypeError: Cannot read property 'include' of undefined at website.assets_editor.js:191 at process_job (web.assets_common.js:2994) at Object.process_jobs (web.assets_common.js:3000) at $.when.then.job.rejected (web.assets_common.js:2995) at web.assets_common.js:547 at fire (web.assets_common.js:541) at Object.add as done at Array. (web.assets_common.js:547) at Function.each (web.assets_common.js:370) at Object. (web.assets_common.js:547)
How do I fix that and what causes this? I have seen other modules and they have done it in the same way.
TBN: The module has the website module as dependency and the js file is added in the assets.