1
0
mirror of https://github.com/XFox111/PasswordGeneratorExtension.git synced 2026-04-22 08:08:01 +03:00

Minor 1.1 (#3)

- Added "Prompt for password length every time before generating" option
- Added "Hide successful password generation message" option
This commit is contained in:
Michael Gordeev
2021-02-26 18:19:07 +03:00
committed by GitHub
parent 06c59cea41
commit 5c3a3ca756
6 changed files with 72 additions and 8 deletions
+7 -3
View File
@@ -13,7 +13,9 @@ chrome.storage.sync.get(
// Extension settings
showButton: true,
showContext: true
showContext: true,
hideAlert: false,
promptForLength: false
},
(settings) =>
{
@@ -32,7 +34,9 @@ chrome.storage.sync.get(
"excludeSpecial",
"showButton",
"showContext"
"showContext",
"hideAlert",
"promptForLength"
].forEach(i => document.querySelector("#" + i).checked = settings[i]);
SetupEventHandlers();
@@ -46,7 +50,7 @@ function SetupEventHandlers()
i.addEventListener("input",
() => chrome.storage.sync.set(JSON.parse("{ \"" + i.id + "\": " + (i.type == "checkbox" ? i.checked : i.value) + " }"))));
document.querySelector("#generate").addEventListener("click", () => GeneratePassword(null));
document.querySelector("#generate").addEventListener("click", () => GeneratePassword(null, true));
document.querySelector("#more").addEventListener("click", (s) =>
{
let group = document.querySelector("#about");
+24 -4
View File
@@ -34,7 +34,7 @@ function InsertButtons()
});
}
function GeneratePassword(e)
function GeneratePassword(e, useDefaultLength = false)
{
// Generating password
let availableCharacters = ""; // Set of available characters to generate a password from
@@ -47,7 +47,9 @@ function GeneratePassword(e)
includeLowercase: true,
includeUppercase: true,
excludeSimilar: true,
excludeSpecial: true
excludeSpecial: true,
hideAlert: false,
promptForLength: false
},
(settings) =>
{
@@ -72,7 +74,24 @@ function GeneratePassword(e)
}
let password = "";
for (k = 0; k < settings.length; k++)
var pwdLength = settings.length;
if (settings.promptForLength && !useDefaultLength)
while(true)
{
var response = prompt(chrome.i18n.getMessage("lengthPrompt").replace("%LEN%", settings.length));
if (response === null) // If user clicked 'Cancel'
return;
if (parseInt(response))
{
pwdLength = response;
break;
}
else if (!response) // Continue with default length if no response is provided. Try again if input is invalid
break;
}
for (k = 0; k < pwdLength; k++)
password += availableCharacters[GetRandomInt(0, availableCharacters.length)]; // Picking random characters
let field = e?.target.previousElementSibling;
@@ -97,7 +116,8 @@ function GeneratePassword(e)
if (!e)
field.remove();
alert(chrome.i18n.getMessage("success"));
if (settings.hideAlert === false)
alert(chrome.i18n.getMessage("success"));
});
}