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
+15
View File
@@ -29,6 +29,11 @@
"message": "Invalid generator settings. No password was generated", "message": "Invalid generator settings. No password was generated",
"description": "Message which is shown after a creation of password failed" "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": "generatorOptions":
{ {
@@ -91,6 +96,16 @@
"message": "Add \"Generate password\" action to context menu", "message": "Add \"Generate password\" action to context menu",
"description": "Option checkbox label" "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": "more":
{ {
"message": "More", "message": "More",
+15
View File
@@ -29,6 +29,11 @@
"message": "Установлены неправильные настройки генератора. Ничего не было сгенерировано", "message": "Установлены неправильные настройки генератора. Ничего не было сгенерировано",
"description": "Message which is shown after a creation of password failed" "description": "Message which is shown after a creation of password failed"
}, },
"lengthPrompt":
{
"message": "Укажите длину пароля. Нажмите ОК чтобы использовать длину по умолчанию (%LEN% символов)",
"description": "A prompt message when user generates a password"
},
"generatorOptions": "generatorOptions":
{ {
@@ -91,6 +96,16 @@
"message": "Добавить действие \"Сгенерировать пароль\" в контекстное меню браузера", "message": "Добавить действие \"Сгенерировать пароль\" в контекстное меню браузера",
"description": "Option checkbox label" "description": "Option checkbox label"
}, },
"hideAlert":
{
"message": "Не показывать сообщение при генерации пароля",
"description": "Option checkbox label"
},
"promptForLength":
{
"message": "Спрашивать длину пароля перед генерацией",
"description": "Option checkbox label"
},
"more": "more":
{ {
"message": "Больше", "message": "Больше",
+7 -3
View File
@@ -13,7 +13,9 @@ chrome.storage.sync.get(
// Extension settings // Extension settings
showButton: true, showButton: true,
showContext: true showContext: true,
hideAlert: false,
promptForLength: false
}, },
(settings) => (settings) =>
{ {
@@ -32,7 +34,9 @@ chrome.storage.sync.get(
"excludeSpecial", "excludeSpecial",
"showButton", "showButton",
"showContext" "showContext",
"hideAlert",
"promptForLength"
].forEach(i => document.querySelector("#" + i).checked = settings[i]); ].forEach(i => document.querySelector("#" + i).checked = settings[i]);
SetupEventHandlers(); SetupEventHandlers();
@@ -46,7 +50,7 @@ function SetupEventHandlers()
i.addEventListener("input", i.addEventListener("input",
() => chrome.storage.sync.set(JSON.parse("{ \"" + i.id + "\": " + (i.type == "checkbox" ? i.checked : i.value) + " }")))); () => 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) => document.querySelector("#more").addEventListener("click", (s) =>
{ {
let group = document.querySelector("#about"); let group = document.querySelector("#about");
+23 -3
View File
@@ -34,7 +34,7 @@ function InsertButtons()
}); });
} }
function GeneratePassword(e) function GeneratePassword(e, useDefaultLength = false)
{ {
// Generating password // Generating password
let availableCharacters = ""; // Set of available characters to generate a password from let availableCharacters = ""; // Set of available characters to generate a password from
@@ -47,7 +47,9 @@ function GeneratePassword(e)
includeLowercase: true, includeLowercase: true,
includeUppercase: true, includeUppercase: true,
excludeSimilar: true, excludeSimilar: true,
excludeSpecial: true excludeSpecial: true,
hideAlert: false,
promptForLength: false
}, },
(settings) => (settings) =>
{ {
@@ -72,7 +74,24 @@ function GeneratePassword(e)
} }
let password = ""; 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 password += availableCharacters[GetRandomInt(0, availableCharacters.length)]; // Picking random characters
let field = e?.target.previousElementSibling; let field = e?.target.previousElementSibling;
@@ -97,6 +116,7 @@ function GeneratePassword(e)
if (!e) if (!e)
field.remove(); field.remove();
if (settings.hideAlert === false)
alert(chrome.i18n.getMessage("success")); alert(chrome.i18n.getMessage("success"));
}); });
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "__MSG_name__", "name": "__MSG_name__",
"version": "1.0", "version": "1.1",
"manifest_version": 2, "manifest_version": 2,
"description": "__MSG_description__", "description": "__MSG_description__",
"author": "__MSG_author__", "author": "__MSG_author__",
+10
View File
@@ -68,6 +68,16 @@
<span class="mark"></span> <span class="mark"></span>
<span loc="showContext">Add "Generate password" action to context menu</span> <span loc="showContext">Add "Generate password" action to context menu</span>
</label> </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>
<div style="margin-bottom: 10px;"> <div style="margin-bottom: 10px;">