diff --git a/addons/base/static/src/js/m2o.js b/addons/base/static/src/js/m2o.js index 02fe536db89..b20eab0689e 100644 --- a/addons/base/static/src/js/m2o.js +++ b/addons/base/static/src/js/m2o.js @@ -15,6 +15,7 @@ openerp.base.m2o = function(openerp){ var self = this var $input = this.element.autocomplete({ + source: function(request, response){ var search_val = request.term; if (search_val in cache) { @@ -25,7 +26,6 @@ openerp.base.m2o = function(openerp){ lastXhr = self.dataset.name_search(search_val, function(obj, status, xhr){ var result = obj.result var values = []; - if (!result.length) { values.push({'value': 'Create...', id: 'create'}) } @@ -33,7 +33,8 @@ openerp.base.m2o = function(openerp){ $.each(result, function(i, val){ values.push({ value: val[1], - id: val[0] + id: val[0], + orig_val: val[1] }); self.result_ids.push(result[i][0]) }); @@ -50,7 +51,7 @@ openerp.base.m2o = function(openerp){ }, select: function(event, ui){ - + ui.item.value = ui.item.orig_val? ui.item.orig_val : self.element.data( "autocomplete" ).term if (ui.item.id == 'more') { self.dataset.ids = self.result_ids; self.dataset.count = self.dataset.ids.length; @@ -62,9 +63,8 @@ openerp.base.m2o = function(openerp){ } if (ui.item.id == 'create') { - var val = self.element.val() - self.dataset.create({'name': self.element.val()}, + self.dataset.create({'name': ui.item.value}, function(r){}, function(r){ var element_id = _.uniqueId("act_window_dialog"); var dialog = jQuery('