From 836dfa6aa8b8abd62c16abb86ea04cdd0d76a932 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 3 May 2012 13:56:08 +0200 Subject: [PATCH] [IMP] move responsibility for facet removal (on click) to the facet's view, use Model#destroy for facet removal instead of a convoluted route through SearchView#query bzr revid: xmo@openerp.com-20120503115608-7dwyj5j9mq82gv73 --- addons/web/static/src/js/search.js | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 6842571c5f7..2227aa52465 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -149,7 +149,8 @@ my.FacetView = instance.web.Widget.extend({ var self = this; this.$element.on('click', function (e) { if ($(e.target).is('.oe_facet_remove')) { - return; + self.model.destroy(); + return false; } self.$element.focus(); e.stopPropagation(); @@ -159,8 +160,7 @@ my.FacetView = instance.web.Widget.extend({ switch (e.which) { case keys.BACKSPACE: case keys.DELETE: - self.getParent().query.remove( - self.model, {trigger_search: true}); + self.model.destroy(); return false; } }); @@ -233,14 +233,8 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea this.setup_global_completion(); this.query = new my.SearchQuery() - .on('add change reset', this.proxy('do_search')) - .on('add change reset', this.proxy('renderFacets')) - .on('remove', function (record, collection, options) { - self.renderFacets(); - if (options.trigger_search) { - self.do_search(); - } - }); + .on('add change reset remove', this.proxy('do_search')) + .on('add change reset remove', this.proxy('renderFacets')); if (this.hidden) { this.$element.hide(); @@ -269,15 +263,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea e.stopImmediatePropagation(); self.$element.toggleClass('oe_searchview_open_drawer'); }); - this.$element.on('click', '.oe_facet_remove', function (e) { - e.stopImmediatePropagation(); - // get index of clicked facet: number of preceding facet siblings - var index = $(this).closest('.oe_searchview_facet') - .prevAll('.oe_searchview_facet') - .length; - self.query.remove( - self.query.at(index), {trigger_search: true}); - }); // Focus last input if the view itself is clicked this.$element.on('click', function (e) { if (e.target === self.$element[0]) {