[IMP] autocomplete now display separators
authorGéry Debongnie <ged@odoo.com>
Fri, 27 Jun 2014 10:05:34 +0000 (12:05 +0200)
committerGéry Debongnie <ged@odoo.com>
Fri, 27 Jun 2014 10:05:34 +0000 (12:05 +0200)
separators given in the search view are now displayed
in the autocomplete widget

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

index dab2e48..c14100a 100644 (file)
   background-color: #7c7bad;
   color: white;
 }
+.openerp .oe_searchview .oe-autocomplete ul li.oe-separator {
+  margin-top: 2px;
+  margin-bottom: 2px;
+  border-top: 1px solid #afafb6;
+}
+.openerp .oe_searchview .oe-autocomplete ul li.oe-separator:last-child {
+  display: none;
+}
 .openerp .oe_searchview_drawer_container {
   overflow: auto;
 }
index 523ee84..e3a84a8 100644 (file)
@@ -1332,6 +1332,14 @@ $sheet-padding: 16px
                 li.oe-selection-focus
                     background-color: #7c7bad
                     color: white
+                li.oe-separator
+                    margin-top: 2px
+                    margin-bottom: 2px
+                    border-top: 1px solid #afafb6
+                li.oe-separator:last-child
+                    display: none
+
+
     .oe_searchview_drawer_container
         overflow: auto
     .oe_searchview_drawer
index a8d1571..eabc6a9 100644 (file)
@@ -846,7 +846,9 @@ instance.web.SearchViewDrawer = instance.web.Widget.extend({
             }
 
             switch (item.tag) {
-            case 'separator': case 'newline':
+            case 'separator': 
+            case 'newline':
+                filters.push(new instance.web.search.Separator(this))
                 break;
             case 'filter':
                 filters.push(new instance.web.search.Filter(item, group));
@@ -1311,6 +1313,13 @@ instance.web.search.Filter = instance.web.search.Input.extend(/** @lends instanc
     get_context: function () { },
     get_domain: function () { },
 });
+
+instance.web.search.Separator = instance.web.search.Input.extend({
+    complete: function () {
+        return {is_separator: true};
+    }
+});
+
 instance.web.search.Field = instance.web.search.Input.extend( /** @lends instance.web.search.Field# */ {
     template: 'SearchView.field',
     default_operator: '=',
@@ -2397,9 +2406,17 @@ instance.web.search.AutoComplete = instance.web.Widget.extend({
         var self = this;
         var $list = this.$('ul');
         $list.empty();
+        var render_separator = false;
         results.forEach(function (result) {
-            var $item = self.make_list_item(result).appendTo($list);
-            result.$el = $item;
+            if (result.is_separator) {
+                if (render_separator)
+                    $list.append($('<li>').addClass('oe-separator'));
+                render_separator = false;
+            } else {
+                var $item = self.make_list_item(result).appendTo($list);
+                result.$el = $item;
+                render_separator = true;
+            }
         });
         this.show();
     },