-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathoptions_script.js
58 lines (49 loc) · 2.09 KB
/
options_script.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
var bg = chrome.extension.getBackgroundPage();
var status = document.getElementById("status");
var status2 = document.getElementById("status2");
document.addEventListener('DOMContentLoaded', function () {
chrome.storage.sync.get(bg.settings, function (settings) {
document.getElementById("seconds").value = settings.seconds || 10;
document.getElementById("reload").checked = !!settings.reload;
document.getElementById("inactive").checked = !!settings.inactive;
document.getElementById("autostart").checked = !!settings.autostart;
var rtIds = settings.reloadTabIds || [];
chrome.tabs.query({
windowId: chrome.windows.WINDOW_ID_CURRENT
}, function (tabs) {
var tabList = document.getElementById("tab-list");
tabList.innerHTML = "";
tabs.forEach(function (t) {
var checked = rtIds.indexOf(t.id) > -1 ? 'checked="checked"' : "";
tabList.innerHTML += "<li><label><input type='checkbox' value='" + t.id + "' " + checked + " /> " + t.title + "</label></li>";
});
});
});
});
function save_options () {
var seconds = parseInt(document.getElementById("seconds").value || "10", 10);
var reload = document.getElementById("reload").checked;
var inactive = document.getElementById("inactive").checked;
var autostart = document.getElementById("autostart").checked;
// todo ... may start thinking about saving this as urls liek they're blacklist url
var reloadTabIds = [].map.call(document.querySelectorAll("#tab-list input:checked"), function (input) {
return parseInt(input.value, 10);
});
status.innerHTML = status2.innerHTML = "Saving Options";
var settings = {
'seconds': seconds,
'reload': reload,
'inactive': inactive,
'autostart': autostart,
'reloadTabIds': reloadTabIds
};
chrome.windows.getCurrent(function (win) {
var inst = bg.getInstance(win.id);
inst.update(settings);
});
chrome.storage.sync.set(settings);
setTimeout(function() {
status.innerHTML = status2.innerHTML = "";
}, 3000);
}
[].forEach.call(document.querySelectorAll(".save-btn"), function (btn) { btn.addEventListener('click', save_options); });