-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoptions.js
90 lines (79 loc) · 3.02 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
function saveOptions() {
var enabled = document.getElementById('enabled').checked;
var popupenabled = document.getElementById('popupenabled').checked;
var showtype = document.getElementById('showtype').value;
var siteOptions = document.getElementById('sitelist').options;
var sites = new Array();
for (index = 0; index < siteOptions.length; ++index) {
sites[index] = siteOptions[index].text;
}
chrome.storage.sync.set({
enabled: enabled,
popupenabled: popupenabled,
showtype: showtype,
sites: sites
}, function() {
// Update status to let user know options were saved.
var status = document.getElementById('status');
status.textContent = 'Options saved.';
setTimeout(function() {
status.textContent = '';
}, 1000);
});
}
function restoreOptions() {
var defaultSites = new Array();
defaultSites[0] = "http://.*";
chrome.storage.sync.get({
enabled: 'true',
showtype: 0,
sites: defaultSites,
popupenabled: 'true'
}, function(items) {
document.getElementById('enabled').checked = items.enabled;
document.getElementById('popupenabled').checked = items.popupenabled;
document.getElementById('showtype').selectedIndex = items.showtype;
var siteList = document.getElementById('sitelist');
for(index = 0; index < items.sites.length; index++) {
addSiteToList(items.sites[index]);
}
});
}
function addSiteToList(site) {
var newSite = document.createElement('option');
newSite.text = site;
document.getElementById('sitelist').add(newSite);
}
function addNewSite() {
addSiteToList(document.getElementById('newsite').value);
document.getElementById('newsite').value = "";
saveOptions();
}
function removeSite() {
document.getElementById('sitelist').remove(
document.getElementById('sitelist').selectedIndex
);
saveOptions();
}
function checkNewSite() {
if(document.getElementById('newsite').value == "") {
document.getElementById('addnewsite').disabled = true;
} else {
document.getElementById('addnewsite').disabled = false;
}
}
function checkSiteSelected() {
if(document.getElementById('sitelist').selectedIndex >= 0) {
document.getElementById('removesite').disabled = false;
} else {
document.getElementById('removesite').disabled = true;
}
}
document.addEventListener('DOMContentLoaded', restoreOptions);
document.getElementById('enabled').addEventListener('click', saveOptions);
document.getElementById('popupenabled').addEventListener('click', saveOptions);
document.getElementById('showtype').addEventListener('change', saveOptions);
document.getElementById('addnewsite').addEventListener('click', addNewSite);
document.getElementById('removesite').addEventListener('click', removeSite);
document.getElementById('newsite').addEventListener('keydown', checkNewSite);
document.getElementById('sitelist').addEventListener('click', checkSiteSelected);