diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index c4627efc605..2859c30b3e5 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -387,7 +387,8 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea this.filter_menu = undefined; this.groupby_menu = undefined; - this.favorite_menu = undefined + this.favorite_menu = undefined; + this.action_id = this.options && this.options.action && this.options.action.id; }, start: function() { if (this.headless) { @@ -423,7 +424,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea this.groupby_menu = new my.GroupByMenu(this, this.groupbys, fields_def); this.filter_menu = new my.FilterMenu(this, this.filters, fields_def); - this.favorite_menu = new my.FavoriteMenu(this, this.query, this.dataset.model); + this.favorite_menu = new my.FavoriteMenu(this, this.query, this.dataset.model, this.action_id); this.filter_menu.appendTo(this.$buttons); this.groupby_menu.appendTo(this.$buttons); @@ -1581,7 +1582,7 @@ instance.web.search.FavoriteMenu = instance.web.Widget.extend({ this.close_menus(); }, }, - init: function (parent, query, target_model) { + init: function (parent, query, target_model, action_id) { this._super.apply(this,arguments); this.searchview = parent; this.query = query; @@ -1589,8 +1590,7 @@ instance.web.search.FavoriteMenu = instance.web.Widget.extend({ this.model = new instance.web.Model('ir.filters'); this.filters = {}; this.$filters = {}; - var action = instance.client.action_manager.inner_action; - this.action_id = action && action.id; + this.action_id = action_id; }, start: function () { var self = this; diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 1c41b043bf4..35c424ceb9f 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -786,6 +786,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ hidden: this.flags.search_view === false, disable_custom_filters: this.flags.search_disable_custom_filters, $buttons: this.$('.oe-search-options'), + action: this.action, }; var SearchView = instance.web.SearchView; this.searchview = new SearchView(this, this.dataset, view_id, search_defaults, options); diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js index d5d2eedf74f..5ec460873f8 100644 --- a/addons/web/static/test/search.js +++ b/addons/web/static/test/search.js @@ -1228,7 +1228,7 @@ openerp.testing.section('search.filters.saved', { templates: true }, function (test) { test('checkboxing', {asserts: 6}, function (instance, $fix, mock) { - var view = makeSearchView(instance); + var view = makeSearchView(instance, undefined, undefined, {action: {id: 1}}); mock('ir.filters:get_filters', function () { return [{ name: "filter name", user_id: 42 }]; }); @@ -1266,7 +1266,7 @@ openerp.testing.section('search.filters.saved', { }); }); test('toggling', {asserts: 2}, function (instance, $fix, mock) { - var view = makeSearchView(instance); + var view = makeSearchView(instance, undefined, undefined, {action: {id: 1}}); mock('ir.filters:get_filters', function () { return [{name: 'filter name', user_id: 42, id: 1}]; }); @@ -1280,7 +1280,7 @@ openerp.testing.section('search.filters.saved', { }); }); test('replacement', {asserts: 4}, function (instance, $fix, mock) { - var view = makeSearchView(instance); + var view = makeSearchView(instance, undefined, undefined, {action: {id: 1}}); mock('ir.filters:get_filters', function () { return [ {name: 'f', user_id: 42, id: 1, context: {'private': 1}},