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

View file

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