async function itemsDialog() { let div = $(` `) // delete the div when the modal is closed div.on("hidden.bs.modal", function() { div.remove(); }); div.modal("show"); div.find(".item-search").val("").on("keyup", function() { let text = $(this).val().toLowerCase(); div.find(".items-list li").filter(function() { $(this).toggle($(this).text().toLowerCase().indexOf(text) > -1) }); }) const items = await $.post(`https://${resName}/getAllItems`) let itemsListDiv = div.find(".items-list"); itemsListDiv.empty(); if (!Array.isArray(items)) { console.error('Invalid items data received:', items); return new Promise((resolve) => { div.modal("hide"); resolve(null); }); } for(const item of items) { if (!item || typeof item !== 'object') continue; let itemDiv = $(`
  • ${item.label || 'Unknown'}
  • `); itemsListDiv.append(itemDiv); } return new Promise((resolve) => { div.find(".list-group-item").click(function() { let itemName = $(this).data("itemName"); div.modal("hide"); resolve(itemName); }); div.find(".item-search").keydown(function(e) { if (e.keyCode != 13) return; let searchContent = $(this).val(); div.modal("hide"); resolve(searchContent); }); }); }