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();
},
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];
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_) {
}
};
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([]);
}