diff --git a/src/main.js b/src/main.js index 261d95c..5940d65 100644 --- a/src/main.js +++ b/src/main.js @@ -147,9 +147,17 @@ function buildEntry(entry) { editButton.setAttribute("class", "editbutton"); editButton.setAttribute("tabindex",entry_priority) + let deleteButton = document.createElement("button"); + deleteButton.innerText = "Delete"; + deleteButton.addEventListener("click", deleteEntry.bind(deleteButton, entry), false); + deleteButton.setAttribute("class", "deletebutton"); + deleteButton.setAttribute("tabindex",entry_priority) + let actionDiv = document.createElement("div") actionDiv.appendChild(showButton) actionDiv.appendChild(editButton) + actionDiv.appendChild(deleteButton) + actionDiv.setAttribute("id",`${entry.replaceAll(" ","-")}_actions`) document.getElementById("table_entries").appendChild(nameDiv) @@ -159,6 +167,19 @@ function buildEntry(entry) { } +function deleteEntry(entry) { + let entry_user = document.querySelector(`#${entry.replaceAll(" ","-")}_user`); + let entry_pass = document.querySelector(`#${entry.replaceAll(" ","-")}_pass`); + let entry_name = document.querySelector(`#${entry.replaceAll(" ","-")}_name`); + let actions = document.querySelector(`#${entry.replaceAll(" ","-")}_actions`); + + entry_user.remove() + entry_pass.remove() + entry_name.remove() + actions.remove() + invoke("remove_entry",{name: entry}) +} + async function editEntry(entry) { let entry_user = document.querySelector(`#${entry.replaceAll(" ","-")}_user > input`); let entry_pass = document.querySelector(`#${entry.replaceAll(" ","-")}_pass > input`); @@ -219,7 +240,7 @@ async function editEntry(entry) { } async function ask_pw() { - return await password_prompt("Enter your master password to proceed"); + return await password_prompt("Enter your master password to proceed") } async function get_pw() { diff --git a/src/pwprompt.js b/src/pwprompt.js index 07c8567..b4040b7 100644 --- a/src/pwprompt.js +++ b/src/pwprompt.js @@ -1,26 +1,20 @@ -window.password_prompt = async function(label_message, button_message, arg3, arg4, arg5) { +window.password_prompt = async function(label_message, submitbutton_message, cancelbutton_message) { return new Promise((res,rej) => { - let callback,width,height; + let width = 200,height = 100; if (typeof label_message !== "string") label_message = "Password:"; - if (typeof button_message !== "string") button_message = "Submit"; - if (typeof arg3 === "function") { - callback = arg3; - } - else if (typeof arg3 === "number" && typeof arg4 === "number" && typeof arg5 === "function") { - width = arg3; - height = arg4; - callback = arg5; - } - if (typeof width !== "number") width = 200; - if (typeof height !== "number") height = 100; - if (typeof callback !== "function") callback = function(){}; + if (typeof submitbutton_message !== "string") submitbutton_message = "Submit"; + if (typeof cancelbutton_message !== "string") cancelbutton_message = "Cancel"; let submit = function() { - callback(input.value); document.body.removeChild(div); window.removeEventListener("resize", resize, false); res(input.value) }; + let cancel = function() { + document.body.removeChild(div) + window.removeEventListener("resize", resize, false) + rej() + } let resize = function() { div.style.left = ((window.innerWidth / 2) - (width / 2)) + "px"; div.style.top = ((window.innerHeight / 2) - (height / 2)) + "px"; @@ -47,11 +41,22 @@ window.password_prompt = async function(label_message, button_message, arg3, arg div.appendChild(input); div.appendChild(document.createElement("br")); + + let actionDiv = document.createElement("div") - let button = document.createElement("button"); - button.innerHTML = button_message; - button.addEventListener("click", submit, false); - div.appendChild(button); + let submitbutton = document.createElement("button"); + submitbutton.innerHTML = submitbutton_message; + submitbutton.style.display = "inline-block" + submitbutton.addEventListener("click", submit, false); + actionDiv.appendChild(submitbutton); + + let cancelbutton = document.createElement("button"); + cancelbutton.innerHTML = cancelbutton_message; + cancelbutton.style.display = "inline-block" + cancelbutton.addEventListener("click", cancel, false); + actionDiv.appendChild(cancelbutton); + + div.appendChild(actionDiv) document.body.appendChild(div); window.addEventListener("resize", resize, false); diff --git a/src/style.css b/src/style.css index fe5cc60..9ddcac2 100644 --- a/src/style.css +++ b/src/style.css @@ -188,14 +188,24 @@ a.nostyle:visited { color: inherit; } -/* -.select{ +.select > img { transform: rotate(0deg); - transition: transform 1s linear; + transition: transform 0.25s linear; } -.select.open{ +.select.open > img { transform: rotate(180deg); - transition: transform 1s linear; + transition: transform 0.25s linear; } -*/ \ No newline at end of file + +/* .select.open > div { + transition: 1s ease-in; + height: 8em; + overflow: hidden; +} + +.select > div { + transform: none; + height: 0; + transition: 1s ease-out; +} */ \ No newline at end of file