Apply configuration changes immediately

This commit is contained in:
Juhani Krekelä 2024-07-15 17:36:23 +03:00
parent 881b5941a9
commit 17602d9ae9
2 changed files with 20 additions and 35 deletions

View file

@ -4,22 +4,19 @@
<meta charset="utf-8">
</head>
<body>
<form id="form">
<fieldset>
<legend>Redirect configuration</legend>
<input type="checkbox" id="enabled" class="control"><label for="enabled">Enable redirect</label><br>
<label for="instance">Nitter domain</label><br>
<input type="text" id="instance" class="control" required>
</fieldset>
<fieldset>
<legend>Authentication</legend>
<label for="username">Username</label><br>
<input type="text" id="username" class="control"><br>
<label for="password">Password</label><br>
<input type="password" id="password" class="control"><br>
</fieldset>
<input type="submit" value="Update settings" id="submit" disabled>
<form>
<fieldset>
<legend>Redirect configuration</legend>
<input type="checkbox" id="enabled" class="control"><label for="enabled">Enable redirect</label><br>
<label for="instance">Nitter domain</label><br>
<input type="text" id="instance" class="control" required>
</fieldset>
<fieldset>
<legend>Authentication</legend>
<label for="username">Username</label><br>
<input type="text" id="username" class="control"><br>
<label for="password">Password</label><br>
<input type="password" id="password" class="control"><br>
</fieldset>
<script src="dialog.js"></script>
</body>
</html>

View file

@ -43,32 +43,20 @@ function setupSettingsForm(settings) {
const instance = document.getElementById('instance');
const username = document.getElementById('username');
const password = document.getElementById('password');
const submit = document.getElementById('submit');
enabled.checked = settings.enabled;
instance.value = settings.instance;
username.value = settings.username;
password.value = settings.password;
document.getElementById('form').addEventListener('submit', (event) => {
event.preventDefault();
settings.enabled = enabled.checked;
settings.instance = instance.value;
settings.username = username.value;
settings.password = password.value;
submit.disabled = true;
browser.storage.local.set(settings);
updateRedirects(settings);
});
for (let element of document.getElementsByClassName('control')) {
element.addEventListener('input', () => {
const different =
enabled.checked !== settings.enabled ||
instance.value !== settings.instance ||
username.value !== settings.username ||
password.value !== settings.password;
submit.disabled = !different;
element.addEventListener('change', () => {
settings.enabled = enabled.checked;
settings.instance = instance.value;
settings.username = username.value;
settings.password = password.value;
browser.storage.local.set(settings);
updateRedirects(settings);
});
}
}