[FIX] avoid inserting invisible filters
authorGéry Debongnie <ged@odoo.com>
Wed, 8 Oct 2014 14:09:15 +0000 (16:09 +0200)
committerGéry Debongnie <ged@odoo.com>
Tue, 21 Oct 2014 07:33:52 +0000 (09:33 +0200)
and avoid inserting two separators because of that

addons/web/static/src/js/search.js

index 69bd4c1..1feef6e 100644 (file)
@@ -944,6 +944,11 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in
     toggle: function (filter, options) {
         this.searchview.query.toggle(this.make_facet([this.make_value(filter)]), options);
     },
+    is_visible: function () {
+        return _.some(this.filters, function (filter) {
+            return !filter.attrs.invisible;
+        });
+    },
     complete: function (item) {
         var self = this;
         item = item.toLowerCase();
@@ -1442,8 +1447,10 @@ instance.web.search.FilterMenu = instance.web.Widget.extend({
         this.$apply_filter = this.$('.oe-apply-filter');
         this.$add_filter_menu = this.$('.oe-add-filter-menu');
         _.each(this.filters, function (group) {
-            group.insertBefore(self.$add_filter);
-            $('<li>').addClass('divider').insertBefore(self.$add_filter);
+            if (group.is_visible()) {
+                group.insertBefore(self.$add_filter);
+                $('<li>').addClass('divider').insertBefore(self.$add_filter);
+            }
         });
         this.append_proposition().then(function (prop) {
             prop.$el.hide();