diff options
| author | Xavier Morel <xmo@openerp.com> | 2013-01-31 12:26:17 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2013-01-31 12:26:17 +0100 |
| commit | 69171aa8059c1ecf2ece86271ef0fcf2d46aab05 (patch) | |
| tree | 6b9eca17739ac0b318e3a4b6a17ea670bbebb879 /addons/web/static/src | |
| parent | 0272007aae47d010dae46a003c8ece40e4443e52 (diff) | |
[CHG] allow deselecting a custom filter by clicking on it again in the drawer
as asked in project.task:4837:
> Cannot uncheck a custom filter by clicking on it (it's possible on
> classic filters)
bzr revid: xmo@openerp.com-20130131112617-8vul65bb4lbfbfvk
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/search.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index f67c99cbf8b..65df912bdb0 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -697,7 +697,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea return filter.user_id && filter.is_default; }); if (personal_filter) { - this.custom_filters.enable_filter(personal_filter, true); + this.custom_filters.toggle_filter(personal_filter, true); return; } @@ -705,7 +705,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea return !filter.user_id && filter.is_default; }); if (global_filter) { - this.custom_filters.enable_filter(global_filter, true); + this.custom_filters.toggle_filter(global_filter, true); return; } } @@ -1598,6 +1598,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ get_groupby: function () { return [filter.context]; }, get_domain: function () { return filter.domain; } }, + id: filter['id'], is_custom_filter: true, values: [{label: filter.name, value: null}] }; @@ -1639,10 +1640,18 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ } $filter.unbind('click').click(function () { - self.enable_filter(filter); + self.toggle_filter(filter); }); }, - enable_filter: function (filter, preventSearch) { + toggle_filter: function (filter, preventSearch) { + var current = this.view.query.find(function (facet) { + return facet.get('id') === filter.id; + }); + if (current) { + this.view.query.remove(current); + this.$filters[this.key_for(filter)].removeClass('oe_selected'); + return; + } this.view.query.reset([this.facet_for(filter)], { preventSearch: preventSearch || false}); this.$filters[this.key_for(filter)].addClass('oe_selected'); |
