[fix] tab handling in many2manytags

bzr revid: nicolas.vanhoren@openerp.com-20120510085913-es6aojina66n4xei
This commit is contained in:
niv-openerp 2012-05-10 10:59:13 +02:00
parent 8ebbf3ef3c
commit ef86508a15
1 changed files with 12 additions and 3 deletions

View File

@ -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([]);
}