2 document.addEventListener('DOMContentLoaded', function () {
4 document.querySelector('#saveBtn').addEventListener('click', saveOptions);
5 document.querySelector('#restoreDefaultBtn').addEventListener('click', restoreToDefault);
7 ['light', 'system', 'dark'].forEach((theme) => {
8 document.getElementById(`theme-${theme}`).addEventListener('click', setThemeClick);
11 //document.querySelector('body').addEventListener('click', restoreOptions);
14 function getSelectValue (selectId) {
15 var select = document.getElementById(selectId);
16 var value = select.children[select.selectedIndex].value;
21 function setSelectValue (selectId, value) {
22 var select = document.getElementById(selectId);
23 for (var i = 0; i < select.children.length; i++) {
24 var child = select.children[i];
25 if (child.value == value) {
26 child.selected = "true";
32 function setThemeClick() {
33 const theme = this.textContent.toLowerCase();
38 function setThemeValue(value) {
39 const element = document.getElementById('prefsTheme');
48 element.value = value;
50 ['light', 'system', 'dark'].forEach((theme) => {
51 document.getElementById(`theme-${theme}`).className =
52 value == theme ? 'selected' : '';
56 function saveOptions () {
57 chrome.storage.local.set({
58 prefs_backup_timer: getSelectValue("prefsSelectBackupPeriod"),
59 prefs_max_backup_items: getSelectValue("prefsSelectMaxBackups"),
60 prefs_theme: document.getElementById('prefsTheme').value,
63 // Re-initialize the backup alarm
64 chrome.runtime.getBackgroundPage((bg) => bg.initAlarm());
66 // Update status to let user know options were saved.
67 var status = document.getElementById("statusDiv");
68 status.innerHTML = "Options Saved";
69 setTimeout(function() {
70 status.innerHTML = "";
74 function restoreToDefault() {
75 // those values are also set in background.js..
76 setSelectValue ("prefsSelectBackupPeriod", "5");
77 setSelectValue ("prefsSelectMaxBackups", "30");
78 setThemeValue("system");
83 function restoreOptions() {
84 chrome.storage.local.get(function(items) {
85 setSelectValue("prefsSelectBackupPeriod", items.prefs_backup_timer);
86 setSelectValue("prefsSelectMaxBackups", items.prefs_max_backup_items);
87 setThemeValue(items.prefs_theme);