tdns/Site/js/dns.js

92 lines
2.2 KiB
JavaScript

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();