diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-05-10 10:59:13 +0200 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-05-10 10:59:13 +0200 |
| commit | ef86508a158d007540bce8562d2da7bc77e9ff22 (patch) | |
| tree | e46fb8cbd27d3e11d6a456b70341b228a980a02f /addons/web/static/src | |
| parent | 8ebbf3ef3c9f35a862520bbd77a320b245b19606 (diff) | |
[fix] tab handling in many2manytags
bzr revid: nicolas.vanhoren@openerp.com-20120510085913-es6aojina66n4xei
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 8ea690412ee..198b3d4ff85 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3063,7 +3063,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_. this._super.apply(this, arguments); instance.web.form.CompletionFieldMixin.init.call(this); this.set({"value": []}); - this.display_orderer = new instance.web.DropMisordered(); + this._display_orderer = new instance.web.DropMisordered(); + this._drop_shown = false; }, start: function() { this._super(); @@ -3085,7 +3086,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_. }, ext: { autocomplete: { - selectFromDropdown: function(a, b, c) { + selectFromDropdown: function() { $(this).trigger('hideDropdown'); var index = Number(this.selectedSuggestionElement().children().children().data('index')); var data = self.search_result[index]; @@ -3139,10 +3140,18 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_. pop.on_write_completed.add_last(function() { self.render_value(); }); + }).bind('hideDropdown', function() { + self._drop_shown = false; + }).bind('hideDropdown', function() { + self._drop_shown = true; }); self.tags = self.$text.textext()[0].tags(); $("textarea", this.$element).focusout(function() { $("textarea", this.$element).val(""); + }).keydown(function(e) { + if (event.keyCode === 9 && self._drop_shown) { + self.$text.textext()[0].autocomplete().selectFromDropdown(); + } }); }, set_value: function(value_) { @@ -3185,7 +3194,7 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(_. } }; if (! self.get('values') || self.get('values').length > 0) { - this.display_orderer.add(dataset.name_get(self.get("value"))).then(handle_names); + this._display_orderer.add(dataset.name_get(self.get("value"))).then(handle_names); } else { handle_names([]); } |
