prefs: managing different input types. related to #14
This commit is contained in:
parent
bc3dff856e
commit
f2e4db183c
1 changed files with 37 additions and 2 deletions
|
|
@ -2,7 +2,23 @@ function saveOptions(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let options = {};
|
let options = {};
|
||||||
document.querySelectorAll(".option-input").forEach(element => {
|
document.querySelectorAll(".option-input").forEach(element => {
|
||||||
options[element.id] = element.checked;
|
switch (element.type) {
|
||||||
|
case 'checkbox':
|
||||||
|
options[element.id] = element.checked;
|
||||||
|
break;
|
||||||
|
case 'number':
|
||||||
|
options[element.id] = element.valueAsNumber;
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
options[element.id] = element.value.trim();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (element.tagName === 'SELECT') {
|
||||||
|
options[element.id] = element.value;
|
||||||
|
}else{
|
||||||
|
console.log('Unhandled input type:', element.type);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
browser.storage.sync.set(options);
|
browser.storage.sync.set(options);
|
||||||
}
|
}
|
||||||
|
|
@ -10,7 +26,26 @@ function saveOptions(e) {
|
||||||
function restoreOptions() {
|
function restoreOptions() {
|
||||||
function setCurrentChoice(result) {
|
function setCurrentChoice(result) {
|
||||||
document.querySelectorAll(".option-input").forEach(element => {
|
document.querySelectorAll(".option-input").forEach(element => {
|
||||||
element.checked = result[element.id] || false;
|
switch (element.type) {
|
||||||
|
case 'checkbox':
|
||||||
|
element.checked = result[element.id] || false;
|
||||||
|
break;
|
||||||
|
case 'number':
|
||||||
|
element.value = result[element.id] || 0;
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
element.value = result[element.id] || '';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (element.tagName === 'SELECT') {
|
||||||
|
element.value = result[element.id] || '';
|
||||||
|
if (element.value === '') {
|
||||||
|
element.selectedIndex = -1;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
console.log('Unhandled input type:', element.type);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue