fix(pos): search field doesn't reset on checkout

This commit is contained in:
Saqib Ansari 2022-04-26 14:28:33 +05:30
parent 60fb71bd2a
commit 03a6103fe5
2 changed files with 35 additions and 5 deletions

View File

@ -343,9 +343,9 @@ erpnext.PointOfSale.Controller = class {
toggle_other_sections: (show) => {
if (show) {
this.item_details.$component.is(':visible') ? this.item_details.$component.css('display', 'none') : '';
this.item_selector.$component.css('display', 'none');
this.item_selector.toggle_component(false);
} else {
this.item_selector.$component.css('display', 'flex');
this.item_selector.toggle_component(true);
}
},

View File

@ -179,6 +179,25 @@ erpnext.PointOfSale.ItemSelector = class {
});
this.search_field.toggle_label(false);
this.item_group_field.toggle_label(false);
this.attach_clear_btn();
}
attach_clear_btn() {
this.search_field.$wrapper.find('.control-input').append(
`<span class="link-btn" style="top: 2px;">
<a class="btn-open no-decoration" title="${__("Clear")}">
${frappe.utils.icon('close', 'sm')}
</a>
</span>`
);
this.$clear_search_btn = this.search_field.$wrapper.find('.link-btn');
this.$clear_search_btn.on('click', 'a', () => {
this.set_search_value('');
this.search_field.set_focus();
});
}
set_search_value(value) {
@ -252,6 +271,16 @@ erpnext.PointOfSale.ItemSelector = class {
const search_term = e.target.value;
this.filter_items({ search_term });
}, 300);
this.$clear_search_btn.toggle(
Boolean(this.search_field.$input.val())
);
});
this.search_field.$input.on('focus', () => {
this.$clear_search_btn.toggle(
Boolean(this.search_field.$input.val())
);
});
}
@ -284,7 +313,7 @@ erpnext.PointOfSale.ItemSelector = class {
if (this.items.length == 1) {
this.$items_container.find(".item-wrapper").click();
frappe.utils.play_sound("submit");
$(this.search_field.$input[0]).val("").trigger("input");
this.set_search_value('');
} else if (this.items.length == 0 && this.barcode_scanned) {
// only show alert of barcode is scanned and enter is pressed
frappe.show_alert({
@ -293,7 +322,7 @@ erpnext.PointOfSale.ItemSelector = class {
});
frappe.utils.play_sound("error");
this.barcode_scanned = false;
$(this.search_field.$input[0]).val("").trigger("input");
this.set_search_value('');
}
});
}
@ -350,6 +379,7 @@ erpnext.PointOfSale.ItemSelector = class {
}
toggle_component(show) {
show ? this.$component.css('display', 'flex') : this.$component.css('display', 'none');
this.set_search_value('');
this.$component.css('display', show ? 'flex': 'none');
}
};