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",
|
"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",
|
||||||
|
|||||||
@@ -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
@@ -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");
|
||||||
|
|||||||
+24
-4
@@ -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,7 +116,8 @@ function GeneratePassword(e)
|
|||||||
if (!e)
|
if (!e)
|
||||||
field.remove();
|
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__",
|
"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__",
|
||||||
|
|||||||
@@ -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;">
|
||||||
|
|||||||
Reference in New Issue
Block a user