[FIX] add scrollbar to filters menu if needed (web client)
authorGéry Debongnie <ged@odoo.com>
Fri, 7 Nov 2014 08:46:11 +0000 (09:46 +0100)
committerGéry Debongnie <ged@odoo.com>
Wed, 12 Nov 2014 08:26:30 +0000 (09:26 +0100)
the filters menu can quickly grow if the user adds many conditions.
Once it grows out of the screen, the lower buttons can not be reached
anymore.  This patch adds a vertical scrollbar to fix this issue.  It
has to use some javascript to update its max-height property.

addons/web/static/src/css/base.css
addons/web/static/src/css/base.sass
addons/web/static/src/js/search.js

index 8eed87f..68eb69b 100644 (file)
   background-image: -webkit-radial-gradient(circle, #eee 0%, #ccc 40%, #bbb 100%);
   background-image: -moz-radial-gradient(#eee 0%, #ccc 40%, #bbb 100%);
   background-image: -ms-radial-gradient(#eee 0%, #ccc 40%, #bbb 100%);
-  background-image: radial-gradient(circle, #eeeeee 0%, #cccccc 40%, #bbbbbb 100%);
+  background-image: radial-gradient(circle, #eee 0%, #ccc 40%, #bbb 100%);
 }
 .openerp .oe_kanban_status_green {
   background: green;
 .openerp .oe-search-options .divider {
   display: none;
 }
+.openerp .oe-search-options .filters-menu {
+  overflow: auto;
+  overflow-x: hidden;
+}
 .openerp .oe-search-options .filters-menu .divider {
   display: list-item;
 }
index 2d9c5b9..19bb172 100644 (file)
@@ -1162,6 +1162,8 @@ $sheet-padding: 16px
         .divider
             display: none
         .filters-menu
+            overflow: auto
+            overflow-x: hidden
             .divider
                 display: list-item
         .closed-menu
index defee86..29f4657 100644 (file)
@@ -1441,6 +1441,10 @@ instance.web.search.FilterMenu = instance.web.Widget.extend({
             prop.$el.hide();
         });
     },
+    update_max_height: function () {
+        var max_height = $(window).height() - this.$menu[0].getBoundingClientRect().top - 10;
+        this.$menu.css('max-height', max_height);
+    },
     toggle_custom_filter_menu: function (is_open) {
         this.$add_filter
             .toggleClass('closed-menu', !is_open)
@@ -1450,6 +1454,7 @@ instance.web.search.FilterMenu = instance.web.Widget.extend({
             this.append_proposition();
         }
         this.$('.oe-filter-condition').toggle(is_open);
+        this.update_max_height();
     },
     append_proposition: function () {
         var self = this;
@@ -1458,6 +1463,7 @@ instance.web.search.FilterMenu = instance.web.Widget.extend({
             self.propositions.push(prop);
             prop.insertBefore(self.$add_filter_menu);
             self.$apply_filter.prop('disabled', false);
+            self.update_max_height();
             return prop;
         });
     },