1
0
mirror of https://github.com/XFox111/PasswordGeneratorExtension.git synced 2026-04-22 08:08:01 +03:00
Files
PasswordGeneratorExtension/js/options.js
T
Michael Gordeev f142d8c3a6 Minor 1.2 (#5)
- Added option "Do not repeat characters"
- Updated GitHub release template
- Updated CI config
2021-03-03 16:44:06 +03:00

73 lines
2.0 KiB
JavaScript

// Loading input fields states
chrome.storage.sync.get(
{
// Set of settings keys we retrieve and their default values
// Generator settings
length: 16,
includeSymbols: true,
includeNumbers: true,
includeLowercase: true,
includeUppercase: true,
excludeSimilar: true,
excludeSpecial: true,
dontRepeatChars: false,
// Extension settings
showButton: true,
showContext: true,
hideAlert: false,
promptForLength: false
},
(settings) =>
{
if (window.matchMedia("(prefers-color-scheme: dark)").matches) // Doesn't work on Fiefox
document.querySelector("#darkStylesheet").removeAttribute("disabled");
document.querySelector("#length").value = settings.length; // Setting length value
// Setting checkboxes
[
"includeSymbols",
"includeNumbers",
"includeLowercase",
"includeUppercase",
"excludeSimilar",
"excludeSpecial",
"dontRepeatChars",
"showButton",
"showContext",
"hideAlert",
"promptForLength"
].forEach(i => document.querySelector("#" + i).checked = settings[i]);
SetupEventHandlers();
document.querySelector("#version").textContent = "v" + chrome.runtime.getManifest()["version"]; // Updating display version
document.querySelectorAll("*[loc]").forEach(i => i.textContent = chrome.i18n.getMessage(i.getAttribute("loc"))); // Updating localization
});
function SetupEventHandlers()
{
document.querySelectorAll("input").forEach(i =>
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, true));
document.querySelector("#more").addEventListener("click", (s) =>
{
let group = document.querySelector("#about");
if (group.hasAttribute("hidden"))
{
group.removeAttribute("hidden");
s.currentTarget.querySelector("i").textContent = "\uE010";
}
else
{
group.setAttribute("hidden", "");
s.currentTarget.querySelector("i").textContent = "\uE011";
}
});
}