[minor] replace autocomplete with awesomplete

This commit is contained in:
Rushabh Mehta 2016-12-27 12:14:26 +05:30
parent e60c2c7b7a
commit 512b85e040
2 changed files with 51 additions and 48 deletions

View File

@ -410,32 +410,36 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
this.frm.doc.customer = this.default_customer;
}
this.party_field.$input.autocomplete({
autoFocus: true,
source: function (request, response) {
me.customer_data = me.get_customers(request.term)
response($.map(me.customer_data, function(data){
this.party_field.awesomeplete = new Awesomplete(this.party_field.$input.get(0), {
minChars: 0,
maxItems: 99,
autoFirst: true,
list: [],
});
this.party_field.$input
.on('input', function(e) {
var customer_data = me.get_customers(e.target.value) || [];
me.party_field.awesomeplete.list = customer_data.map(function(data){
return {label: data.name, value: data.name,
customer_group: data.customer_group, territory: data.territory}
}))
},
change: function(event, ui){
if(ui.item){
me.frm.doc.customer = ui.item.label;
me.frm.doc.customer_name = ui.item.customer_name;
me.frm.doc.customer_group = ui.item.customer_group;
me.frm.doc.territory = ui.item.territory;
}else{
});
})
.on('awesomplete-select', function(e) {
var item = me.party_field.awesomeplete.get_item(e.originalEvent.text.value);
console.log(item);
if(item) {
me.frm.doc.customer = item.label;
me.frm.doc.customer_name = item.customer_name;
me.frm.doc.customer_group = item.customer_group;
me.frm.doc.territory = item.territory;
} else {
me.frm.doc.customer = me.party_field.$input.val();
}
me.refresh();
}
}).on("focus", function(){
setTimeout(function() {
if(!me.party_field.$input.val()) {
me.party_field.$input.autocomplete( "search", " " );
}
}, 500);
})
.on('focus', function(e) {
$(e.target).val('').trigger('input');
});
},

View File

@ -313,39 +313,38 @@ $.extend(erpnext.item, {
$(field.input_area).addClass("ui-front");
field.$input.autocomplete({
minLength: 0,
var input = field.$input.get(0);
input.awesomplete = new Awesomplete(input, {
minChars: 0,
autoFocus: true,
source: function(request, response) {
maxItems: 99,
autoFirst: true,
list: [],
});
input.field = field;
field.$input
.on('input', function(e) {
var term = e.target.value;
frappe.call({
method:"frappe.client.get_list",
args:{
doctype:"Item Attribute Value",
filters: [
["parent","=", i],
["attribute_value", "like", request.term + "%"]
["attribute_value", "like", term + "%"]
],
fields: ["attribute_value"]
},
callback: function(r) {
if (r.message) {
response($.map(r.message, function(d) { return d.attribute_value; }));
e.target.awesomplete.list = r.message.map(function(d) { return d.attribute_value; });
}
}
});
},
select: function(event, ui) {
field.$input.val(ui.item.value);
field.$input.trigger("change");
},
}).on("focus", function(){
setTimeout(function() {
if(!field.$input.val()) {
field.$input.autocomplete("search", "");
}
}, 500);
});
})
.on('focus', function(e) {
$(e.target).val('').trigger('input');
})
});
},
toggle_attributes: function(frm) {