-
Notifications
You must be signed in to change notification settings - Fork 0
/
popup.js
53 lines (45 loc) · 1.37 KB
/
popup.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
// assumes, for the most part, that event page has setup storage correctly
// popup does very little data validation
const STORAGE_NAME = 'matchData';
function getMatchesData (callback) {
chrome.storage.sync.get(STORAGE_NAME, items => {
callback(items[STORAGE_NAME]);
});
}
function setMatchesData (data, callback) {
let obj = {};
obj[STORAGE_NAME] = data;
chrome.storage.sync.set(obj, () => {
if (callback) callback();
});
}
function switchStatus (index, callback) {
getMatchesData(matchData => {
matchData[index].enabled = !matchData[index].enabled;
setMatchesData(matchData, callback);
});
}
function addCheckbox (parent, index, name, enabled) {
let input = document.createElement('input');
input.id = 'match' + index;
input.type = 'checkbox';
input.checked = enabled;
input.addEventListener('change', () => {
switchStatus(index);
});
parent.appendChild(input);
let label = document.createElement('label');
label.setAttribute('for', 'match' + index);
label.appendChild(document.createTextNode(name + '\n'));
parent.appendChild(label);
}
function createCheckboxes () {
getMatchesData(matchData => {
let parent = document.getElementById('switchboard');
matchData.forEach((elem, index, array) => {
addCheckbox(parent, index, elem.name, elem.enabled);
});
});
}
createCheckboxes();
document.activeElement.blur();