diff options
| author | Aaron Bohy <aab@odoo.com> | 2017-11-17 13:14:02 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2018-01-16 20:49:19 +0100 |
| commit | 32b8cec5361174c92c45a4975d4e02f1fb448aa2 (patch) | |
| tree | 110bd6986c2da1ed5047002b7ea40c91ea9fa5ed /addons/board/static/src/js/favorite_menu.js | |
| parent | 9bee25a9df65f657fef0f2f32a7ad823fdc7d4e1 (diff) | |
[REF] web,*: ActionManager/ViewManager refactoring
This rev. is the first part (out of 3) of the refactoring of the
ActionManager and ViewManager layer of the webclient.
The main changes are:
- there is no ViewManager anymore, its work is now handled by the
ActionManager itself, but isolated in a specific file ; this
eases a lot of things, as the breadcrumbs handling for example.
- the ActionManager code is converted to the new coding principles
and guidelines ; mainly, children widgets communicate with it by
triggering events up, and not by function calls anymore.
- the ActionManager layer is now testable, and a lot of tests have
already been written.
- the code in other addons has been adapted consequently.
What's coming next:
- introduce the 'AbstractAction' Widget, and make client actions
and view controllers inherit from it ; this widget will
implement a common API that could be used uniformly by the
ActionManager (e.g. restore(), canBeLeft(), renderButtons(),
getTitle()...).
- move the ControlPanel handling from the ActionManager to the
AbstractAction.
Diffstat (limited to 'addons/board/static/src/js/favorite_menu.js')
| -rw-r--r-- | addons/board/static/src/js/favorite_menu.js | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/addons/board/static/src/js/favorite_menu.js b/addons/board/static/src/js/favorite_menu.js index a4d7aa11022..77cd3df4967 100644 --- a/addons/board/static/src/js/favorite_menu.js +++ b/addons/board/static/src/js/favorite_menu.js @@ -7,7 +7,6 @@ var core = require('web.core'); var Domain = require('web.Domain'); var FavoriteMenu = require('web.FavoriteMenu'); var pyeval = require('web.pyeval'); -var ViewManager = require('web.ViewManager'); var _t = core._t; var QWeb = core.qweb; @@ -23,11 +22,7 @@ FavoriteMenu.include({ if(this.action_id === undefined) { return this._super(); } - var am = this.findAncestor(function (a) { - return a instanceof ActionManager; - }); - if (am && am.get_inner_widget() instanceof ViewManager) { - this.view_manager = am.get_inner_widget(); + if (this.action.type === 'ir.actions.act_window') { this.add_to_dashboard_available = true; this.$('.o_favorites_menu').append(QWeb.render('SearchView.addtodashboard')); this.$add_to_dashboard = this.$('.o_add_to_dashboard'); @@ -71,7 +66,13 @@ FavoriteMenu.include({ context.add({ group_by: pyeval.eval('groupbys', search_data.groupbys || []) }); - context.add(this.view_manager.active_view.controller.getContext()); + // AAB: trigger_up an event that will be intercepted by the controller, + // as soon as the controller is the parent of the control panel + var am = this.findAncestor(function (a) { + return a instanceof ActionManager; + }); + var controller = am.getCurrentController(); + context.add(controller.widget.getContext()); var c = pyeval.eval('context', context); for (var k in c) { if (c.hasOwnProperty(k) && /^search_default_/.test(k)) { @@ -88,7 +89,7 @@ FavoriteMenu.include({ action_id: self.action_id || false, context_to_save: c, domain: domain, - view_mode: self.view_manager.active_view.type, + view_mode: controller.viewType, name: name, }, }) |
