-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathoptions.js
103 lines (89 loc) · 3.2 KB
/
options.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
const saveOptions = (e) => {
e.preventDefault();
const scihubMirrorValue = document.querySelector(
"input[name='scihub-mirror']:checked",
).value;
browser.storage.sync.set({ scihubMirror: scihubMirrorValue });
const libgenMirrorValue = document.querySelector(
"input[name='libgen-mirror']:checked",
).value;
browser.storage.sync.set({ libgenMirror: libgenMirrorValue });
const annasArchiveCheckbox = document.querySelector(
"input[name='annas-archive']",
);
const useAnnasArchiveValue = annasArchiveCheckbox.checked ? "true" : "false";
browser.storage.sync.set({ annasArchive: useAnnasArchiveValue });
const openInTheCurrentTabCheckBox = document.querySelector(
"input[name='openInTheCurrentTab']",
);
const openInTheCurrentTabValue = openInTheCurrentTabCheckBox.checked
? "true"
: "false";
browser.storage.sync.set({ openInTheCurrentTab: openInTheCurrentTabValue });
const useNexusCheckBox = document.querySelector("input[name='useNexus'");
const useNexusValue = useNexusCheckBox.checked ? "true" : "false";
browser.storage.sync.set({ useNexus: useNexusValue });
};
const restoreOptions = async () => {
try {
const { scihubMirror } = await browser.storage.sync.get("scihubMirror");
if (scihubMirror) {
document.querySelector(
`input[name='scihub-mirror'][value='${scihubMirror}']`,
).checked = true;
}
} catch (error) {
console.log(`Error restoring Sci-Hub mirror: ${error}`);
}
try {
const { libgenMirror } = await browser.storage.sync.get("libgenMirror");
if (libgenMirror) {
document.querySelector(
`input[name='libgen-mirror'][value='${libgenMirror}']`,
).checked = true;
}
} catch (error) {
console.log(`Error restoring LibGen mirror: ${error}`);
}
try {
const { annasArchive } = await browser.storage.sync.get("annasArchive");
if (annasArchive !== undefined) {
document.querySelector("input[name='annas-archive']").checked =
annasArchive === "true";
}
} catch (error) {
console.log(`Error restoring Anna's Archive setting: ${error}`);
}
try {
const { openInTheCurrentTab } = await browser.storage.sync.get(
"openInTheCurrentTab",
);
if (openInTheCurrentTab !== undefined) {
document.querySelector("input[name='openInTheCurrentTab']").checked =
openInTheCurrentTab === "true";
}
} catch (error) {
console.log(`Error restoring 'Open in Current Tab' setting: ${error}`);
}
try {
const { useNexus } = await browser.storage.sync.get("useNexus");
if (useNexus !== undefined) {
document.querySelector("input[name='useNexus']").checked =
useNexus === "true";
}
} catch (error) {
console.log(`Error restoring 'Use Nexus' setting: ${error}`);
}
};
document.addEventListener("DOMContentLoaded", restoreOptions);
document.querySelector("form").addEventListener("submit", saveOptions);
document
.getElementById("settingsForm")
.addEventListener("submit", function (event) {
event.preventDefault();
var notification = document.querySelector(".notification");
notification.style.display = "block";
setTimeout(function () {
notification.style.display = "none";
}, 2000);
});