document.querySelector('#saveBtn').addEventListener('click', saveOptions);
document.querySelector('#restoreDefaultBtn').addEventListener('click', restoreToDefault);
+ ['light', 'system', 'dark'].forEach((theme) => {
+ document.getElementById(`theme-${theme}`).addEventListener('click', setThemeClick);
+ });
+
//document.querySelector('body').addEventListener('click', restoreOptions);
});
}
}
-function saveOptions () {
- var backupPeriodMinutes = getSelectValue("prefsSelectBackupPeriod");
- localStorage.prefsBackupTimer = backupPeriodMinutes;
+function setThemeClick() {
+ const theme = this.textContent.toLowerCase();
+ setThemeValue(theme);
+ switchTheme(theme);
+}
- var backupMaxItems = getSelectValue("prefsSelectMaxBackups");
- localStorage.prefsMaxBackupItems = backupMaxItems;
+function setThemeValue(value) {
+ const element = document.getElementById('prefsTheme');
+ switch (value) {
+ case 'light':
+ case 'dark':
+ break;
+ default:
+ value = 'system';
+ break;
+ }
+ element.value = value;
+
+ ['light', 'system', 'dark'].forEach((theme) => {
+ document.getElementById(`theme-${theme}`).className =
+ value == theme ? 'selected' : '';
+ });
+}
+
+function saveOptions () {
+ chrome.storage.local.set({
+ prefs_backup_timer: parseInt(getSelectValue("prefsSelectBackupPeriod")),
+ prefs_max_backup_items: parseInt(getSelectValue("prefsSelectMaxBackups")),
+ prefs_theme: document.getElementById('prefsTheme').value,
+ });
// Re-initialize the backup alarm
- chrome.runtime.getBackgroundPage((bg) => bg.initAlarm());
+ chrome.runtime.sendMessage({action: 'initAlarm'});
// Update status to let user know options were saved.
var status = document.getElementById("statusDiv");
// those values are also set in background.js..
setSelectValue ("prefsSelectBackupPeriod", "5");
setSelectValue ("prefsSelectMaxBackups", "30");
+ setThemeValue("system");
saveOptions();
}
function restoreOptions() {
- var backupPeriodMinutes = localStorage.prefsBackupTimer;
- var backupMaxItems = localStorage.prefsMaxBackupItems;
-
- setSelectValue ("prefsSelectBackupPeriod", backupPeriodMinutes);
- setSelectValue ("prefsSelectMaxBackups", backupMaxItems);
+ chrome.storage.local.get(function(items) {
+ setSelectValue("prefsSelectBackupPeriod", items.prefs_backup_timer);
+ setSelectValue("prefsSelectMaxBackups", items.prefs_max_backup_items);
+ setThemeValue(items.prefs_theme);
+ });
}