diff --git a/addons/base_import/static/src/legacy/js/import_menu.js b/addons/base_import/static/src/legacy/js/import_menu.js index 011a19abe11..de557592c6f 100644 --- a/addons/base_import/static/src/legacy/js/import_menu.js +++ b/addons/base_import/static/src/legacy/js/import_menu.js @@ -1,18 +1,17 @@ odoo.define('base_import.ImportMenu', function (require) { "use strict"; - const DropdownMenuItem = require('web.DropdownMenuItem'); const FavoriteMenu = require('web.FavoriteMenu'); const { useModel } = require('web.Model'); + const { Component } = owl; + /** * Import Records menu * * This component is used to import the records for particular model. - * - * @extends DropdownMenuItem */ - class ImportMenu extends DropdownMenuItem { + class ImportMenu extends Component { constructor() { super(...arguments); this.model = useModel('searchModel'); @@ -25,7 +24,7 @@ odoo.define('base_import.ImportMenu', function (require) { /** * @private */ - _onImportClick() { + importRecords() { const action = { type: 'ir.actions.client', tag: 'import', @@ -56,7 +55,7 @@ odoo.define('base_import.ImportMenu', function (require) { } ImportMenu.props = {}; - ImportMenu.template = 'base_import.ImportMenu'; + ImportMenu.template = "base_import.ImportRecords"; FavoriteMenu.registry.add('import-menu', ImportMenu, 1); diff --git a/addons/base_import/static/src/legacy/xml/base_import.xml b/addons/base_import/static/src/legacy/xml/base_import.xml index 21d8cdf0d1e..af816a9c8ef 100644 --- a/addons/base_import/static/src/legacy/xml/base_import.xml +++ b/addons/base_import/static/src/legacy/xml/base_import.xml @@ -1,12 +1,4 @@ - - - -
diff --git a/addons/base_import/static/tests/import_buttons_tests.js b/addons/base_import/static/tests/import_buttons_tests.js index 8c7e556802d..e36f6178763 100644 --- a/addons/base_import/static/tests/import_buttons_tests.js +++ b/addons/base_import/static/tests/import_buttons_tests.js @@ -6,12 +6,15 @@ const FormView = require('web.FormView'); const ListView = require('web.ListView'); const PivotView = require('web.PivotView'); const testUtils = require('web.test_utils'); +const FavoriteMenu = require("web.FavoriteMenu"); +const ImportMenu = require("base_import.ImportMenu"); -const cpHelpers = testUtils.controlPanel; +const cpHelpers = require('@web/../tests/search/helpers'); const createView = testUtils.createView; QUnit.module('Base Import Tests', { beforeEach: function () { + FavoriteMenu.registry.add("import-menu", ImportMenu, 1); this.data = { foo: { fields: { @@ -42,7 +45,7 @@ QUnit.test('import in favorite dropdown in list', async function (assert) { await testUtils.dom.click(list.$('.o_favorite_menu button')); assert.containsOnce(list, '.o_import_menu'); - await testUtils.dom.click(list.$('.o_import_menu button')); + await testUtils.dom.click(list.$('.o_import_menu')); list.destroy(); }); @@ -102,7 +105,7 @@ QUnit.test('import in favorite dropdown in kanban', async function (assert) { await testUtils.dom.click(kanban.$('.o_favorite_menu button')); assert.containsOnce(kanban, '.o_import_menu'); - await testUtils.dom.click(kanban.$('.o_import_menu button')); + await testUtils.dom.click(kanban.$('.o_import_menu')); kanban.destroy(); }); @@ -198,8 +201,9 @@ QUnit.test('import should not be available in favorite dropdown in dialog view', item: 'Search More', search: '', }); - await cpHelpers.toggleFavoriteMenu('.modal'); - assert.containsNone(document.querySelector('.modal'), '.o_import_menu', + const modal = document.querySelector('.modal'); + await cpHelpers.toggleFavoriteMenu(modal); + assert.containsNone(modal, '.o_import_menu', "Import menu should not be available"); form.destroy(); diff --git a/addons/board/static/src/legacy/js/add_to_board_menu.js b/addons/board/static/src/legacy/js/add_to_board_menu.js index 42a4a70749b..99d057d9f3d 100644 --- a/addons/board/static/src/legacy/js/add_to_board_menu.js +++ b/addons/board/static/src/legacy/js/add_to_board_menu.js @@ -3,12 +3,11 @@ odoo.define('board.AddToBoardMenu', function (require) { const Context = require('web.Context'); const Domain = require('web.Domain'); - const DropdownMenuItem = require('web.DropdownMenuItem'); const FavoriteMenu = require('web.FavoriteMenu'); const { sprintf } = require('web.utils'); const { useAutofocus } = require('web.custom_hooks'); - const { useState } = owl.hooks; + const { Component, useState } = owl; /** * 'Add to board' menu @@ -21,9 +20,8 @@ odoo.define('board.AddToBoardMenu', function (require) { * properties to the server to add the current view (and its context) to the * user's dashboard. * This component is only available in actions of type 'ir.actions.act_window'. - * @extends DropdownMenuItem */ - class AddToBoardMenu extends DropdownMenuItem { + class AddToBoardMenu extends Component { constructor() { super(...arguments); @@ -46,7 +44,7 @@ odoo.define('board.AddToBoardMenu', function (require) { * information. * @private */ - async _addToBoard() { + async addToBoard() { const searchQuery = this.env.searchModel.get('query'); const context = new Context(this.env.action.context); context.add(searchQuery.context); @@ -116,7 +114,7 @@ odoo.define('board.AddToBoardMenu', function (require) { * @private * @param {KeyboardEvent} ev */ - _onInputKeydown(ev) { + onInputKeydown(ev) { switch (ev.key) { case 'Enter': ev.preventDefault(); @@ -144,7 +142,7 @@ odoo.define('board.AddToBoardMenu', function (require) { } AddToBoardMenu.props = {}; - AddToBoardMenu.template = 'AddToBoardMenu'; + AddToBoardMenu.template = 'board.AddToBoard'; FavoriteMenu.registry.add('add-to-board-menu', AddToBoardMenu, 10); diff --git a/addons/board/static/src/legacy/xml/board.xml b/addons/board/static/src/legacy/xml/board.xml index 306bf590ec0..2a43bf20e12 100644 --- a/addons/board/static/src/legacy/xml/board.xml +++ b/addons/board/static/src/legacy/xml/board.xml @@ -80,28 +80,6 @@