function init_settings(model) { const el = find_node("#settings"); find_node("#add-relay", el).addEventListener("click", on_click_add_relay); const rlist = find_node("#relay-list tbody", el); model.relays.forEach((str) => { rlist.appendChild(new_relay_item(str)); }); } function new_relay_item(str) { const tr = document.createElement('tr'); tr.innerHTML = `${str} `; find_node("button", tr).addEventListener("click", on_click_remove_relay); return tr; } function on_click_add_relay(ev) { const model = DAMUS; const address = prompt("Please provide a websocket address:", "wss://"); log_debug("got address", address); // TODO add relay validation if (!model.pool.add(address)) return; model.relays.add(address); find_node("#relay-list tbody").appendChild(new_relay_item(address)); model_save_settings(model); } function on_click_remove_relay(ev) { const model = DAMUS; const address = ev.target.dataset.address; if (!model.pool.remove(address)) return; model.relays.delete(address); let parent = ev.target; while (parent) { if (parent.matches("tr")) { parent.parentElement.removeChild(parent); break; } parent = parent.parentElement; } model_save_settings(model); }