+ data-item-code="${item_code}" data-serial-no="${serial_no}"
+ data-batch-no="${batch_no}" data-uom="${uom}"
+ data-rate="${price_list_rate || 0}"
+ data-stock-uom="${stock_uom}"
+ title="${item_name}">
${get_item_image_html()}
- ${!me.hide_images ? frappe.ellipsis(item.item_name, 18) : item.item_name}
+ ${!me.hide_images ? frappe.ellipsis(item_name, 18) : item_name}
${
!me.hide_images
@@ -189,7 +209,7 @@ erpnext.PointOfSale.ItemSelector = class {
}
handle_broken_image($img) {
- const item_abbr = $($img).attr("alt");
+ const item_abbr = frappe.utils.escape_html($($img).attr("alt"));
$($img).parent().replaceWith(`
${item_abbr}
`);
}
@@ -244,7 +264,7 @@ erpnext.PointOfSale.ItemSelector = class {
set_item_selector_filter_label(value) {
const $filter_label = this.$component.find(".label");
- $filter_label.html(value ? __(value) : __("All Items"));
+ $filter_label.html(value ? frappe.utils.escape_html(__(value)) : __("All Items"));
}
hide_open_link_btn() {
@@ -329,12 +349,12 @@ erpnext.PointOfSale.ItemSelector = class {
this.$component.on("click", ".item-wrapper", function () {
const $item = $(this);
- const item_code = unescape($item.attr("data-item-code"));
- let batch_no = unescape($item.attr("data-batch-no"));
- let serial_no = unescape($item.attr("data-serial-no"));
- let uom = unescape($item.attr("data-uom"));
- let rate = unescape($item.attr("data-rate"));
- let stock_uom = unescape($item.attr("data-stock-uom"));
+ const item_code = $item.attr("data-item-code");
+ let batch_no = $item.attr("data-batch-no");
+ let serial_no = $item.attr("data-serial-no");
+ let uom = $item.attr("data-uom");
+ let rate = $item.attr("data-rate");
+ let stock_uom = $item.attr("data-stock-uom");
// escape(undefined) returns "undefined" then unescape returns "undefined"
batch_no = batch_no === "undefined" ? undefined : batch_no;