let got_keys = false; function get_keys() { console.log("get_keys running , got_keys = ", got_keys); let username = document.getElementById("user").value; let password = document.getElementById("pass").value; let request = {auth: {user: username, pass: password}}; fetch('http://127.0.0.1:8087/ldap/ssh', { // can switch this to get with auth headers i think method: 'POST', body: JSON.stringify(request), mode: 'cors', }).then(res => { if (res.status === 200) { return res.json(); } else { document.getElementById('formStatus').innerHTML = "Failed to fetch"; } }).then(data => { if (data.result === "success") { document.getElementById('formStatus').innerHTML = "Success : Got keys"; let keys = data.success; document.getElementById('key_table').style.display = "table"; got_keys = true; keys.forEach(key => { add_to_table(key); }) } else { document.getElementById('formStatus').innerHTML = "Failed to get keys"; } }).catch(err => { console.log(err); }); } function add_key() { let username = document.getElementById("user").value; let password = document.getElementById("pass").value; let key = document.getElementById("key_input").value; let request = {auth: {user: username, pass: password}, key: key}; if (key === "") { document.getElementById('formStatus').innerHTML = "Key cannot be empty"; return; } fetch('http://127.0.0.1:8087/ldap/ssh/add', { method: 'POST', body: JSON.stringify(request), mode: 'cors', }).then(res => { if (res.status === 200) { return res.json(); } else { document.getElementById('formStatus').innerHTML = "Failed to fetch"; } }).then(data => { if (data.result === "success") { document.getElementById('formStatus').innerHTML = "Success : Key added"; document.getElementById('key_table').style.display = "table"; add_to_table(key); } else { document.getElementById('formStatus').innerHTML = "Failed to add"; } }).catch(err => { document.getElementById('formStatus').innerHTML = "Error "; console.log(err); }); } function delete_key(row_idx) { let table = document.getElementById("key_table"); let key = table.rows[row_idx].cells[0].innerHTML; let username = document.getElementById("user").value; let password = document.getElementById("pass").value; let request = {auth: {user: username, pass: password}, key: key}; fetch('http://127.0.0.1:8087/ldap/ssh', { method: 'DELETE', body: JSON.stringify(request), mode: 'cors', }).then(res => { if (res.status === 200) { return res.json(); } else { document.getElementById('formStatus').innerHTML = "Failed to fetch"; } }).then(data => { if (data.result === "success") { table.deleteRow(row_idx); document.getElementById('formStatus').innerHTML = "Success : Key deleted"; } else { document.getElementById('formStatus').innerHTML = "Failed to delete"; } }).catch(err => { document.getElementById('formStatus').innerHTML = "Error "; console.log(err); }) } function add_to_table(key) { let table = document.getElementById("key_table"); let row = table.insertRow(); let cell1 = row.insertCell(0); cell1.innerHTML = key; let cell2 = row.insertCell(1); let button = document.createElement("button"); button.innerHTML = "Delete"; cell2.appendChild(button); //cell2.appendChild(document.createElement("button")).innerHTML = "Delete"; button.addEventListener("click", function () { delete_key(row.rowIndex); }); } document.addEventListener("DOMContentLoaded", () => { document.getElementById("get_keys").addEventListener("click", function () { if (got_keys) { console.log("got keys already"); document.getElementById('formStatus').innerHTML = "Got keys already"; } else { get_keys(); } }); document.getElementById("add_key_button").addEventListener("click", add_key); });