summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-05-10 10:59:13 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-05-10 10:59:13 +0200
commitef86508a158d007540bce8562d2da7bc77e9ff22 (patch)
treee46fb8cbd27d3e11d6a456b70341b228a980a02f /addons/web/static/src
parent8ebbf3ef3c9f35a862520bbd77a320b245b19606 (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.js15
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([]);
}