diff options
| author | Géry Debongnie <ged@odoo.com> | 2014-05-20 10:54:58 +0200 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2014-05-20 10:54:58 +0200 |
| commit | 72f532a4630fd123d0a3fdff1aa621079ede5ffe (patch) | |
| tree | 5bcb8918d030d11fd96cfd1f7f433c617599fd3a /addons/web/static/src | |
| parent | c70df56174be6611bda2a18b14b5145fa365dfe8 (diff) | |
[IMP] hide drawer when switching views (addon web)
the drawer wasn't closed when switching views, which might be a
problem when the user switches to a form view. Also, renames the
variable 'searchview_drawer' to 'drawer'.
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/search.js | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index fa7cc0ce8c0..d9f2a3c5c62 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -340,8 +340,8 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea }, 'click .oe_searchview_unfold_drawer': function (e) { e.stopImmediatePropagation(); - if (this.searchview_drawer) - this.searchview_drawer.toggle(); + if (this.drawer) + this.drawer.toggle(); }, 'keydown .oe_searchview_input, .oe_searchview_facet': function (e) { switch(e.which) { @@ -423,11 +423,19 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea }); } + var view_manager = this.getParent(); + while (!(view_manager instanceof instance.web.ViewManager)) { + view_manager = view_manager.getParent(); + } + view_manager.on('switch_mode', this, function (e) { + self.drawer.hide(); + }) + return $.when(p, this.ready); }, set_drawer: function (drawer) { - this.searchview_drawer = drawer; + this.drawer = drawer; }, show: function () { @@ -522,7 +530,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea * @param {Function} resp response callback */ complete_global_search: function (req, resp) { - $.when.apply(null, _(this.inputs).chain() + $.when.apply(null, _(this.drawer.inputs).chain() .filter(function (input) { return input.visible(); }) .invoke('complete', req.term) .value()).then(function () { @@ -643,14 +651,14 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea // Hacky implementation of CustomFilters#facet_for_defaults ensure // CustomFilters will be ready (and CustomFilters#filters will be // correctly filled) by the time this method executes. - var custom_filters = this.searchview_drawer.custom_filters.filters; + var custom_filters = this.drawer.custom_filters.filters; if (!this.options.disable_custom_filters && !_(custom_filters).isEmpty()) { // Check for any is_default custom filter var personal_filter = _(custom_filters).find(function (filter) { return filter.user_id && filter.is_default; }); if (personal_filter) { - this.searchview_drawer.custom_filters.toggle_filter(personal_filter, true); + this.drawer.custom_filters.toggle_filter(personal_filter, true); return; } @@ -658,7 +666,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea return !filter.user_id && filter.is_default; }); if (global_filter) { - this.searchview_drawer.custom_filters.toggle_filter(global_filter, true); + this.drawer.custom_filters.toggle_filter(global_filter, true); return; } } @@ -787,6 +795,10 @@ instance.web.SearchViewDrawer = instance.web.Widget.extend({ this.$el.toggle(); }, + hide: function () { + this.$el.hide(); + }, + start: function() { var filters_ready = this.searchview.fields_view_get .then(this.proxy('prepare_filters')); |
