[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,33 +410,37 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
this.frm.doc.customer = this.default_customer; this.frm.doc.customer = this.default_customer;
} }
this.party_field.$input.autocomplete({ this.party_field.awesomeplete = new Awesomplete(this.party_field.$input.get(0), {
autoFocus: true, minChars: 0,
source: function (request, response) { maxItems: 99,
me.customer_data = me.get_customers(request.term) autoFirst: true,
response($.map(me.customer_data, function(data){ 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, return {label: data.name, value: data.name,
customer_group: data.customer_group, territory: data.territory} customer_group: data.customer_group, territory: data.territory}
})) });
}, })
change: function(event, ui){ .on('awesomplete-select', function(e) {
if(ui.item){ var item = me.party_field.awesomeplete.get_item(e.originalEvent.text.value);
me.frm.doc.customer = ui.item.label; console.log(item);
me.frm.doc.customer_name = ui.item.customer_name; if(item) {
me.frm.doc.customer_group = ui.item.customer_group; me.frm.doc.customer = item.label;
me.frm.doc.territory = ui.item.territory; me.frm.doc.customer_name = item.customer_name;
}else{ 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.frm.doc.customer = me.party_field.$input.val();
} }
me.refresh(); me.refresh();
} })
}).on("focus", function(){ .on('focus', function(e) {
setTimeout(function() { $(e.target).val('').trigger('input');
if(!me.party_field.$input.val()) { });
me.party_field.$input.autocomplete( "search", " " );
}
}, 500);
});
}, },
get_customers: function(key){ get_customers: function(key){
@ -570,7 +574,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
me.update_qty(item_code, qty) me.update_qty(item_code, qty)
}) })
}, },
update_qty: function(item_code, qty) { update_qty: function(item_code, qty) {
var me = this; var me = this;
this.items = this.get_items(item_code); this.items = this.get_items(item_code);
@ -1012,13 +1016,13 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
frappe.throw(__("Select items to save the invoice")) frappe.throw(__("Select items to save the invoice"))
} }
}, },
validate_mode_of_payments: function(){ validate_mode_of_payments: function(){
if (this.frm.doc.payments.length === 0){ if (this.frm.doc.payments.length === 0){
frappe.throw(__("Payment Mode is not configured. Please check, whether account has been set on Mode of Payments or on POS Profile.")) frappe.throw(__("Payment Mode is not configured. Please check, whether account has been set on Mode of Payments or on POS Profile."))
} }
}, },
validate_serial_no: function(){ validate_serial_no: function(){
var me = this; var me = this;
var item_code = serial_no = ''; var item_code = serial_no = '';

View File

@ -88,13 +88,13 @@ frappe.ui.form.on("Item", {
image: function(frm) { image: function(frm) {
refresh_field("image_view"); refresh_field("image_view");
}, },
is_fixed_asset: function(frm) { is_fixed_asset: function(frm) {
if (frm.doc.is_fixed_asset) { if (frm.doc.is_fixed_asset) {
frm.set_value("is_stock_item", 0); frm.set_value("is_stock_item", 0);
} }
}, },
page_name: frappe.utils.warn_page_name_change, page_name: frappe.utils.warn_page_name_change,
item_code: function(frm) { item_code: function(frm) {
@ -191,15 +191,15 @@ $.extend(erpnext.item, {
frm.fields_dict.reorder_levels.grid.get_field("warehouse").get_query = function(doc, cdt, cdn) { frm.fields_dict.reorder_levels.grid.get_field("warehouse").get_query = function(doc, cdt, cdn) {
var d = locals[cdt][cdn]; var d = locals[cdt][cdn];
var filters = { var filters = {
"is_group": 0 "is_group": 0
} }
if (d.parent_warehouse) { if (d.parent_warehouse) {
filters.extend({"parent_warehouse": d.warehouse_group}) filters.extend({"parent_warehouse": d.warehouse_group})
} }
return { return {
filters: filters filters: filters
} }
@ -313,39 +313,38 @@ $.extend(erpnext.item, {
$(field.input_area).addClass("ui-front"); $(field.input_area).addClass("ui-front");
field.$input.autocomplete({ var input = field.$input.get(0);
minLength: 0, input.awesomplete = new Awesomplete(input, {
minChars: 0, minChars: 0,
autoFocus: true, maxItems: 99,
source: function(request, response) { autoFirst: true,
list: [],
});
input.field = field;
field.$input
.on('input', function(e) {
var term = e.target.value;
frappe.call({ frappe.call({
method:"frappe.client.get_list", method:"frappe.client.get_list",
args:{ args:{
doctype:"Item Attribute Value", doctype:"Item Attribute Value",
filters: [ filters: [
["parent","=", i], ["parent","=", i],
["attribute_value", "like", request.term + "%"] ["attribute_value", "like", term + "%"]
], ],
fields: ["attribute_value"] fields: ["attribute_value"]
}, },
callback: function(r) { callback: function(r) {
if (r.message) { 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) { .on('focus', function(e) {
field.$input.val(ui.item.value); $(e.target).val('').trigger('input');
field.$input.trigger("change"); })
},
}).on("focus", function(){
setTimeout(function() {
if(!field.$input.val()) {
field.$input.autocomplete("search", "");
}
}, 500);
});
}); });
}, },
toggle_attributes: function(frm) { toggle_attributes: function(frm) {