diff options
| author | Christophe Simonis <chs@odoo.com> | 2014-12-02 16:18:08 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2014-12-02 16:18:08 +0100 |
| commit | 1d3f8eba879f02da7fc0bb46c9801029eccbc8c8 (patch) | |
| tree | 10ef917de1be8ef9755cba4f3c9ac951af176b18 /addons/web/static/src/js/search.js | |
| parent | 7878b2fd0cb42827b71bd00a1fd8199e73269fe4 (diff) | |
| parent | 591e329bb0efe4997677a0bee2e6f3b558e35df8 (diff) | |
[MERGE] forward port of branch 8.0 up to 591e329
Diffstat (limited to 'addons/web/static/src/js/search.js')
| -rw-r--r-- | addons/web/static/src/js/search.js | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 148f46677f5..3ae52df31bc 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -684,6 +684,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea }, childFocused: function () { this.$el.addClass('active'); + this.view_id = this.view_id || data.view_id; }, childBlurred: function () { this.$el.val('').removeClass('active').trigger('blur'); @@ -1390,7 +1391,10 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({ var values = facet.values; if (_.isEmpty(this.attrs.context) && values.length === 1) { var c = {}; - c['default_' + this.attrs.name] = values.at(0).get('value'); + var v = values.at(0); + if (v.get('operator') !== 'ilike') { + c['default_' + this.attrs.name] = v.get('value'); + } return c; } return this._super(facet); @@ -2126,6 +2130,14 @@ instance.web.search.AutoComplete = instance.web.Widget.extend({ ev.preventDefault(); return; } + // ENTER is caugth at KeyUp rather than KeyDown to avoid firing + // before all regular keystrokes have been processed + if (ev.which === $.ui.keyCode.ENTER) { + if (self.current_result && self.get_search_string().length) { + self.select_item(ev); + } + return; + } if (!self.searching) { self.searching = true; return; @@ -2140,8 +2152,10 @@ instance.web.search.AutoComplete = instance.web.Widget.extend({ }); this.$input.on('keydown', function (ev) { switch (ev.which) { + // TAB and direction keys are handled at KeyDown because KeyUp + // is not guaranteed to fire. + // See e.g. https://github.com/aef-/jquery.masterblaster/issues/13 case $.ui.keyCode.TAB: - case $.ui.keyCode.ENTER: if (self.current_result && self.get_search_string().length) { self.select_item(ev); } |
