73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
// -----------------------------------------------
|
|
// Common functions used in Options handling
|
|
// -----------------------------------------------
|
|
//
|
|
// Get default values of preferences
|
|
//
|
|
function getPrefDefaults() {
|
|
return {
|
|
prefs: {
|
|
overrideDeleteConfirm: false,
|
|
selectTrashDelete: false,
|
|
selectJunkDelete: false,
|
|
consoleDebug: false,
|
|
disableDoneNotification: false,
|
|
alsoCompact: false
|
|
}
|
|
};
|
|
}
|
|
|
|
//
|
|
// Get preferences from storage and return the structure asynchronously
|
|
//
|
|
async function getPrefs() {
|
|
let getting = await browser.storage.sync.get("prefs");
|
|
|
|
let fr = "";
|
|
if ($.isEmptyObject(getting)) {
|
|
prefs = getPrefDefaults();
|
|
fr = "defaults";
|
|
} else {
|
|
prefs = getting;
|
|
fr = "storage";
|
|
};
|
|
console.log("Loaded prefs from " + fr);
|
|
|
|
return getting;
|
|
}
|
|
|
|
//
|
|
// Handle the event of an option change in options UI. Event is passed in as
|
|
// the 'ch' argument. This function records the changed option in to the
|
|
// options storage and returns the updated structure asynchronously
|
|
//
|
|
async function changeOption(ch) {
|
|
var i = ch[0].id;
|
|
var c = ch[0].checked;
|
|
console.log("Pref: " + i + " -> " + c);
|
|
if (i == "overrideDeleteConfirm") { prefs.prefs.overrideDeleteConfirm = c; }
|
|
else if (i == "selectTrashDelete") { prefs.prefs.selectTrashDelete = c; }
|
|
else if (i == "selectJunkDelete") { prefs.prefs.selectJunkDelete = c; }
|
|
else if (i == "consoleDebug") { prefs.prefs.consoleDebug = c; }
|
|
else if (i == "disableDoneNotification") { prefs.prefs.disableDoneNotification = c; }
|
|
else if (i == "alsoCompact") { prefs.prefs.alsoCompact = c; }
|
|
await browser.storage.sync.set(prefs);
|
|
|
|
prefs = await getPrefs();
|
|
|
|
return prefs;
|
|
}
|
|
|
|
//
|
|
// Given the preferences structure, update the options IO with appropriate values
|
|
//
|
|
function updateOptionsForm(prefs) {
|
|
$("#overrideDeleteConfirm").prop('checked', prefs.prefs.overrideDeleteConfirm);
|
|
$("#selectTrashDelete").prop('checked', prefs.prefs.selectTrashDelete);
|
|
$("#selectJunkDelete").prop('checked', prefs.prefs.selectJunkDelete);
|
|
$("#selectJunkDelete").prop('checked', prefs.prefs.selectJunkDelete);
|
|
$("#consoleDebug").prop('checked', prefs.prefs.consoleDebug);
|
|
$("#disableDoneNotification").prop('checked', prefs.prefs.disableDoneNotification);
|
|
$("#alsoCompact").prop('checked', prefs.prefs.alsoCompact);
|
|
}
|