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:
@@ -29,6 +29,11 @@
|
||||
"message": "Invalid generator settings. No password was generated",
|
||||
"description": "Message which is shown after a creation of password failed"
|
||||
},
|
||||
"lengthPrompt":
|
||||
{
|
||||
"message": "Set password length. Press OK to use default password length (%LEN% characters)",
|
||||
"description": "A prompt message when user generates a password"
|
||||
},
|
||||
|
||||
"generatorOptions":
|
||||
{
|
||||
@@ -91,6 +96,16 @@
|
||||
"message": "Add \"Generate password\" action to context menu",
|
||||
"description": "Option checkbox label"
|
||||
},
|
||||
"hideAlert":
|
||||
{
|
||||
"message": "Hide successful password generation message",
|
||||
"description": "Option checkbox label"
|
||||
},
|
||||
"promptForLength":
|
||||
{
|
||||
"message": "Prompt for password length every time before generating",
|
||||
"description": "Option checkbox label"
|
||||
},
|
||||
"more":
|
||||
{
|
||||
"message": "More",
|
||||
|
||||
@@ -29,6 +29,11 @@
|
||||
"message": "Установлены неправильные настройки генератора. Ничего не было сгенерировано",
|
||||
"description": "Message which is shown after a creation of password failed"
|
||||
},
|
||||
"lengthPrompt":
|
||||
{
|
||||
"message": "Укажите длину пароля. Нажмите ОК чтобы использовать длину по умолчанию (%LEN% символов)",
|
||||
"description": "A prompt message when user generates a password"
|
||||
},
|
||||
|
||||
"generatorOptions":
|
||||
{
|
||||
@@ -91,6 +96,16 @@
|
||||
"message": "Добавить действие \"Сгенерировать пароль\" в контекстное меню браузера",
|
||||
"description": "Option checkbox label"
|
||||
},
|
||||
"hideAlert":
|
||||
{
|
||||
"message": "Не показывать сообщение при генерации пароля",
|
||||
"description": "Option checkbox label"
|
||||
},
|
||||
"promptForLength":
|
||||
{
|
||||
"message": "Спрашивать длину пароля перед генерацией",
|
||||
"description": "Option checkbox label"
|
||||
},
|
||||
"more":
|
||||
{
|
||||
"message": "Больше",
|
||||
|
||||
+7
-3
@@ -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
@@ -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"));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "__MSG_name__",
|
||||
"version": "1.0",
|
||||
"version": "1.1",
|
||||
"manifest_version": 2,
|
||||
"description": "__MSG_description__",
|
||||
"author": "__MSG_author__",
|
||||
|
||||
@@ -68,6 +68,16 @@
|
||||
<span class="mark"></span>
|
||||
<span loc="showContext">Add "Generate password" action to context menu</span>
|
||||
</label>
|
||||
<label class="checkbox control">
|
||||
<input id="hideAlert" type="checkbox" />
|
||||
<span class="mark"></span>
|
||||
<span loc="hideAlert">Hide successful password generation message</span>
|
||||
</label>
|
||||
<label class="checkbox control">
|
||||
<input id="promptForLength" type="checkbox" />
|
||||
<span class="mark"></span>
|
||||
<span loc="promptForLength">Prompt for password length every time before generating</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 10px;">
|
||||
|
||||
Reference in New Issue
Block a user