[IMP] Improve m2o focus.
bzr revid: sma@tinyerp.com-20110513124028-bjjokz9sjbyu07nq
This commit is contained in:
@@ -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('<div>',
|
||||
@@ -76,16 +76,22 @@ openerp.base.m2o = function(openerp){
|
||||
self.element.val('')
|
||||
var event_form = new openerp.base.FormView(self.view_manager, self.session, element_id, self.dataset, false);
|
||||
event_form.start();
|
||||
return true;
|
||||
});
|
||||
console.log(id_2.result,'56576777878787878',val, self.element.data( "autocomplete" ).term)
|
||||
console.log(this)
|
||||
$( this ).val( "" );
|
||||
self.element.val(self.element.data( "autocomplete" ).term);
|
||||
$input.val(self.element.data( "autocomplete" ).term);
|
||||
return true;
|
||||
}
|
||||
self.element.attr('m2o_id', ui.item.id);
|
||||
},
|
||||
minLength: 0
|
||||
|
||||
minLength: 0,
|
||||
|
||||
focus: function(event, ui) {
|
||||
if (ui.item.id == ('create')) {
|
||||
return true;
|
||||
}
|
||||
ui.item.value = self.element.data("autocomplete").term.length ? self.element.val() + '[' + ui.item.orig_val.substring(self.element.data("autocomplete").term.length) + ']' : this.lastSearch
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
$("<div type='button' class='ui_combo'> </div>")
|
||||
|
||||
Reference in New Issue
Block a user