summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2013-01-31 12:26:17 +0100
committerXavier Morel <xmo@openerp.com>2013-01-31 12:26:17 +0100
commit69171aa8059c1ecf2ece86271ef0fcf2d46aab05 (patch)
tree6b9eca17739ac0b318e3a4b6a17ea670bbebb879 /addons/web/static/src
parent0272007aae47d010dae46a003c8ece40e4443e52 (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.js17
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');