var list=[]; const dns_template = document.getElementById('dns'); const dns_items = document.getElementById('dns_items'); function delete_item(item) { dns_items.removeChild(item.root); for( var i = 0; i < arr.length; i++){ if ( list[i] === item) { list.splice(i, 1); break; } } fetch(`api/remove?id=${item.id}`).then(e=>e.text()).then(e=>{ //removed entry }); } function save(item) { var data={ Id: item.id, Key: item.key.value, Value: item.key.value, Type: item.type.value, TTL: item.ttl.value, }; fetch("api/save",{ method: "POST", mode: "cors", cache: "no-cache", credentials: "same-origin", headers: { "Content-Type": "application/json", }, redirect: "follow", referrer: "no-referrer", body: JSON.stringify(data) }).then(e=>e.text()).then(e=>{}); } function saveAll() { list.forEach(e=>{ save(e); }); } function add() { fetch('api/new').then(e=e.text()).then(e=>{ load(); }); } function load() { list=[]; dns_items.innerHTML=""; fetch("api/entries.json").then(e=>e.json()).this(e=>{ var dns_entry = dns_template.content.cloneNode(true); var key = dns_entry.getElementById('key'); key.value = e.Key; var value = dns_entry.getElementById('value'); value.value= e.Value; var type = dns_entry.getElementById('type'); type.value = e.Type; var ttl = dns_entry.getElementById('ttl'); ttl.value = e.TTL; var saveBtn = dns_entry.getElementById('save'); var deleteBtn = dns_entry.getElementById('delete'); var item={ id: e.Id, root: dns_entry, key: key, value: value, type: type, ttl: ttl, saveBtn: saveBtn, deleteBtn: deleteBtn }; list.push(item); saveBtn.onclick += (sender,e)=>{ save(item); }; deleteBtn.onclick += (sender,e)=>{ delete_item(item); }; dns_items.appendChild(dns_entry); }); } load();