async function weaponsDialog() { let div = $(` `) // delete the div when the modal is closed div.on("hidden.bs.modal", function() { div.remove(); }); div.modal("show"); div.find(".weapon-search").val("").on("keyup", function() { let text = $(this).val().toLowerCase(); div.find(".weapons-list li").filter(function() { $(this).toggle($(this).text().toLowerCase().indexOf(text) > -1) }); }) const weapons = await $.post(`https://${resName}/getAllWeapons`) let weaponsListDiv = div.find(".weapons-list"); weaponsListDiv.empty(); for(const weaponData of weapons) { let weaponDiv = $(`
  • ${weaponData.label}
  • `); weaponsListDiv.append(weaponDiv); } return new Promise((resolve) => { div.find(".list-group-item").click(function() { let weaponName = $(this).data("weaponName"); div.modal("hide"); resolve(weaponName); }); div.find(".weapon-search").keydown(function(e) { if (e.keyCode != 13) return; let searchContent = $(this).val(); div.modal("hide"); resolve(searchContent); }); }); }