summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2014-05-20 10:54:58 +0200
committerGéry Debongnie <ged@odoo.com>2014-05-20 10:54:58 +0200
commit72f532a4630fd123d0a3fdff1aa621079ede5ffe (patch)
tree5bcb8918d030d11fd96cfd1f7f433c617599fd3a /addons/web/static/src
parentc70df56174be6611bda2a18b14b5145fa365dfe8 (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.js26
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'));